ruby-trunk-changes 2023-03-11

今日は組み込みメソッドの ruby 実装で利用する Primitive.attr! メソッドの引数を Symbol にする変更や RJIT のコード整理、RJIT 用コマンドラインオプションの追加などがありました。

[dd47ce10db] Ian Ker-Seymer 2023-02-06 19:19:18 UTC

bundler の bundle gem で生成する Rust 製拡張ライブラリを含む gem プロジェクトのための対応を追加しているようです。

[f98a7fd28d] Peter Zhu 2023-03-06 19:45:02 UTC

gc.c から WeakMap と WeakKeyMap の実装を weakmap.c というファイルに切り出しています。

[365fed6369] Aaron Patterson 2023-03-10 16:50:43 UTC

69465df4242f3b2d8e55fbe18d7c45b47b40a626 で T_MODULE と T_CLASS 型のオブジェクトもインスタンス数が多すぎる時に Object Shapes によるインスタンス変数管理をあきらめる変更をしていましたがこれを revert しています。

[ac5f983f7d] Takashi Kokubun 2023-03-10 18:07:52 UTC

コマンドラインオプションの --version で RJIT が有効な時の出力をチェックするテストで RJIT が有効かどうかの判定をメソッドに切り出して判定方法を微修正しているみたいです。 https://github.com/ruby/ruby/pull/7495

[d0b8bdb392] Peter Zhu 2023-03-09 19:59:00 UTC

gc.c の gc_marks_finish() で is_full_marking() が真の時に RGenGC のためのしきい値を更新する処理が後のほうにもあって重複していたので削除しています。

[d5b7c8a972] Takashi Kokubun 2023-03-10 19:27:04 UTC

RJIT を RJIT_SUPPORT=dev を指定してビルドしなくても --rjit-dump-disasm オプションが使えるようにしているようです。

[93f7106b62] Takashi Kokubun 2023-03-10 19:42:02 UTC

rjit_c.rb の不要になっていたメソッドの削除。

[9bb4397875] Jean Boussier 2023-03-10 15:40:54 UTC

ObjectSpace::WeakMap と ObjectSpace::WeakKeyMap を RGenGC の WB-protected なオブジェクトにしています。

[c364e0745d] Takashi Kokubun 2023-03-10 19:55:48 UTC

RJIT 用のコマンドラインオプションの --rjit-exec-mem-size を追加しています。

[cdece5cf36] Takashi Kokubun 2023-03-10 21:08:10 UTC

RJIT 関連の不要になったコードの削除。

[6440d159b3] Takashi Kokubun 2023-03-10 21:15:22 UTC

tool/ruby_vm/views/lib/ruby_vm/rjit/instruction.rb.erb で生成するコードから VM 命令の属性情報をオブジェクトに持たせる部分が不要になってたみたいで削っています。

[76808b1ee4] Takashi Kokubun 2023-03-10 21:19:05 UTC

RJIT のテストに RubyVM::RJIT::Assembler クラスのテストを追加しています。

[83f6eee76c] Takashi Kokubun 2023-03-10 22:14:38 UTC

a6de8b0d2dea18b03374d27901f31be407523baa に続いて YJIT の Rust 実装の SEND_MAX_DEPTH という定数をさらに 20 にまで増やしています。 https://github.com/ruby/ruby/pull/7469

[93e34fe42e] Takashi Kokubun 2023-03-10 22:09:34 UTC

RJIT 用の RubyVM::RJIT::Assembler クラスの修正とテストの追加。

[9801ad47bd] Hiroshi SHIBATA 2023-03-10 02:12:13 UTC

rubygems のテストに cb3f1f6de8bd2e128168fde43aa28c2441818469 で追加した Gem::Specification#missing_extensions? メソッドのテストを追加しています。 https://github.com/rubygems/rubygems/pull/6444

[f7b215af0e] Hiroshi SHIBATA 2023-03-10 02:14:55 UTC

9801ad47bd8dc73370c4c668ac716a6e31802637 で追加した rubygems のテストにさらに assertion を追加しています。

[973cb64b1c] Takashi Kokubun 2023-03-11 07:23:37 UTC

bootstraptest の一部のテストが RJIT が有効な時に失敗することがあるらしく skip するようにしています。

[ac47b8df8f] Takashi Kokubun 2023-03-11 07:40:22 UTC

GitHub Actions や AppVeyor で BASERUBY としてテストする対象を ruby 2.5 に引き上げています。コミットログによると本当は 2.7 まで上げたいのだけど CI に使っている環境で 2.7 のない環境があるなどの理由で今は 2.5 までにしているようです。 https://github.com/ruby/ruby/pull/7504 [ruby-core:97355] [Misc #16671]

[3a02c7818c] Takashi Kokubun 2023-03-11 07:40:57 UTC

組み込みメソッドの ruby 実装でメソッドの属性を指定する Primitive.attr! メソッドの引数を Symbol を受付けるように変更して、ruby 実装のほうも引数を Symbol に変更しています。 https://github.com/ruby/ruby/pull/7501