ruby-trunk-changes 2023-12-19

今日は --parser=prism 指定時の異常終了の修正やシグナル処理の不具合修正、finalizer のメソッドで例外が発生した時の異常終了の修正などがありました。

[f6ad49b87c] Jean Boussier 2023-12-18 12:16:20 UTC

ba1d1522d35a7dd2595603ead57cd0fa8b21ba8b の Object Shapes のインスタンス変数のパターンのバリエーションが増えすぎて too complex になった時の警告の追記部分の微修正。

[f35fec7710] Peter Zhu 2023-12-12 15:19:56 UTC

GC の開始時に pin-down されている slot の情報をリセットするようにしています。pin されているオブジェクトが回収されていなければまだ pin されるはずなので実質は問題なさそうですが assertion にひっかかる原因になっていたとのこと。

[6c4b04de5c] Koichi Sasada 2023-12-18 12:40:43 UTC

rb_thread_sched 構造体の初期化時に lock_owner メンバーの初期化を追加しています。

[495a237ef3] Takashi Kokubun 2023-12-18 18:50:06 UTC

NEWS の YJIT の --yjit-stats で表示される項目についての記述に yjit_alloc_size を追記しています。

[71b7a24c24] Takashi Kokubun 2023-12-18 19:11:50 UTC

NEWS の 3.2 というバージョンを書いてたところに Ruby 3.2 となんのバージョンか明記するようにしています。

[4b125b70d8] Takashi Kokubun 2023-12-18 19:36:54 UTC

NEWS に Prism の追加について追記しています。

[893fe30ef2] Matt Valentine-House 2023-12-18 16:56:01 UTC

コマンドラインオプション --parser=prism を指定すると標準入力からスクリプトを読む時に SEGV していた不具合を修正しています。 [ruby-core:115776] [Bug #20071]

[b5c6c0122f] Alexander Momchilov 2023-12-18 08:17:44 UTC

Hash#compare_by_identity で元の Hash が空の時に st_table のメモリを確保しないようにしています。

[11fa76b1b5] Alexander Momchilov 2023-12-18 08:19:02 UTC

Hash#compare_by_identity で空の Hash の時に配列実装(ar_table) から st_table 実装への切り替えをするようにしています。

[3c47114991] Alan Wu 2023-12-18 21:37:52 UTC

シグナルハンドラの ruby_default_signal() で例外発生する時に sigmask のリセットをするようにしています。SIGSEGV を自分自身に送信した時などに SEGV ではなく Aborted で終了してしまってたらしい。

[ce436ff3e3] Peter Zhu 2023-12-18 18:30:24 UTC

GC.stat_heap のテストでたまに失敗するものを安定化させるため GC.stat_heap 呼び出しの時に GC を無効化しておくようにしています。

[46085ef970] Nobuyoshi Nakada 2023-12-18 11:22:22 UTC

lib/bundled_gems.rb で rdoc によるドキュメント化を抑制するための :stopdoc: を追加しています。

[e6fa1d62fa] Alexander Momchilov 2023-12-18 09:00:48 UTC

拡張ライブラリ psych の Psych::Visitors::YAMLTree でオブジェクトの管理のための Hash に Hash#compare_by_identity を利用するようにしています。これにより Object#object_id を呼ぶのを抑制しています。

[b3598f95fa] Alexander Momchilov 2023-12-18 09:01:01 UTC

拡張ライブラリ psych のテストで Object#object_id についての assert_equal で同一性をチェックしていたのを assert_same を利用するようにしています。

[5ea862f26e] Hiroshi SHIBATA 2023-12-19 01:56:54 UTC

拡張ライブラリ psych のバージョンを 5.1.2 に更新しています。

[acfd2e9d64] git 2023-12-19 02:13:02 UTC

NEWS の default gems のバージョンリストの psych のバージョンを更新しています。

[36b389c206] Yuta Saito 2023-12-17 14:21:17 UTC

dln.c で ABI のチェックのための dln_incompatible_func() で dladdr() の呼び出しを HAVE_DLADDR が真の時だけ行うように修正しています。 WASI 環境の対応のためみたいです。

[f907a7111c] Burdette Lamar 2023-12-19 02:40:58 UTC

Complex#denominator, Complex#numerator などの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/9260

[b5f33ba76f] Yuta Saito 2023-12-19 02:55:24 UTC

3c471149910d79745b50389c436f0ed2973e0d91 で reset_sigmask() の呼び出しを追加した時の preprocessor 分岐の条件を USE_SIGALTSTACK または _WIN32 の定義をチェックするように修正しています。これも Emscripten 向けみたいですね。

[dee45ac231] Nobuyoshi Nakada 2023-12-19 03:59:43 UTC

MatchData#[] の rdoc 用コメントに名前つき capture で同じ名前が複数出てくるケースでは最後のマッチ位置の文字列が得られることを追記しています。

[eb872d1752] Takashi Kokubun 2023-12-19 07:49:54 UTC

RJIT の統計情報の vm_insns_count のカウンタを YJIT のためのものと共用するようにしているようです。

[edd6581eec] Takashi Kokubun 2023-12-19 08:00:18 UTC

eb872d17524f299bdd023f005da38ffcddffa90a の追加で rjit_c.c で rb_vm_insns_count 変数の宣言を追加しています。

[8671cd59f7] Takashi Kokubun 2023-12-19 08:02:38 UTC

edd6581eec59f0139cfff27bccf9e24c9152a6d3 の修正で rb_vm_insns_count の型を size_t から uint64_t に変更しています。

[8d5af353b2] Takashi Kokubun 2023-12-19 06:21:31 UTC

RJIT の命令の disasm 用のコメントの管理を --rjit-dump-disasm オプションが指定された時だけ保持するようにしています。

[96e4f42b3d] Takashi Kokubun 2023-12-19 08:06:21 UTC

eb872d17524f299bdd023f005da38ffcddffa90a の追加修正で変数 rb_vm_insns_count の定義を USE_YJIT の時のみしていたのを USE_RJIT もチェックするようにして RJIT のみ有効化したビルドもできるようにしています。

[f9a48548cf] Koichi Sasada 2023-12-19 08:32:19 UTC

finalizer の実行後に cfp->sp を元に戻すようにしています。finalizer 用のメソッドの呼び出しが例外を発生させた時に SEGV することがあったようです。 [ruby-core:115594] [Bug #20042]