TL;DR
Pure Ruby で書かれた、Ruby のための JIT コンパイラ。機械語を生成するアセンブラも Ruby で書かれている。
なぜ必要か
従来の MJIT は C 言語のコードを生成していたので、生成するコードが C に縛られ、コードを動的に書き換える最適化が難しかった。RJIT は MJIT を置き換える形で、2023 年 3 月に Ruby の master ブランチへマージされた。
開発者の k0kubun 氏は、目的として次の 3 つを挙げている。
- モンキーパッチで JIT を差し替えられる仕組みを残し、JIT の開発者が実験的な実装を続けられるようにする
- 成果が出た実装を YJIT へ移植する
- JIT を書ける開発者を増やす
注意点
本番環境では、引き続き YJIT を使うことが推奨されている。