JRuby
2006年初めごろから、JRubyチームはそれまでのC言語コードの単なる移植からJavaのバイトコードを生かした高性能の実装にする努力を開始した。そして、JRuby を使って Ruby on Rails に全く手を加えずにそのまま実行できるようにすることを目標とした。その過程でJRubyのテストスイートも拡張され、JRubyの「正しさ」を保証する役目を果たした。結果として2006年末から2007年初めにはJRubyの中核部分の再設計とリファクタリングにとりかかることが可能になった。
JRuby は複数モードの Ruby 用仮想機械として設計されている。コードは直接インタプリタで解釈実行されるだけでなく、JITコンパイラでJavaバイトコードに実行時にコンパイルされたり、AOTコンパイラで実行前にJavaバイトコードにコンパイルされたりする。2007年10月まではインタプリタモードしかなかったが、バージョン1.1からAOT/JITコンパイラがサポートされるようになった。これらのモードは混在可能であり、また生成したバイトコードからJavaクラスファイルを生成することもできる。
2008年2月27日、サン・マイクロシステムズと東京大学は、RubyまたはJRubyアプリケーションを複数同時に1つのインタプリタ上で実行できる仮想機械の実装を行う共同研究プロジェクトを発表した。