ruby-trunk-changes 2022-11-03

今日は主に YJIT で yield 文(ブロック呼び出し)の VM 命令の対応の追加などがありました。

[4a8cd9e8bc] Peter Zhu 2022-11-02 15:03:21 UTC

struct RBasic::flags のビットフラグ用の定数 ELTS_SHARED を利用していたところをそのオブジェクトの型にあわせた定数 RARRAY_SHARED_FLAG や STR_SHARED を使うようにリファクタリングしています。

[946bb34fb5] Takashi Kokubun 2022-11-02 15:14:31 UTC

YJIT の Rust 実装でコードで開放した ISeq payload (これがなにを指しているのかよくわかってないけど)のメモリページの内容をゼロクリアしているようです。 https://github.com/ruby/ruby/pull/6657

[ee7c031dc4] Noah Gibbs 2022-11-02 15:16:26 UTC

YJIT で mmap(2) でメモリ領域確保しようとしてエラーが発生した時に errno が ENOMEM つまり物理メモリ不足だった場合は rb_bug() で異常終了するのはやめて exit(3) で即座にプロセス終了するようにしています。 https://github.com/ruby/ruby/pull/6659

[81e84e0a4d] Takashi Kokubun 2022-11-02 16:30:48 UTC

YJIT で invokeblock 命令の JIT コンパイルのサポートを追加しています。 invokeblock のサポート以前追加してたような気がしましたが getblockparamproxy とかと混同してたかも。要するに yield の JIT コンパイル対応ですね。 https://github.com/ruby/ruby/pull/6640

[b777408c33] Peter Zhu 2022-11-02 17:34:02 UTC

tool/lib/test/unit.rb の並列テストの実装でタイムアウト時の例外発生のために例外オブジェクトを渡すべきところ例外クラスを渡していたのを修正しています。また

[59a6caf83a] Hiroshi SHIBATA 2022-11-02 22:27:11 UTC

GitHub Actions の CodeQL によるチェックを実施する workflow を push ごとに実行するのをやめて 1日 1回のスケジュール実行のみにしています。

[c24800f4f7] Takashi Kokubun 2022-11-03 05:49:09 UTC

標準添付ライブラリ erb の gemspec ファイルの spec.required_ruby_version の設定を JRuby 環境の時には省くようにしています。

[f667d3afc9] Takashi Kokubun 2022-11-03 05:53:39 UTC

標準添付ライブラリ erb のテストで TruffleRuby で失敗するものを skip するようにしています。

[7b6c5f9b5b] Takashi Kokubun 2022-11-03 05:56:24 UTC

f667d3afc9096ea32f6f84204529b95099062e86 の続きで標準添付ライブラリ erb のテストをもうひとつ TruffleRuby で skip するようにしています。