Tom and I have been discussing the need for a better intermediate form for Ruby code in JRuby, for a number of reasons:

* Reduced memory, since we can distill the AST down to only the functional details * Improved interpreter performance, since it can be a straight-line execution of Instruction objects * Potential tail self-recursion optimizations, threadless fibers, and minimal localized continuations
* Improved compiler toolchain via more easily-analyzed IR

As part of coming up with our "ideal Ruby IR" I'm starting this discussion off by posting Rubinius's opcodes. I think Rubinius has had the most thought put into it, as far as opcodes go, so starting from here and building a critique seems like a good start.

Rubinius opcodes:

http://github.com/evanphx/rubinius/blob/ef93221a7049d72d28a46b97e1d7d69925166e9f/kernel/compiler/iseq.rb

I'm going to review the list and come back with some comments.

- Charlie

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to