Papers
gigatron-rom
Papers | gigatron-rom | |
---|---|---|
2 | 1 | |
4 | 221 | |
- | - | |
1.8 | 6.1 | |
about 3 years ago | 9 days ago | |
C | ||
- | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Papers
- MiniVM: A minimal cross-language runtime that beats C/luajit on some benchmarks
-
Writing a register based VM in less than 125 lines of C code
Further to this: this kind of thing is something the Forth community takes seriously. They call these threaded code techniques. [0] (The Gforth interpreter, for instance, gives you the choice of various different techniques.)
Anton Ertl of Gforth fame published a microbenchmark performance comparison of toy interpreters, written in C, run on various CPUs. [1] As you say, the approach using function pointers (call threading) scores poorly.
Interestingly, direct threading and indirect threading are extremely close, with the winner seeming to depend on the specific CPU. [1] Branch-prediction differences seem to be the main reason. There was a 2001 paper on this. [2]
[0] https://www.complang.tuwien.ac.at/forth/threaded-code.html
[1] https://www.complang.tuwien.ac.at/forth/threading/
[2] https://github.com/ForthPapersMirror/Papers/blob/master/Conv...
gigatron-rom
What are some alternatives?
android-luajit-launcher - Android NativeActivity based launcher for LuaJIT, implementing the main loop within Lua land via FFI
lc3-vm - A LC3 virtual machine implementation in a few lines of C code
minivm - A VM That is Dynamic and Fast
lc3as.py - An assembler for the LC-3 fictitious computer.
paka - Paka language
LuaJIT - Mirror of the LuaJIT git repository
os49 - basically minivm os
awesome-jit - A curated list of awesome JIT frameworks, libraries, software and resources