Commit Graph

22 Commits

Author SHA1 Message Date
Lily Tsuru a5f7735d9a lucore: add Unique and Ref types
These alias the standard library unique_ptr and shared_ptr

riscv: Use Unique in many places
Uses lucore::Unique. This should hopefully help memory management somewhat.

lcpu: Use Unique
riscv::System::Create now creates a Unique

so does lucore::Library::OpenExisting
2023-08-02 05:30:18 -04:00
Lily Tsuru 7ae6acfc3b lcpu: officially support legacy 32bit branch
32-bit builds using the development headers work on the legacy 32-bit branch so I don't really see a reason to not support it..

sure, it sucks that I now won't be able to get rid of a pretty gnarly codepath, but /shrug
2023-07-29 16:59:51 -04:00
Lily Tsuru 8eb4b6ef41 lcpu: Misc cleanup
LuaDevice now works fully, without any weird bugs. Yay!
This took quite a bit of bugstomping to arrive to; some of which ended up discovering I'm not particularly proud of doing. Oops!

The LuaCpu implementation no longer has a UART implementation in C++ (which actually leaked everytime a LuaCpu was garbage collected... Yeesh) - instead the Lua entity code actually implements the UART! Pretty cool to see the fruits of my labor actually working!

The LuaHelpers macros are renamed slightly to make them less of a pain (and also because I think having `_IMPLEMENT` in a function implementation is a bit stupid.)

I have updated the ideas document to better reflect my plans for the project system.
2023-07-28 06:05:58 -04:00
Lily Tsuru 40c539bf22 lcpu: Lua devices now work!!
now i can like, actually finish this thing

i will probably commonize all the stuff the luadevice class is doing right now into its own object, since I think that it would be very useful to have elsewhere. but for now it's not common :(
2023-07-27 06:03:28 -04:00
Lily Tsuru c69dc8d753 lcpu: FINALLY begin implementing the addon!! 2023-07-24 20:17:07 -04:00
Lily Tsuru 887b66bbb0 test lua binding things 2023-07-24 06:50:18 -04:00
Lily Tsuru 90e684e1e3 riscv: implement syscon + system hooks
This finally allows the test harness to cleanly shut down. Awesome!

This commit also reformats the whole project's native code. Oops!
2023-07-24 01:56:50 -04:00
Lily Tsuru 7af85f5601 riscv: misc code cleanup (now I can actually focus on stuff!) 2023-07-24 00:20:40 -04:00
Lily Tsuru 878990a921 riscv: IT WORKS
finally. once i'm sure it's 100% working i can probably like, develop this addon finally
2023-07-24 00:01:39 -04:00
Lily Tsuru 38e7fc4646 no one will know the pain i go through 2023-07-23 18:13:03 -04:00
Lily Tsuru abe9b78b1a oops 2023-07-23 05:24:26 -04:00
Lily Tsuru cd684e1f3e wow holy shit lily finally figured out how to work on the cpu core!
In all seriousness, this commit is a major milestone; insofar that it is
the first time I can actually work on the CPU core.
2023-07-23 05:19:08 -04:00
Lily Tsuru 09b1969d22 riscv: actually, CLINT allows reading the match registers! 2023-07-22 22:46:36 -04:00
Lily Tsuru aa66a1ff2e riscv: Implement partial CLINT and SYSCON. 2023-07-22 22:43:49 -04:00
Lily Tsuru 6a3170dc5c Remove all special treatment of the CPU class 2023-07-21 06:38:42 -04:00
Lily Tsuru 8eaf05a8ac riscv: Heavy bus refactor.
It now doesn't assume literally every device would map something to memory.

This should also fix some API orthogonality issues (ergo the CPU being treated specially)
2023-07-21 06:32:04 -04:00
Lily Tsuru e3ffcb02c2 revert loggingsystem usage until I feel safe requiring x64 gmod 2023-07-18 23:33:30 -04:00
Lily Tsuru 0d6646f8cb switch to Tier0 LoggingSystem_* 2023-07-18 17:38:33 -04:00
Lily Tsuru 9d7ef71d3b RamDevice is public
start skeleton gmod module
2023-07-18 02:05:39 -04:00
Lily Tsuru 6ebebae770 Use an output iterator for the lucore stdout sink 2023-07-18 00:47:10 -04:00
Lily Tsuru 22796b69bf implement a basic logger as a part of lucore
I could have implemented a spdlog sink, however spdlog isn't setup for standard format header being a thing yet.

This also introduces a temporary executable target for my own testing of lucore utilities.
2023-07-17 06:59:20 -04:00
Lily Tsuru b4a343e9db move all native projects to native/projects
this should make the folder structure a bit more navigatable
2023-07-16 05:46:49 -04:00