Towards a Ruby Compiler

Because of its dynamic nature, Ruby is very difficult to optimize; as a result it is a slow language. It has long been an unrequited dream of mine to write a fully static Ruby compiler, which converts Ruby into efficient, directly executable machine code. I had given it up as infeasible, but some recent advances in the state of the art have filled in the last missing pieces and put a practical Ruby compiler within reach. I will be talking about Ocelot, my implementation of these ideas. Ocelot is an experimental (meaning, unfinished) implementation of Ruby, but my goal is that it will be able to handle all (well, almost all) of the hard parts of implementing Ruby while providing improved performance.


  1. trans

    It should be possible to use Mocks if there is some means to “tag” the mock in such a way as to inform Ocelot what actual type(s) they represent. Just a thought.

Comments are closed.