RuJIT – Trace-based JIT Compiler for Ruby
github.com
github.com
RuJIT is a Trace-based JIT compiler, similar to the approach taken by Firefox’s JS VM. It is based on the current version of CRuby, and resulted in ~2-5X speedup compared to trunk (and up to 100X in some cases).
Note: The Firefox JS VM in the article was referring to Tracemonkey. Mozilla abandoned it and use Method JIT Compiler IonMonkey instead. A better Trace Based JIT example would be LuaJIT.
Pretty heavy machinery for a JIT... but there's a comment about an LLVM backend, so I suspect this is a temporary arrangement. It seems this project is in its very early days.
https://github.com/imasahiro/rujit/commit/eb2e6cc5da47c212e8...
To this one
https://github.com/imasahiro/rujit/commit/c0e131bad4f0551425...
resides the JIT implementation; it was better if it was a real fork of Ruby Git, so one could compare Ruby master to RuJIT in order to look at the changes.
sadly, it doesn't say much.
I also think that a lot of the attention to Ruby performance has moved on from CRuby (for better or for worse) and on to other implementations like Rubinius and JRuby.
As for HN points, I think it's not sparking a lot of discussion yet because it's difficult to understand. The approach and architectural specifics aren't documented as far as I can tell and the code isn't forked / branched on GitHub so effort is required to even figure out what code has changed at all.
I'd expect this project to get more popular once the talk describing it is released and people have had a chance to look at it.