MacRuby 0.5 - Now with LLVM
The MacRuby developers have announced that MacRuby 0.5, currently in development, will replace the YARV byte code engine with a new virtual machine based on the LLVM compiler infrastructure called Roxor. LLVM, Low Level Virtual Machine, is a project to create a cross platform, just-in-time compiling virtual machine, which can be used for all languages. Apple sponsor and develop MacRuby and take part in the development of LLVM.
The aim with, what is currently an experimental branch of MacRuby, is to increase performance. By transforming the Ruby source tree into LLVM's IR (Intermediate Representation), the developers aim to harness LLVM's just-in-time compilation and have the programs actually run as optimised machine code.
Antonio Cangiano took the current code and ran a number of micro-benchmarks on it. The general indication is that MacRuby 0.5 is on average three times faster than Ruby 1.9.1, though there are some lower performance dead spots, which Cangiano explains is due to issues like expensive object allocation and a lack of optimisation for BigNum and floating point operations. Improvements are expected for MacRuby, at least for the latter issue.