Selfie – A tiny RISC-V C compiler, emulator and hypervisor
From the project’s README [1]:<p>> <i>Selfie is implemented in a single (!) file and kept minimal for simplicity. There is also a simple in-memory linker, a RISC-U disassembler, a garbage collector, L1 instruction and data caches, a profiler, and a debugger with replay as well as minimal operating system support in the form of RISC-V system calls built into the emulator and hypervisor. The garbage collector is conservative and even self-collecting. It may operate as library in the same address space as the mutator and/or as part of the emulator in the address space of the kernel.</i><p>I was a bit skeptical reading that, but I’m very impressed right now [2] . . .<p>[1]: <a href="https://github.com/cksystemsteaching/selfie/blob/5de675a0f08613adab2315d50ce7c2db2079005d/README.md">https://github.com/cksystemsteaching/selfie/blob/5de675a0f08...</a><p>[2]: <a href="https://github.com/cksystemsteaching/selfie/blob/5de675a0f08613adab2315d50ce7c2db2079005d/selfie.c">https://github.com/cksystemsteaching/selfie/blob/5de675a0f08...</a>