Deegen: A JIT-Capable VM Generator for Dynamic Languages [pdf]
fredrikbk.comThere was a version in 2024 on Arxiv. As it seems, it took 1.5 more years to officially publish it. The following seems to have changed since:
- The 2024 version only evaluated Deegen using one language: Lua 5.1 (via LuaJIT Remake). The 2026 version adds a complete implementation and evaluation of a second dynamic language: SOM (Simple Object Machine), which they call DSOM.
- Because of the new language, the 2026 paper features a massive new Section 7 ("Evaluation: A SOM VM"). The authors benchmarked DSOM against five established SOM VMs (SOM++, TruffleSOM AST/BC, PySOM AST/BC, and 2SOM). It introduces complex comparisons of JIT warmup times, peak throughput, and compilation costs.
- The 2026 version heavily expands Section 2 ("The Deegen Approach") to specifically contrast Deegen's "build-time meta-compilation" against Oracle's Truffle and PyPy's RPython frameworks (which rely on runtime partial evaluation/meta-tracing).
- The technical appendices present in the 2024 preprint (Appendix A API reference, Appendix B Life of Add Bytecode) were entirely removed.
Deegen apparently is Haoran Xu's PhD thesis project at Stanford to scale the "Copy-and-Patch" technique into an entire automated meta-compiler framework. The last commit on https://github.com/luajit-remake/luajit-remake was a year ago though. The DSOM repository seems to be here: https://github.com/sillycross/dsom, but the last commit was a year ago as well.