ruby-trunk-changes 2022-11-24

今日は主に RubyVM.stat の項目追加や YJIT の最適化などがありました。

[e82b15b660] Jemma Issroff 2022-11-23 15:48:17 UTC

YJIT の x86_64 向けのコンパイル時の unsigned の整数の比較で生成するコードでレジスタにセットしてから比較していたのを可能な限りオペランドとして命令内に埋め込むようにしています。 https://github.com/ruby/ruby/pull/6789

[fe2bed6778] Takashi Kokubun 2022-11-23 16:59:02 UTC

YJIT でオブジェクトが即値かどうかチェックする処理のコードを変更しています。f55212bce939f736559709a8cd16c409772389c8 で Qnil のビットパターン変更したのに絡んでの変更みたいですが処理が間違ってたわけではなくて読みやすさのための変更みたいです。 https://github.com/ruby/ruby/pull/6795

[9c36de3c48] Takashi Kokubun 2022-11-23 01:21:26 UTC

YJIT の Rust 実装で実行コードに戻りアドレスを書きこむための関数の引数を変更しています。詳細はよくわからず。

[d88adaad7e] Takashi Kokubun 2022-11-23 17:02:05 UTC

YJIT の Rust 実装で VirtualMem の開始アドレス region_start に渡すポインタに std::ptr::NonNull を利用するようにしています。名前的に null でないことを保証するということなんでしょうね。 https://github.com/ruby/ruby/pull/6792

[66be0922b7] BurdetteLamar 2022-11-19 18:13:45 UTC

標準添付ライブラリ net/http の Net::HTTPHeader の rdoc 用コメントの手直し。

[c6dc126641] BurdetteLamar 2022-11-20 19:43:07 UTC

標準添付ライブラリ net/http の Net::HTTPHeader の rdoc 用コメントの手直し。

[79a9280aa5] BurdetteLamar 2022-11-20 19:51:58 UTC

c6dc1266418a5cb84a91718946f9be00d073c2f7 でうっかり標準添付ライブラリ net/http のコード部分を変更してしまっていたのでそこを revert しています。

[4b32ed6e33] BurdetteLamar 2022-11-23 13:06:47 UTC

標準添付ライブラリ net/http の Net::HTTPHeader の rdoc 用コメントの手直し。

[5ee947314e] BurdetteLamar 2022-11-23 16:49:58 UTC

標準添付ライブラリ net/http の Net::HTTPHeader の rdoc 用コメントの手直し。

[e788215125] Aaron Patterson 2022-11-23 17:02:14 UTC

RubyVM.stat が返す項目に :next_shape_id を追加して Object Shapes で管理している shape 数を取れるようにしています。

[d92054e371] Alan Wu 2022-11-22 01:50:53 UTC

YJIT の Rust 実装の分岐用コード生成で不要なメモリ確保を抑制するよう最適化しているようです。

[66e5200ba4] Yusuke Endoh 2022-11-24 06:11:55 UTC

Regexp.timeout= のテストで設定するタイムアウト値をのばしています。エミュレーション環境で時間が足りなくてテストが失敗することがあったようです。