今日は Hash の実装や fstring の実装の稀な不具合の修正などがありました。
[53579e5718] a5-stable 2025-03-05 13:46:57 UTC
RubyVM::YJIT.enable の rdoc 用コメントのキーワード引数名の間違いを修正しています。
[c224ca4fea] Jean Boussier 2025-03-05 16:29:32 UTC
fstring の管理テーブルへの登録する fstr_update_callback() で同じ文字列の登録があるものの、その文字列が GC で回収予定だった場合に置き換える際に古いほうの文字列オブジェクトの struct RBasic::flags の RSTRING_FSTR ビットフラグを落として、回収時に fstring のテーブルからエントリが消されないようにしています。 [ruby-core:121246] [Bug #21172]
[443e2ec27d] John Hawthorn 2025-03-04 20:54:33 UTC
Hash オブジェクトや VM 内部での諸々の管理用テーブルに使われる st_table でエントリの削除を表すために hash 関数の値として -1 を特別扱いしているのですが、その判定を do_hash() 関数から normalize_hash_value() という関数に切り出して rb_st_add_direct_with_hash() でも同じ判定と変換を行うようにしています。 Hash オブジェクトの実装を要素数が少ない時の配列を使う AR Hash から st_table を使う ST Hash に変換する時に使われる処理で hash 関数が -1 を返した時に取り出せないエントリを作ってしまっていたようです。 [ruby-core:121239] [Bug #21170]
[e3960c5aa2] "dependabot[bot]" 2025-03-05 23:19:01 UTC
GitHub Actions の独自アクション setup/directories で利用している actions/cache アクションのバージョンを更新しています。
[0d03183748] Takashi Kokubun 2025-03-05 23:46:07 UTC
pull request に自動的に reviewers を追加するための GitHub Actions を対象のブランチが master の時だけ動作するように条件を追加しています。
[e8f8565dc2] Takashi Kokubun 2025-03-06 00:23:20 UTC
削除された MJIT(RJIT) のために定義されていた既に不要になっている関数 insn_may_depend_on_sp_or_pc() の定義(を生成するスクリプト)を削除しています。
[309076ff91] Naoto Ono 2025-03-06 03:18:54 UTC
TracePoint#disable のテストで並列テスト時に意図しないイベントが(Thread の切り替えにより?)混じることがあるので除外するように条件を追加しています。 https://github.com/ruby/ruby/pull/12854
[c939d0c85d] Naoto Ono 2025-03-06 03:39:39 UTC
GitHub Actions の Launchable を利用する時のコマンドラインオプションに標準出力/標準エラー出力のログファイルをアップロードする指定を追加しているようです。 https://github.com/ruby/ruby/pull/12785
[ca4325f6c9] Jean Boussier 2025-03-06 07:09:57 UTC
拡張ライブラリ objspace の ObjectSpace.memsize_of の共有文字列についてのテストで共有元文字列を取り出すための ObjectSpace#each_object のブロック内での String#== の演算子の左右を入れ替えています。同じじゃんという気がしますが ObjectSpace#each_object で取り出したオブジェクト x の == メソッドは再定義されているとか undef されている可能性があってたまに失敗するのでそれを避けるためとのことです。なるほどなぁ。
[f7af75d3d9] Nobuyoshi Nakada 2025-03-05 04:34:52 UTC
ruby 本体のテストに使う test/unit で並列テスト時のテストファイル名の表示に不要な prefix 部分を削ることで短く表示されるようにしています。というか長いと削られてしまうのでそれを避けるためみたい?
[e20f1f76f4] Rahim Packir Saibo 2025-03-05 18:03:03 UTC
拡張ライブラリ json の JSON::GeneratorError という例外クラスで detailed_message を再定義していますが、ここで super しているのが古い ruby だとまだ Exception#detailed_message が定義されていない可能性があるので defined? でチェックするようにしています。