ruby-trunk-changes 2020-09-10

今日は Tempfile.open のブロック渡し呼び出しで最後のファイルを消すようにした仕様変更の revert や ObjectSpace.dump_all の新機能、最適化などがありました。

[6997109fca] Jeremy Evans 2020-09-08 19:02:56 UTC

fa21985a7a2f8f52a8bd82bd12a724e9dca74934 で標準添付ライブラリ tempfile の Tempfile.open のブロックつき呼び出しでブロックを抜けた時にファイルを削除するように仕様変更されてましたが、互換性の問題がありそうな使われかたが実際にあったようなので revert して、かわりに Tempfile.open の rdoc 用コメントにこの点を Tempfile.create との比較しつつ追記しています。なるほど Tempfile.create を使えばブロック抜けると同時に消せるのか。どうもこの変更は Matz の承認は得てなかったようです。

[b194973dcd] Hiroshi SHIBATA 2020-09-09 11:52:48 UTC

6997109fcaef0567f176e53dfc092aecc49f9ece による revert に追随して NEWS からも Tempfile.open の仕様変更についての記述を削除しています。また対応して修正されたテスト群も元に戻されています。

[01828a955a] Hiroshi SHIBATA 2020-09-09 12:53:09 UTC

標準添付ライブラリ tsort を default gem 化しています。

[b49a870414] Jean Boussier 2020-07-28 10:58:49 UTC

拡張ライブラリ objspace の ObjectSpace.dump_all にキーワード引数 since を追加して、GC.count で得られる GC 回数を渡してそれ以降で確保されたオブジェクトのみダンプするように絞り込む機能を追加しています。これはすごく便利そう。

[76c7146ab4] git 2020-09-09 15:05:36 UTC

version.h の日付更新

[5001cc4716] Jean Boussier 2020-08-18 07:41:38 UTC

ObjectSpace.dump_all の実装で出力を毎回 IO に出さずバッファリングするようにしています。これにより高速化しています。

[475c8701d7] Aaron Patterson 2020-09-05 00:32:31 UTC

SecureRandom がメソッド定義の実体を実際に必要になった時まで遅延して動的にメソッド再定義しているため、Ractor で使った時に利用時にクラスの書き換えが行なわれるのでエラーになっていた不具合を修正。クラス読み込み時に元の特異メソッドで行なってた判定を実行してしまうようにしています。 https://github.com/ruby/ruby/pull/3518

[ea78960ee5] Koichi Sasada 2020-09-10 07:51:24 UTC

Ractor の実装で callable_method_entry() で method entry のテーブルを操作する時に Ractor 間で排他処理が必要だったので RB_VM_LOCK_ENTER()/RB_VM_LOCK_LEAVE() を使うようにしています。