12月25日、「Ruby 2.6.0 Released」において、Rubyの最新バージョンとなる「Ruby 2.6.0」の公開が伝えられた。Ruby 2.6.0は新機能の追加とパフォーマンスの改善が実施されたバージョン。新たにJITコンパイラが導入された点と、RubyVM::AbstractSyntaxTreeモジュールが導入された点が注目される。

Ruby 2.6.0における主な注目点は次のとおり。

  • JIT (Just-In-Time)コンパイラの導入(実験段階)。今回Rubyに導入されたJITコンパイラは通常プロセス内で処理が行われるJITコンパイラとは異なり、C言語のソースコードをディスクに書き出し、Cコンパイラを使ってネイティブコードを生成して処理を行うという特徴がある(参考: 「How to use Ruby's JIT compiler」)。
  • RubyVM::AbstractSyntaxTreeモジュールの導入。これは抽象構文木を扱うためのモジュールで、Rubyコードの文字列を渡すとコードの抽象構文木ノードを返してくる。この機能はまだ実験段階と位置づけられており、抽象構文木に関する互換性は保証されないとされている
  • Ruby - A Programmer's Best Friend

    Ruby - A Programmer's Best Friend

JITコンパイラを有効にするには--jitオプションを指定するか、RUBYOPT環境変数を設定する必要がある。--jit-verbose=1を指定するとJITコンパイラに関するより多くの情報を表示させることができる。Ruby自体はGCC、Clang、Microsoft VC++のどれかでビルドされている必要があるほか、実行時にこれらランタイムが存在している必要がある。

今回導入されたJITコンパイラを使うことにより、Optcarrotベンチマークにおいて1.7倍の高速化が実現されたという。