ruby-trunk-changes 2021-05-19

今日は GC.compact の machine stack からの参照が移動中に追加されるケースの考慮の追加などがありました。

[6b32f1f338] Burdette Lamar 2021-05-18 13:16:29 UTC

Object クラスの rdoc 用コメントにメソッド名の一覧などを追記しています。 https://github.com/ruby/ruby/pull/4503

[7c716b686c] Nobuyoshi Nakada 2021-05-18 02:48:21 UTC

拡張ライブラリ json の自動生成されるソースファイルの static const 変数の定義に MAYBE_UNUSED() マクロをつけて警告抑制するため ext/json/parser/prereq.mk の生成後の ruby での編集にルールを追加しています。

[e4e416380d] Aaron Patterson 2021-05-17 23:46:49 UTC

GC.compact でオブジェクト移動した後に machine stack 上の参照っぽいものをチェックして、その参照先が移動していた(T_MOVED 型になってた)時には対応できないので(マシンスタック上の参照っぽいものは本当に VALUE かわからないので書きかえるわけにもいかないので)移動をとりやめて元に戻すようにしています。移動開始時に GC でマークするはずですが、GC.compact の移動処理中にも並行して動いている可能性がある(Ractor 対応?)ので移動後に元の位置への参照ができてしまってる可能性があるみたいです。具体的になにか問題があったのかなぁ。

[637683c9f4] git 2021-05-18 21:53:29 UTC

version.h の日付更新

[1d170fdc6d] Nobuyoshi Nakada 2021-05-19 01:16:22 UTC

7c716b686ca396733028f9a824f8cd656e23f7a2 の拡張ライブラリ json の生成ソースで MAYBE_UNUSED() マクロを使うようにしていましたが、古い ruby 向け? に未定義の時にマクロ定義を追加しています。

[adcbae8d49] Hiroshi SHIBATA 2021-05-19 05:24:01 UTC

minitest から移植した tool/lib/minitest/mock.rb を削除してこのライブラリ自体のテストおよび標準添付ライブラリ resolv のテストで使ってたところを独自に Object#stub の定義を持つようにしています。