3 ms·
> You'll need to need to write most of the C function calls back into Ruby and have the JIT properly inline them to get equivalent performance. What works real
by jashmatthews 6y ago
> You'll need to need to write most of the C function calls back into Ruby and have the JIT properly inline them to get equivalent performance.
What works really well for TruffleRuby etc might not work that well for a simpler optimizing compiler you could build and get merged into CRuby. LuaJIT and JSC are simpler than a lot of other "fast" JIT runtimes and that's not really the approach they take.
- filereaper 6y agoOMR isn't a simple optimizing compiler, its the full blown compiler suite, GC and runtime components used by OpenJ9 JVM [1] which has been in production for decades. You're free to use the simple passes that the JIT there provides, but the more expensive optimizations are also available as the Java JIT has a tiered optimization model. [2] All the optimizations found here [3] can be used along with the code-generator opts as well. I guess the idea is to provide a full suite of pluggable components, pick and choose the ones that make sense for your purpose right now, and those needs can evolve over time. [1] https://www.eclipse.org/omr/starter/whatisomr.html https://www.eclipse.org/omr/starter/whatisomr.html [2] https://github.com/eclipse/omr/tree/master/compiler https://github.com/eclipse/omr/tree/master/compiler [3] https://github.com/eclipse/omr/tree/master/compiler/optimizer https://github.com/eclipse/omr/tree/master/compiler/optimize...
- jashmatthews 6y agoOMR is a super impressive project! I spent quite a lot of time looking into Matthew Guadet and the rest of the team’s work before starting work on a tracing compiler for CRuby.
- kaba0 6y agoHow does OMR relate to TruffleRuby? What advantage would it have over it?