Plans for compiling Ruby to binary bytecode?

Greetings,

My understanding is that Ruby internally uses a custom VM (virtual
machine) to execute. This VM has its own set of instructions
(bytecode). I was wondering whether or not there were any plans to
allow one to compile Ruby down to a set of these instructions and stick
it into a binary file (much like Java, or .NET) and then use the Ruby’s
VM to execute it?

Thanks,

–JM

Joshua Melcon wrote:

Greetings,

My understanding is that Ruby internally uses a custom VM (virtual
machine) to execute. This VM has its own set of instructions
(bytecode). I was wondering whether or not there were any plans to
allow one to compile Ruby down to a set of these instructions and stick
it into a binary file (much like Java, or .NET) and then use the Ruby’s
VM to execute it?

Thanks,

–JM

You can make an windows executable:
http://www.erikveen.dds.nl/rubyscript2exe/index.html

My understanding is that Ruby internally uses a custom VM (virtual
machine) to execute. This VM has its own set of instructions
(bytecode).

There are several different Ruby implementations:

  • The ‘default’ is MRI (Matz’s Ruby Impl), it’s an interpreter, no
    bytecode
  • The “Next Gen” MRI, the 1.9 series includes YARV, which is a VM
    customized towards ruby
  • There’s Rubinius, which is a bootstrapped Ruby impl, written almost
    entirely in Ruby, which uses custom bytecode as well
  • JRuby is targeted towards JVM and (I think) can run either as an
    interpreter or compile Ruby to Java bytecode.
  • IronRuby is a CLI based Ruby Impl.

So, there’s not just plans, the plans have long since been implemented
:slight_smile: But the standard Ruby implementation currently doesn’t use
bytecode.
Hope this helps,
-tim