News

In this presentation from QCon San Francisco 2008, Jason Seifer takes a look at the different Ruby virtual machines (JRuby, MagLev, IronRuby, Rubinius, MacRuby) and how to choose what fits best within the enterprise.

The Ruby implementation Rubinius has attracted a lot of interest. After the project completed a major rewrite of its VM, we caught up with Brian Ford, Rubinius team member, to talk about the state of the project.

Antonio Cangiano has again benchmarked all Ruby VMs, MRI 1.8 and 1.9.1, REE, JRuby, Rubinius, IronRuby and MagLev. The results show the steady improvement of the performance of all VMs - and a few surprising lessons of how the performance of MRI can vary.

The videos from RubyConf '08 are available. We looked at the Ruby VM talks. Sasada Koichi, creator of the Ruby 1.9 VM, talks about the state of the VM, experiments with Ruby to C AOT, Ricsin and more. Evan Phoenix talks about the state of the Rubinius C++ VM. A detailed talk shows how MagLev is implemented. Also: MacRuby, JRuby, IronRuby, VM optimizations, RubySpec.

Ruby 1.9.1 Preview 1 is now out, which marks a freeze on language features and most other items, with a final release of 1.9.1 scheduled for late January 2009. Ruby 1.9.1 is planned to be the first stable 1.9.x release. Also: the C++ branch of Rubinius has been promoted as the default branch.

Ryan Davis announced the release of ParseTree 3.0, as well as an update to related libraries: Ruby2Ruby and Flog. Sexp_processor, the library to write visitors for analyzing parse tree s-exprs was split out as a gem. Also: ruby_parser 2.0, a Ruby parser written in Ruby, was released with many improvements.

The llvmruby project provides Ruby bindings for LLVM. Yarv2llvm is a project built with llvmruby which translates Ruby 1.9 opcodes to LLVM bitcode, which can be compiled down to native code, using LLVM's JIT functionality. Also: the Rubinius VM, currently rewritten using C++, now also comes with LLVM.

JRuby 1.1.3 was released with Gems 1.2, improved performance, and many other fixes. Meanwhile the library support for JRuby increases, with a JRuby version of rcov in the works, as well as ports of Rubinius' Foreign Function Interface (FFI) and its MVM API.

Antonio Cangiano started the Ruby Benchmark Suite project, which aims to collect a comprehensive set of benchmarks that users and implementers of Ruby can use to compare different implementations. We talked to Antonio about his plans and he gave us a timeframe for the next Ruby shootout.