TL;DR

Pure Ruby で書かれた、Ruby のための JIT コンパイラ。機械語を生成するアセンブラも Ruby で書かれている。

なぜ必要か

従来の MJIT は C 言語のコードを生成していたので、生成するコードが C に縛られ、コードを動的に書き換える最適化が難しかった。RJIT は MJIT を置き換える形で、2023 年 3 月に Ruby の master ブランチへマージされた。

開発者の k0kubun 氏は、目的として次の 3 つを挙げている。

  • モンキーパッチで JIT を差し替えられる仕組みを残し、JIT の開発者が実験的な実装を続けられるようにする
  • 成果が出た実装を YJIT へ移植する
  • JIT を書ける開発者を増やす

注意点

本番環境では、引き続き YJIT を使うことが推奨されている。

関連

出典