ruby-trunk-changes 2020-09-19

今日は GC.compat と finalizer の組み合わせでの不具合修正や拡張ライブラリ io/wait の依存バージョンの 3.0 以降への変更などがありました。

[1a9dd31910] Aaron Patterson 2020-09-18 17:50:27 UTC

GC.compact 時に finalizer 用の登録テーブルに入ってるかどうかを考慮していたのを、かわりに GC の mark 時にこのテーブル内のオブジェクトを pin down するように変更しています。一部のタイプのオブジェクトはこれまでも移動不可になってましたが、finalizer 実行中にオブジェクトの参照を GC が関知しない linked list 内にコピーするので全て移動したらまずかったということみたいです。

[7d9b4d3c61] git 2020-09-18 19:32:21 UTC

version.h の日付更新

[555ea83344] aycabta 2020-09-18 19:25:59 UTC

標準添付ライブラリ irbe468d9f49ca34f713c030c623f655a40370e186d で導入された代入文の時に評価値を表示しないようにする設定 OMIT_ON_ASSIGNMENT はやっぱり削除して、オプション --omit-on-assignment も廃止してかわりにオプション --truncate-echo-on-assignment を追加しています。 ECHO_ON_ASSIGNMENT に :truncate を指定すると表示はするけど1行におさまらない長い値は省略表示するというものみたいです。

[e193dd1e3d] aycabta 2020-09-18 20:06:03 UTC

irb のバージョンを 1.2.7 に更新しています。

[6cb6d5abc3] Aaron Patterson 2020-09-19 00:04:59 UTC

MJIT の実行時コンパイルする worker が call cache の内容を取得するための mjit_capture_cc_entries() で call cache の内容が GC.compact で移動済みの T_MOVED になってたら異常終了するように assert(3) を追加しています。 不具合の調査のために一時的に追加しているとのこと。

[73a626c078] Nobuyoshi Nakada 2020-09-19 08:26:52 UTC

拡張ライブラリ io/wait の gemspec ファイルの spec.required_ruby_version を 3.0.0 以上に更新しています。 blocking fiber 関連の変更が入ったので 3.0 以降に依存しちゃったみたいですね。