Today I implemented enough to get redblack working: * Module, class, and metaclass definition * Yield and closure arguments passed into compiled IR bodies * Various tweaks to get things working and performing a bit better
Now I should say this is a *modified* version of redblack that doesn't have any optional-args methods, and the benchmark runner does not work yet. But this is a good milestone, I think, since it's a nontrivial piece of code. The code and benchmark numbers (compared to current compiler) are gisted here: https://gist.github.com/2522435 The tldr is that IR2JVM compiler is, for this benchmark, already comfortably faster than Ruby 1.9.3 (like 1/3 faster), and somewhere between 2-4x slower than the current compiler. The speed difference is likely due to the IR version doing more work, creating more objects, or not binding as many calls as directly as in the current compiler (the current compiler binds almost all call straight through). I think it's a great result to start with :) Now we can continue iterating on this and making the IR and the compiler's translation of it more efficient. - Charlie --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email