ruby-trunk-changes 2023-09-19

今日は主に標準添付ライブラリ securerandom に SecureRandom.uuid_v7 の新規追加や GC.compact 時の圧縮効率の改善などがありました。

[d3852f71e4] Matt Valentine-House 2023-08-08 20:09:37 UTC

GC の compaction の検証関数 gc_verify_compaction_references() で heap をソートする関数で比較関数を引数で指定できるようにリファクタリングしています。この後の変更で比較関数を変更可能にするためみたいです。

[404a1c032a] Matt Valentine-House 2023-08-11 13:39:59 UTC

d3852f71e4924b16a9fed6b43b86d11af036c432 の続きで heap を空き slot 数でソートする処理を gc_start() の中に移動しています。GC.compact 実行時に常にソートを実施するようにしているようです。

[8792e421ce] Matt Valentine-House 2023-08-11 14:16:30 UTC

d3852f71e4924b16a9fed6b43b86d11af036c432 からの続きで gc.c の構造体 struct heap_page に pinned_slots メンバーを追加して compaction で移動しないよう pinned された slot の数を管理して、compact 時に pinned されたオブジェクトが多い page から移動先に使うようにすることで効率良く compaction することを目論んでいるようです。

[ec37636ab3] Matt Valentine-House 2023-09-12 09:53:57 UTC

d3852f71e4924b16a9fed6b43b86d11af036c432 からの続きで page のソート処理は compaction が可能なプラットフォームでのみ行うようにしています。

[0a2c4a6091] Takashi Kokubun 2023-09-18 23:27:18 UTC

doc/yjit/yjit.md に YJIT のチューニングのためのオプションの解説などを追記しています。 https://github.com/ruby/ruby/pull/8472

[230834d9bb] Jeremy Evans 2023-09-18 23:58:50 UTC

標準添付ライブラリ base64 の gemspec ファイルの required_ruby_version を 2.4 以降に引き上げています。

[465c222ef1] Yoshiki Takagi 2023-09-16 07:24:08 UTC

bundler で bundle gem で生成するプロジェクトの GitHub Actions 用のテンプレートで利用する actions/checkout アクションのバージョンを更新しています。

[e77c766b7a] 0x1eef 2023-09-15 06:35:34 UTC

標準添付ライブラリ net/http で冗長な文字列リテラルの freeze の呼び出しを削っています。

[dfb2b4cbc9] nick evans 2023-06-29 22:39:29 UTC

標準添付ライブラリ securerandom に SecureRandom.uuid_v7 メソッドを新規追加しています。 https://github.com/ruby/ruby/pull/7953 [ruby-core:113926] [Bug #19735]

[b33e9f637d] Hiroshi SHIBATA 2023-09-19 02:13:19 UTC

dfb2b4cbc9aa5edc315e210bf6bfd92fcf6e45de で追加された SecureRnadom.uuid_v7 のテストメソッドの不要な引数を削除しています。

[4634405f7c] Nobuyoshi Nakada 2023-09-19 04:56:06 UTC

813a5f4fc46a24ca1695d23c159250b9e1080ac7 で CRuby の VM が内部的に利用するメソッドなどを定義しておくための VM FrozenCore を T_IMEMO 型のオブジェクトとして生成するように変更していたのを revert して rb_mRubyVMFrozenCore にクラスとして生成するようにしています。 [ruby-core:105692] [Bug #18257]

[6473903082] Nobuyoshi Nakada 2023-09-19 05:09:04 UTC

4634405f7c7a7e0b5490ed3de35c12aad9c91bf5 で rb_mRubyVMFrozenCore に確保するようにしたクラスの class path を rb_gc_register_mark_object() で GC mark の root として登録するようにしています。 [ruby-core:105692] [Bug #18257]

[cea7e6ecca] Samuel Giddins 2023-09-18 21:16:06 UTC

bundler でエラーメッセージのオブジェクト生成を実際に必要になるまで遅延するようにしているようです。これ効果あるのかな……。

[4023637d20] Samuel Giddins 2023-09-18 21:07:41 UTC

rubygems で文字列の操作で不要な複製を抑制する細かな最適化をしているようです。 [Bug #19890]

[8f1b688177] Nobuyoshi Nakada 2023-09-19 08:59:16 UTC

AppVeyor の設定で GitHub から vcpkg.exe をダウンロードしてくるようにしています。新しいバージョンに問題があったみたいで古いバージョンに巻き戻すためみたいです。