Rubyの新しいYJITコンパイラが完成し、Rustで再実装されました

昨年12月、Ruby JITチームのメンバーは、YJITコードベースをC99からRustに移植することを提案しました。多くの開発者はこれについて留保していますが、プロジェクトは最終的にRubyコア開発者であり創設者のMatzによって承認されました。

昨日、プロジェクトを担当する開発者は、Rustに実装されたRuby YJITコンパイラを完了したと述べました。これは、既存のCバージョンを効果的に置き換え、現在、アップストリームマージを待っています。

報告によると、YJITコンパイラのRustバージョンはCバージョンと同じレベルです。これは、すべてのCRubyテストに合格し、すべてのYJITベンチマークを実行でき、基本的にCバージョンと同じように実行されるためです(同じ方法で、基本的に同じマシンコードを生成します)。さらに、開発チームは、Ruby on Railsアプリケーションで大きな役割を果たすことが期待される、よりきめ細かい定数無効化メカニズムなど、いくつかの設計改善を取り入れました。

デフォルトでは、YJITはコンパイルされておらず、cargo/rustcを必要としません。YJITが開発モードでビルドされている場合は、cargo開発の依存関係を取得するために使用されますが、リリースでビルドする場合は必須でcargoはなく、必要なだけですrustc現在、YJITにはRust1.60.0以降が必要です。

計画どおり、Rust YJITはコンパイルされ、Ruby3.2リリースのシステムパッケージとコンパイル済みバイナリに含まれます。開発チームによると、RustはYJITがサポートするすべてのプラットフォームで十分にサポートされているため、大きな問題は予想されていません。

おすすめ

転載: www.oschina.net/news/192164/rust-jit-for-ruby