ruby-trunk-changes 2024-02-28

今日は default gems の gemspec ファイルの変更に追随してテストやビルドプロセスの修正などがありました。

[9ba53cb688] Peter Zhu 2024-02-26 20:33:50 UTC

gc.c の is_live_object() で if 文のかわりに条件をそのまま return するリファクタリング

[2396b7a62f] Peter Zhu 2024-02-26 20:34:11 UTC

gc.c の is_live_object() の戻り値の型を int から bool に変更しています。

[1f740cd111] Peter Zhu 2024-02-26 20:47:48 UTC

gc.c の inline 関数 is_swept_object() を削除して呼び元にその処理を展開して書くようにしています。名前が misleading なのでとのこと。

[11f121364a] Alan Wu 2024-02-27 17:50:38 UTC

YJIT で C 実装のメソッドへ配列を展開して渡す呼びかたの時にメソッドの実装が可変長引数を受け取る関数だった場合の実装を修正しています。

[3c44f6da6c] Peter Zhu 2024-02-27 17:27:46 UTC

gc.c の is_garbage_object() という関数も if 文の分岐を条件の式を直接 return するようにリファクタリングしています。

[08731182b8] Peter Zhu 2024-02-27 17:28:26 UTC

gc.c の is_garbage_object() も戻り値の型を int から bool に変更しています。

[edc7b73fc4] Peter Zhu 2024-02-27 19:36:19 UTC

imemo.c の moved_or_living_object_strictly_p() という関数で rb_gc_is_ptr_to_obj() によるチェックを条件から削除しています。

[3668118572] Takashi Kokubun 2024-02-27 22:02:24 UTC

doc/yjit/yjit.md から YJIT の効果を得るには while を使うほうがいいよという記述は Array#each の実装が ruby になって YJIT で高速化の恩恵を得られるようになったので削除しています。 https://github.com/ruby/ruby/pull/10119

[95e55e9ae4] Hiroshi SHIBATA 2024-02-28 02:08:49 UTC

default gems の gemspec ファイルの内容をチェックするテストで git ls-files を呼び出すのをやめるために文字列置換でコマンド名を消すところで従来のバッククオートから IO.popen による呼び出しに変わった影響で置換がされなくなったのに追随するようにしています。

[e8e2415bb3] Peter Zhu 2024-02-27 20:09:18 UTC

rb_special_const_p() を直接呼んでいるところを RB_SPECIAL_CONST_P() マクロを使うようにしています。

[47b46fd98c] Hiroshi SHIBATA 2024-02-28 02:14:44 UTC

95e55e9ae4a446a62db21e2ea91c54d20fbdcbdc の続きで default gems の gemspec ファイルのチェックで IO.popen の場合は呼べないコマンドでエラーになると例外発生するので無視するためダミーの echo コマンドを埋め込むようにしています。

[fe0b704df5] KJ Tsanaktsidis 2024-02-24 03:45:05 UTC

ASAN が有効かどうか判定するためにテスト用の拡張ライブラリを追加して Test::ASAN.enabled? でチェックできるようにしています。そして assert_no_memory_leak という assertion メソッドで ASAN が有効化されている時には skip するようにしています。 [ruby-core:116815] [Bug #20274]

[75a4aa2052] Hiroshi SHIBATA 2024-02-28 03:49:03 UTC

tool/rbinstall.rb で default gems の gemspec ファイルで spec.files のために IO.popen で git ls-files コマンドを実行する方法で書かれている時にも文字列置換の対象になるように追随しています。 default gems のために ruby 本体では gemspec を書き換えて使うみたいなことをそういえばしてたんでしたね。

[05387b590b] Hiroshi SHIBATA 2024-02-28 03:57:46 UTC

95e55e9ae4a446a62db21e2ea91c54d20fbdcbdc からの続きで default gems の gemspec ファイルをチェックするテストで不要なコマンド実行を削除するための正規表現を再修正しています。

[8316cb213c] Nobuyoshi Nakada 2024-02-28 07:08:56 UTC

異常終了時の crash report の表示のテストで assert_crash_report という assertion メソッドをブロック渡しを使ってたのを戻り値を利用するように修正しています。実際にはブロックを受け付けてないのでテストになってなかったのかな。

[eb6eb1d4e8] Nobuyoshi Nakada 2024-02-28 08:53:02 UTC

crash report をチェックするテストで ruby のファイルパスのエスケープの処理を Windows 向けに修正しています。