ruby-trunk-changes 2024-02-06

今日は主に GC.compact により IO の書き出しのバッファとして使う文字列が移動してエラーになる可能性があった不具合修正などがありました。

[d9bd64f9ee] Benoit Daloze 2024-02-05 13:19:13 UTC

spec/default.mspec のコメントの typo 修正。

[abe07d4bf5] Benoit Daloze 2024-02-05 15:29:56 UTC

spec/mspec に upstream から最新版をマージしています。

[40642cd3bc] Benoit Daloze 2024-02-05 15:29:57 UTC

spec/ruby に upstream から最新版をマージしています。

[0a88437de2] git 2024-02-05 16:08:06 UTC

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

[02c88477ce] Yuta Saito 2023-12-17 14:33:20 UTC

Wasm 版の configure のためのマクロ tool/m4/ruby_wasm_tools.m4 で objcopy に WASI SDK 用の llvm-objcopy コマンドを使うように OBJCOPY 変数の指定を追加しています。

[5e0c171451] Peter Zhu 2024-02-02 17:00:21 UTC

IO#write のためのバッファとして使う文字列オブジェクトを書き換えから保護するために rb_str_tmp_frozen_acquire() を呼んでいたのですが文字列のバッファが slot 内に埋め込みされていた場合 GC.compact による slot の移動によってバッファが移動する可能性があったため、rb_str_tmp_frozen_no_embed_acquire() という新たな関数を導入してバッファが埋め込まれていた場合は埋め込みされないように指定した新しい文字列オブジェクトを作ってそちらに複製を作るようにして保護しています。 [ruby-core:116114] [Bug #20169]

[ca7a48110f] David Rodriguez 2024-02-02 20:19:08 UTC

e99951edfad6c636f561f1e6f3eda2e0609e8fbbrubygems の拡張ライブラリを含む gem のビルド処理の変更を revert しています。リファクタリングかなと思ってましたがなにか問題があったようです。

[bae3e5b29a] Alan Wu 2024-02-05 19:10:12 UTC

YJIT で無引数の super (ZSUPER)でメソッド呼び出しに splat の指定があった時? に JIT をあきらめていたのが不要だったようでやめています。追加されたテストをみると明示的に splat 引数渡しをしている感じではなくてブロック渡しで Module#define_method で定義したメソッド内での super の場合が該当しているようです。

[6219066702] "dependabot[bot]" 2024-02-06 02:22:19 UTC

GitHub Actions の WASI 版 workflow で利用しているアクション actions/upload-artifact のバージョンを更新しています。

[4f6b827e98] Nobuyoshi Nakada 2024-02-06 03:19:56 UTC

Fiber のための coroutine の arm64 版実装で関数定義全体を preprocessor の分岐で分けてたのを関数定義内で分岐するようにしています。またインラインアセンブリを書くのに asm() のかわりに __asm() を使うようにしています。

[19f615521d] Yusuke Endoh 2024-02-03 20:02:49 UTC

メモリ使用量の制限を極端に絞って起動した時のテストがしばしばこけるのでテスト自体を削除しています。

[719db18b50] KJ Tsanaktsidis 2024-01-28 06:15:43 UTC

M:N Thread を利用している時にスタック領域を ASAN に伝えるために __sanitizer_start_switch_fiber() という関数の呼び出しを coroutine の切り替え前後に呼ぶように追加しています。 [ruby-core:116466] [Bug #20220]

[4f4f3a6dec] KJ Tsanaktsidis 2024-01-28 06:18:36 UTC

ObjectSpace の全 slot に対してコールバック関数を呼ぶ objspace_each_objects_try() で ASAN 対応のため __asan_region_is_poisoned() を呼んでいたのを削除しています。 page 内の 1つでも poisoned だとコールバックを skip してしまうので意図した挙動ではないということみたいです。各コールバックでチェックしているのかな。 [ruby-core:116466] [Bug #20220]