ZJIT
2025年、(当時)
Shopify
所属のMaximeにより
Ruby
に導入された新しい
JIT
2025-05
ZJIT has been merged into Ruby
ZJITは
YJIT
と異なっている
YARV
バイトコード
を
低レベル中間表現
(
LIR
)に直接
コンパイル
するのではなく、静的単一代入(
SSA
)ベースの高レベル中間表現(
HIR
)を利用する
一度に1つの基本ブロックをコンパイルするのではなく、一度に1つのメソッド全体をコンパイルする
型
プロファイリング
に
lazy basic block versioning
(
LBBV
)を使うのではなく、プロファイルされた
インタプリタ
からの型情報履歴を読み取る
YARVをLIRに下げる形で最適化を行うのではなく、HIR上で動作する高レベルなモジュラーオプティマイザを備えている
2025-11
同チームの
Stan Lo
によるJITの基礎解説
How Ruby Executes JIT Code: The Hidden Mechanics Behind the Magic