ruby-trunk-changes 2020-09-17

今日は ObjectSpace.define_finalizer で対象のオブジェクトへの参照が含まれてて GC されなくなるケースの一部への警告の追加などがありました。

[f75009c122] Samuel Williams 2020-09-16 03:21:16 UTC

io.c の rb_io_from_fd() を prep_io() を呼ぶようにリファクタリングしています。リファクタリングの他にも a9b2a96c5cfa5ab36c89ffae82e28eb733e36542 で rb_io_t::self の初期化漏れを修正した時に prep_io() でも修正したのをここでも適用するという意味もあるかも。

[8e173d8b27] Chris Seaton 2020-09-16 18:59:36 UTC

finalizer を設定した時のその finalizer に設定した Proc オブジェクトが対象のオブジェクトへの参照を含んでしまっていると GC されなくなってしまうので、ObjectSpace.define_finalizer でそのような場合を検出して警告を出すようにしています。なのですが判定内容をみると登録している Method の receiver が対象のオブジェクト自身というケースだけ検出してる? ような感じです。

[2e6c484040] git 2020-09-16 20:52:45 UTC

version.h の日付更新

[ce888bfa23] Benoit Daloze 2020-09-17 09:17:07 UTC

NEWS に Mutex が Fiber 単位で排他するようになったという変更を追記しています。 [ruby-core:97907] [Feature #16792]

[3f6c0a6d74] Benoit Daloze 2020-09-17 09:42:26 UTC

ruby/spec を upstream から更新しています。