以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250517より取得しました。


ruby-trunk-changes 2025-05-17

今日は主にマルチバイト文字を含む名前のクラス/モジュールの Marshal.dump ができるようにする変更や prism 利用時の暗黙のブロックパラメーター it の修正、finalizer 関係の複数 Ractor 時の不具合修正などがありました。

[5e01c0e4e2] Max Bernstein 2025-05-15 20:30:52 UTC

ZJIT の Rust 実装で不要な clone() の呼び出しを削っています。

[097d742a1e] Nobuyoshi Nakada 2025-05-16 11:45:18 UTC

Module/Class 名にマルチバイト文字を含む名前をつけたものを Marshal.dump しようとすると例外が発生する不具合を修正しています。なんですがこれ T_MODULE/T_CLASS 型のオブジェクトの dump 結果が変化しているので互換性壊れないかな(新しいバージョンで non-ASCII なクラス名のクラスを dump したものを古いバージョンで load した時)。 encoding の指定がなければ従来と同じままみたいなのでそんなに踏まなさそうですが。 [ruby-core:115422] [Bug #20009]

[4921845b61] Nick Dower 2025-05-16 03:18:28 UTC

prism 利用時に ensure 節内で暗黙のブロックパラメーター it が正しい値を返さないことがある不具合を修正しています。 ISeq へのコンパイル時の不具合みたいです。 [ruby-core:121865] [Bug #21313]

[c5c252c067] Nick Dower 2025-05-16 13:44:45 UTC

暗黙のブロックパラメーター it の文法についてのテストに正規表現リテラル内に式展開で埋め込む時の it のテストを追加しています。

[1f09c9fa14] BurdetteLamar 2025-05-15 19:51:27 UTC

Stringt#ascii_only? の rdoc 用コメントの手直し。

[a188249616] BurdetteLamar 2025-05-15 19:58:57 UTC

String#b の rdoc 用コメントの call-seq の修正とリンクの追加。

[cc90adb68d] Burdette Lamar 2025-05-16 16:50:55 UTC

String#append_as_bytes の rdoc 用コメントの手直し。

[eead83160b] Daniel Colson 2025-05-16 17:31:43 UTC

先日 YJIT と ZJIT 両方可能にしてビルドすることはできるようにしてましたが、実行時に --zjit で ZJIT を有効にした上でコードで RubyVM::YJIT.enable で後から YJIT も有効にすることはできてしまってたようなのでそれを警告出力して無視するようにしています。

[a294427017] Jean Boussier 2025-05-15 11:43:44 UTC

GC の default と mmtk 実装の rb_gc_impl_copy_finalizer() の実装で finalizer_table への操作をするところで VM 全体のロック取得を追加しています。

[ec8900e3eb] Jean Boussier 2025-05-15 12:04:36 UTC

GC の実装の rb_gc_impl_copy_finalizer() で finalizer の設定されたオブジェクトが Object#clone で複製された時に新しいオブジェクトの object_id で関連を登録するように修正しています。

[1e33a451bb] Jean Boussier 2025-05-16 13:37:00 UTC

finalizer の実行時の run_final() 関数の呼び出しは finalizer_table の走査を含むので VM 全体のロック取得後に行うようにしています。

[22c09135a8] Jean Boussier 2025-05-16 14:08:21 UTC

Object#initialize_copy の実装でインスタンス変数がない時に shape_id をコピーしないようにしています。たぶん object_id の管理にも Object Shapes を使うようにしたのでインスタンス変数がなくても shape がある場合があって、その時はコピー不要なのでということだと思います。

[aa0f689bf4] Daisuke Aritomo 2025-02-03 14:54:05 UTC

標準添付ライブラリ net/http の Net::HTTP::SSL_IVNAMES や Net::HTTPResponse::CODE_CLASS_TO_OBJ, Net::HTTPResponse::CODE_TO_OBJ といった定数の配列を freeze しておくようにしています。 Ractor 対応のため。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250517より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14