The latest version of
https://github.com/glycerine/riscv-emu-golang just shipped some big features:
* supports JIT to arm64 now too (in addition to amd64). Hopefully this
makes it work on modern Apple hardware, but I only have x86_64 and so I had to
use QEMU (software arm64 emulation) to test. If you have Apple M-? chip and can run "make test" and
let me know if it passes on actual hardware, that would be great.
* provides a minimal OS: a small but deterministic implementation of Linux OS system calls.
This means I can run actual standard Go toolchain compiled RV64 ELF binaries on it now.
plus: emux is a stand-alone command line to launch an emulation run.
I think of emux as a miniature "Antithesis". It is a tiny DST tester in a small 8MB box.
It is a simple command line tool. Since the emulator is single threaded, reproducible determinism is
now viable for testing your Go programs. Of course we are about 400x slower than actual
native code on actual hardware at this point, but we still have some ideas for how to speed it up
emulation.
Enjoy,
Jason