ruby-trunk-changes 2023-11-22

今日は主に Variable Width Allocation による拡張 slot への埋め込みに内部的クラスなどのいくつかを対応させる変更や標準添付ライブラリ resolve の IPv6 アドレスの文字列化の不具合修正や irb, rbs, prism, net-imap などのバージョン更新がありました。

[307af18fa0] Soutaro Matsumoto 2023-11-21 12:30:27 UTC

gems/bundled_gems のバージョンを 3.3.2 に更新しています。 https://github.com/ruby/ruby/pull/8974

[70ea3d3ac0] git 2023-11-21 12:30:58 UTC

NEWS の bundled gems のバージョンリストの rbs のバージョンも更新しています。

[f954a5663a] tomoya ishida 2023-11-21 13:02:16 UTC

irb のバージョンを 1.9.1 に更新しています。

[fafdc8a62b] git 2023-11-21 13:03:25 UTC

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

[b4f551686b] Jean Boussier 2023-11-21 11:09:13 UTC

TypedData 型のクラスの定義で memsize_of で利用しているメモリサイズを常に 0 で返すための関数を登録しているものは関数ポインタに NULL を設定しておけば良くて冗長なので削除しています。

[7e7e2dde24] Peter Zhu 2023-11-21 14:19:15 UTC

Object Shapes でのインスタンス変数管理で st_table による管理への移行の処理で T_OBJECT/T_MODULE/T_CLASS 型以外のその他のオブジェクトの時の st_lookup() の引数の渡しかたのミスを修正しています。これにより古いテーブルの解放がされずメモリリークしていたようです。

[95d4a52b3a] Takashi Kokubun 2023-11-21 15:28:45 UTC

YJIT の生成したコードの disasm をダンプする処理は出力先のファイルの open に失敗した場合は標準エラー出力にメッセージだけ出してダンプ処理を無効化して実行を続けるようにしています。 https://github.com/ruby/ruby/pull/8968

[751d4b9913] Jean Boussier 2023-11-21 11:03:17 UTC

Process::Status クラスのオブジェクトを Variable Width Allocation による拡張 slot への埋め込みを有効にしています。

[903b0931a1] Jean Boussier 2023-11-21 12:07:53 UTC

NameError 例外クラスの内部的に保持している name, receiver などの情報を Variable Width Allocation による拡張 slot への埋め込みを使って保持するように変更しています。

[0aafd040c3] Jean Boussier 2023-11-21 12:47:49 UTC

ISeq のバイナリフォーマットでのダンプの処理時に内部的に利用するオブジェクトの Variable Width Allocation による拡張 slot への埋め込みを利用するようにしています。

[209a0253f5] Aaron Patterson 2023-11-21 17:23:37 UTC

variable.c の rb_ivar_count() という関数内で T_OBJECT や T_MODULE/T_CLASS 型オブジェクトの時の処理を ROBJECT_IV_COUNT() や RCLASS_IV_COUNT() といった inline 関数に委譲するリファクタリング。実際には処理は違っていますが元の実装で配列内の要素が Qundef のものを除外するという処理は不要なのでこれらの関数の利用で問題ないとのこと。

[5e16003eec] git 2023-11-21 19:00:22 UTC

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

[57fa69f26f] Bo Anderson 2023-11-17 04:27:24 UTC

bundler で Gemfile.lock に記述される PLATFORM の判定を逆順にしています。なぜかこれで不具合修正になっているみたいです。

[de337a312f] Peter Zhu 2023-11-20 21:58:23 UTC

WeakMap クラスを Variable Width Allocation による拡張 slot への埋め込みを利用するようにしています。

[c34d23fcc8] Peter Zhu 2023-11-20 22:01:18 UTC

WeakKeyMap クラスも Variable Width Allocation による拡張 slot への埋め込みを利用するようにしています。

[d68e5c6d19] Burdette Lamar 2023-11-21 22:25:21 UTC

標準添付ライブラリ open3 の rdoc 用コメントの体裁を整えたりしています。 https://github.com/ruby/open3/pull/21

[31517c8627] Yusuke Endoh 2023-11-22 04:07:44 UTC

04eb40b633397d03e4cbce41418626f4fabdcb02 で追加した complex.c の関数 complex_pow_for_special_angle() の未初期化変数の警告抑制のため初期化子を追加しています。

[0745c0c5ef] git 2023-11-22 06:58:17 UTC

gems/bundled_gems と NEWS で bundled gems の net-imap のバージョンを 0.4.6 に更新しています。

[2d7fb9c2fa] Jean Boussier 2023-11-21 16:23:56 UTC

Object Shapes のデバッグ用ビルドで生やすメソッドに RubyVM::Shapes.exhaust_shapes というのを追加して Object Shapes のテストでこれを利用して大量のインスタンス変数をセットするのを速く実行できるようにしています。テストの高速化のためだけのメソッド。

[6391ae9ebc] Jean Boussier 2023-11-22 08:16:43 UTC

拡張ライブラリ objspace の ObjectSpace.dump_all などで T_IMEMO 型オブジェクトで callcache 用の imemo オブジェクトの時の ID を文字列化できなかった時の対応を追加しています。

[9e24d747ff] John Bond 2023-11-22 10:35:22 UTC

標準添付ライブラリ resolv で Resolv::IPv6#to_s で先頭の "0" がひとつだけの部分を "::" に省略しないようにしています。 RFC5952 に準拠するためとのこと。 https://github.com/ruby/resolv/pull/25

[1e075a734f] Matt Valentine-House 2023-11-21 14:24:26 UTC

Enumerator 関連の実装で内部的に利用されるクラスを Variable Width Allocation による拡張 slot への埋め込みを利用するようにしています。

[a3f9a98c29] Matt Valentine-House 2023-11-22 09:19:46 UTC

Enumerator の関連で内部的に使うクラスで memsize_of のためのコールバック関数で常に構造体サイズを返すだけのものは削除して memsize コールバック関数には NULL をセットしておくようにしています。

[cdc578ee00] Matt Valentine-House 2023-11-22 09:20:47 UTC

同じく Enumerator 関連の内部的に利用するクラスの TypedData の free 関数の設定でわざわざ RUBY_TYPED_DEFAULT_FREE に別名を #define でマクロ定義して渡していたのを直接 RUBY_TYPED_DEFAULT_FREE を指定するようにしています。