ruby-trunk-changes 2023-07-30

今日は主に callcache のメモリリーク修正に関連する追加修正などがありました。

[df5330b04e] Benoit Daloze 2023-07-26 12:08:23 UTC

標準添付ライブラリ rdoc で文字列が ruby スクリプトとして parse 可能かのチェックに Kernel#eval を利用して BEGIN 節のブロック内で return することで実際に実行はさせないということをしていたのを BEGIN 節内で kernel#throw で抜ける方法に変更しています。 BEGIN 節内の return がちょっと前修正されてたのでその関連ですね。

[3d87eec94a] Nobuyoshi Nakada 2023-07-26 23:26:59 UTC

rubyspec に Kernel#eval に BEGIN 節内に return を書いた文字列を渡した時のテストを追加しています。

[4bdb61b665] Joshua Young 2023-07-29 13:40:27 UTC

Enumerable#uniq の rdoc 用コメントの英文修正。

[087a2deccf] Koichi Sasada 2023-07-29 22:08:33 UTC

c330037c1a38cc257dbe21022fcc7b13159c2821 からの callcache のメモリリーク修正の一連の変更の続きで T_IMEMO 型オブジェクトの GC.compact 時の処理でオブジェクトが生きているかどうかの判定を関数に切り出して、さらにポインタが heap 内を差しているかどうかのチェックなども追加しています。

[bde4080b39] Takashi Kokubun 2023-07-30 01:14:04 UTC

YJIT の Rust 実装で Context 型に Copy trait をつけていたのをやめて SideExitContext に明示的にコピーを作るメソッドを実装するリファクタリングhttps://github.com/ruby/ruby/pull/8138

[0d86cc4caf] Nobuyoshi Nakada 2023-07-28 05:26:47 UTC

bundler で再定義した require で元 default gems の gem について警告を出す時に渡された引数を文字列に変換するのに to_s を呼ぶかわりに File.path メソッドで文字列化するようにしています。to_path を呼んだほうがいいのでは、とは思ってましたが File.path というメソッドもありましたね。

[67be453d9d] Nobuyoshi Nakada 2023-07-29 01:21:55 UTC

db80e947a382a6a9ef2295e81f5b97c6a8ecbce7rubygems の WebAuthn 対応のために Thread を起動した時に abort_on_exception/report_on_exception を true にするのを対象の Thread 内で実施するようにしたのが global な変更をしていまっていたので revert されてましたが、対象の Thread 内で Thread.current でその Thread にだけフラグをセットする実装に修正してリトライしています。

[dfad14d83f] Nobuyoshi Nakada 2023-07-30 02:24:59 UTC

標準添付ライブラリ optparse のドキュメントのマークアップの修正。

[b5c74d5488] Nobuyoshi Nakada 2023-07-30 06:13:58 UTC

Kernel#require のテストで引数の Encoding が不正なための LoadError のメッセージをチェックするのに assert_raise_with_message を利用していたのを assert_raise とメッセージのチェック用の追加の assertion メソッドに分離しています。環境によって? チェック時に Encoding::CompatibilityError が発生してしまうことがあったみたいです。