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