ruby-trunk-changes 2022-02-04

今日は GC.stat の返す情報の項目追加や拡張ライブラリ objspace の ObjectSpace.dump などの返す情報の項目追加などがありました。

[424374d330] Peter Zhu 2022-02-02 20:32:38 UTC

gc.c の heap_prepare() という関数で Lazy Sweep 中の場合に gc_sweep_continue() を呼び出して sweep を完了させるのを incremental marking を完遂させる処理の後に移動しています。コミットログによると gc_marks_continue() は mark が完了したら最後に lazy sweep を開始するのでそれも完遂させて空き page ができることを期待しているようです。

[a9221406aa] Peter Zhu 2022-02-03 16:45:37 UTC

構造体メンバー rb_objspace_t::profile::total_allocated_pages を構造体 rb_size_pool_t のメンバーに移動して、GC.stat の返す項目にも :total_allocated_pages を追加しています。項目の追加は NEWS にも追記したほうが良さそうですね。

[af321ea727] Peter Zhu 2022-02-03 16:51:20 UTC

a9221406aa3177f98be507ff5474f2f7d78b481a と同様に構造体メンバー rb_objspace_t::profile::total_freed_pages を構造体 rb_size_pool_t のメンバーに移動して、GC.stat の返す項目にも :total_freed_pages を追加しています。項目の追加は NEWS にも追記したほうが良さそうですね。

[a3caf196d9] git 2022-02-03 20:07:15 UTC

version.h の日付更新

[9fab2c1a1a] Matt Valentine-House 2022-02-01 21:36:29 UTC

拡張ライブラリ objspace の ObjectSpace.dump, dump_all の返す項目に slot_size というのを追加しています。Variable Width Allocation でオブジェクトの型によってはまとめて確保される slot があるので、そのサイズを返すようになったみたいです。これまで複数の slot をまとめて確保する、という表現をしてきましたが Variable Width Allocation の概念としては 1つの slot のメモリ上のサイズが大きくなっていると考えるのが正しいみたいですね。

[203b1fc7e2] Max Leopold 2022-02-03 17:22:04 UTC

正規表現のドキュメント doc/regexp.rdoc に絵文字(emoji)にマッチする "\p{Emoji}" という POSIX パターンについて追記しています。