I'm building a YARV compatible bytecode VM using the standard CRuby code to do the lexing, parsing, and compilation. It's the first time I've built anything more complex than a toy interpreter.
Finally, there's also Dora https://github.com/dinfuehr/dora by Dominik Inführ, who is interning with the V8 team in Münich. Dora is incrementally compiled, though, rather than being a bytecode VM.
Interesting material here: Gluon https://github.com/gluon-lang/gluon/ https://pliniker.github.io/post/dispatchers/ https://play.rust-lang.org/?gist=8fc08d2c9980aaee363d2f7842e...
Finally, there's also Dora https://github.com/dinfuehr/dora by Dominik Inführ, who is interning with the V8 team in Münich. Dora is incrementally compiled, though, rather than being a bytecode VM.
https://dinfuehr.github.io/blog/dora-implementing-a-jit-comp...