今日は C API rb_require() の不具合修正、GC まわりの不具合修正、YJIT の --yjit-stats オプションによる出力の追加などがありました。
[1c3088117a] Benoit Daloze 2023-11-24 12:14:56 UTC
拡張ライブラリ stringio の extconf.rb で CRuby 以外では Makefile をダミーのものにしてビルドしないようにしています。 https://github.com/ruby/openssl/issues/699
[d7165d88ec] Peter Zhu 2023-11-22 15:45:50 UTC
Enumerator::Yielder クラスを RGenGC 用の Write Barrier で保護して WB-protected にマークしています。
[2dadd17c78] Peter Zhu 2023-11-22 15:49:28 UTC
Enumerator::Generator クラスを RGenGC 用の Write Barrier を追加して WB-protected にマークしています。
[2e4a0a4d90] Peter Zhu 2023-11-22 15:54:32 UTC
Enumerator::Producer クラスを RGenGC 用の Write Barrier を追加して WB-protected にマークしています。
[ca4755b59a] Nobuyoshi Nakada 2023-11-27 15:13:05 UTC
rb_require() に存在しないファイル名を渡すと異常終了する不具合を修正しています。引数の文字列オブジェクトについて rb_str_resurrect() を呼ぶ必要がある場合があったようです。 [ruby-core:115489] [Bug #20023]
[7835ebce97] Peter Zhu 2023-11-27 15:23:31 UTC
gc_start() で compaction 中の状態をセットするタイミングを full GC を実施するかの判定の後にして、full mark 実施する時だけ compaction 実行中の状態をセットするように修正しています。
[196c4aeb76] Nobuyoshi Nakada 2023-11-27 11:15:54 UTC
標準添付ライブラリ rdoc の生成する HTML の余分な空白の抑制。
[8427a8a655] KJ Tsanaktsidis 2023-11-27 06:33:08 UTC
GC.compact のテストでたまに失敗するものを安定化するよう修正しています。 [ruby-core:115483] [Bug #20021]
[7973eb7c3f] Nobuyoshi Nakada 2023-11-27 16:06:47 UTC
標準添付ライブラリ rdoc の生成 HTML のための css の修正。
[e3875dd0f8] Peter Zhu 2023-11-27 16:13:47 UTC
gc_start() で GC.stress=true が設定されている時に incremental marking を抑制するようにしています。GC.stress が設定されているということは GC が走るタイミングで Object Space の全ての slot が mark されて不要なものが回収されることが期待されているので incremental marking が有効になるとちゃんと mark しきれなくてテストにならないので。
[23a7714343] Jean Boussier 2023-11-24 12:18:00 UTC
Thread の生成/終了や GVL 解放してブロックする処理への出入りのイベントのカウンタの実装を大きく変更して、内部的に使う TypedData 型のオブジェクトとして Thread の timeline を固定長のバッファで保持する構造体を wrap して持つようにしています。バッファオーバーフロー時には rb_bug() で異常終了するようにしてるけどいいのかな? このオブジェクト自体テストで使う専用っぽいからいいのかな。
[acab060c17] Benoit Daloze 2023-11-27 17:17:51 UTC
spec/mspec に upstream から最新版をマージしています。
[cc05a60c16] Benoit Daloze 2023-11-27 17:17:52 UTC
spec/ruby に upstream から最新版をマージしています。
[150ed44d87] Peter Zhu 2023-11-27 16:30:47 UTC
Array オブジェクトのバッファの部分配列を共有する Array オブジェクトを作る ary_make_partial() で GC が走る可能性があるため作ったばかりの Array オブジェクトが slot への埋め込みを利用するようフラグがセットされる可能性があるのでリセットする処理を追加しています。
[872922b03d] Peter Zhu 2023-11-27 19:04:56 UTC
shape.c のインデントの修正のみ。
[4d71f70fd1] Peter Zhu 2023-11-27 19:05:25 UTC
Object Shapes の実装で使っている赤黒木に RUBY_DEBUG を真にしてビルドされたデバッグ用ビルドの時に RUBY_ASSERT() による assertion を追加しています。
[94015e0dce] Peter Zhu 2023-11-27 19:45:47 UTC
String#scan の実装でマッチした部分文字列のオブジェクトが処理中の GC で回収されるのを防ぐため RB_GC_GUARD() による mark 漏れ回避を追加しています。
[7f50c70574] Maxime Chevalier-Boisvert 2023-11-27 22:49:53 UTC
YJIT の --yjit-stats オプションによる統計情報に C 実装のメソッドのメソッド名のランキングを表示するようにしています。 https://github.com/ruby/ruby/pull/9047
[def416899d] Sutou Kouhei 2023-11-28 01:38:15 UTC
拡張ライブラリ stringio のバージョンを 3.1.1 に更新しています。
[031e81c8f3] git 2023-11-28 01:39:40 UTC
NEWS の default gems のバージョンリストの stringio のバージョンも更新しています。
[1a16b6ffc2] Kouhei Yanagita 2022-01-27 05:37:48 UTC
Range#reverse_each が endless range に対して呼ばれた場合 TypeError 例外を発生させるようにしています。