以下の内容はhttps://blog.ebihara99999.com/entry/2025/03/10/233907より取得しました。


Ruby YJIT の `invariants.rs` を読んだ

ということで Rubyソースコードも読んでみようと思い、Ruby の朝刊

ruby-trunk-changes.hatenablog.com

を読み始めた。その中で yjit の invariants.rs が挙がっていたので読んでみた。

github.com

雰囲気でしかわからないが、いくつかの assumptions を置き、それらの assumptions が有効なのか無効なのかを追跡し、assumptions が無効だったら生成されたコードを無効化するという処理をしている。

assumptions はについては

  • Ruby の基本的な演算子はオーバーライドされない
  • 定数が再代入されていない
  • callable method entry に関するもの(おそらくあるメソッドが再定義されているか)
  • klass object が singleton class を持たない

などがある。

ということがわかった。

楽しいし、続ければ何か視野が広がることもあるだろうから朝刊読んで気になったところ調べてみるというのは Ruby の方でもやってみようと思う。




以上の内容はhttps://blog.ebihara99999.com/entry/2025/03/10/233907より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14