ruby-trunk-changes 2023-09-02

今日は主に GC まわりの最適化/不具合修正や先日の String#start_with? などの prefix にマッチさせるメソッドの修正のコーナーケースの再修正、yarp の更新などがありました。

[771576f021] Peter Zhu 2023-08-27 23:29:35 UTC

bfb395c620b811b4b3cb7d535d58721268af285d で実装した rb_gc_mark_weak() の中で RGenGC の old 世代のオブジェクトの場合 minor GC の途中では weak reference への登録する必要がないとのことでスキップするようにしています。

[bead539650] Peter Zhu 2023-08-16 12:55:01 UTC

gc.c の gc_continue() で incremental marking を続ける条件に free_pages がないことが入っていたので常に継続されなくなってた? のを条件から削除しています。

[95def300d2] Peter Zhu 2023-09-01 19:28:29 UTC

Process.warmup のテストで子プロセスで最初に GC 実施しておくようにしています。

[1c622a6b58] Kevin Newton 2023-09-01 20:42:37 UTC

yarp のバージョンを 0.10.0 に更新。

[570ebeaee2] git 2023-09-01 20:57:36 UTC

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

[d617b1b630] HParker 2023-08-31 22:36:57 UTC

yarp の不具合修正。しかし calloc() や malloc() の戻り値のチェックしていないな。

[d99db1199d] Kevin Newton 2023-09-01 16:47:37 UTC

yarp のスタイル修正のみ。

[7f9a2df02b] Kevin Newton 2023-09-01 16:48:03 UTC

yarp のスタイル修正のみ。

[d1f83c37f8] Peter Zhu 2023-09-01 21:48:55 UTC

もうひとつ別の Process.warmup のテストでも子プロセスで最初に GC 実施しておくようにしています。

[00f263e6c4] Takashi Kokubun 2023-09-01 23:02:23 UTC

tool/sync_default_gems.rb で default gems の同期時に無視するファイルを削除するために git checkout で元に戻す前に git rm するコマンドが消えてたので復活させています。

[e8ef5b1281] Kevin Newton 2023-09-01 18:51:50 UTC

yarp の node の inspect の表示を修正。

[2ca0f01015] ywenc 2023-08-31 21:52:50 UTC

String#start_with? と String#delete_prefix のテストに prefix 以降の部分に不正なバイト列があった時の assertion を追加しています。

[d89b15cdce] John Hawthorn 2023-08-31 22:12:47 UTC

b054c2fe06598f1141fdc337b10046f41f0e227c で修正した String#start_with? や String#delete_prefix で不正なバイト列をにマッチしないようにするやつの再修正。prefix の次の文字が文字境界の先頭であることをチェックしてましたが、"\xBE" という UTF-8 の continuation byte が次に来てた時に不正と判定されてしまって意図しない挙動をしていたので prefix の最後の文字の最後のバイトがちゃんと文字境界になっているかというチェックに変更しているようです。 [ruby-core:114276] [Bug #19784]

[3c41ef4749] Takashi Kokubun 2023-09-01 23:33:22 UTC

yarp のビルド時の不具合修正。