ruby-trunk-changes 2023-09-24

今日は主に Hash#refresh や Module#clone でのメモリリークの修正などがありました。

[61a2e9450c] Peter Zhu 2023-09-22 23:16:21 UTC

Hash#rehash の st_table ベース実装の時のメモリリークを修正。関数名に hash_ の prefix を追加するリファクタリングが一緒に入ってますが基本的に hash_st_free_and_clear_table() の呼び出しが抜けてて古い st_table を解放していないところがあったみたいです。いつからだろう。

[c42261059d] Adam Hess 2023-09-23 19:41:55 UTC

Module#clone を呼び出してモジュール/クラスの複製を作った時に rb_id_table の解放処理が漏れていてメモリリークしていたのを修正しています。 https://github.com/ruby/ruby/pull/8503 [ruby-core:114889] [Bug #19901]

[f38f8d4f4a] yui-knk 2023-09-23 10:49:43 UTC

parse.y のマクロ NEW_OPT_ARG() の第1引数はつねに 0 を渡していたので引数自体を消してマクロ定義に埋め込んでいます。

[94d7c70801] Nobuyoshi Nakada 2023-09-24 00:50:01 UTC

拡張ライブラリ socket のテストで Thread を起動するテストで終了時に ensure 節で Thread の終了を待つように対応しています。

[34d802f32f] yui-knk 2023-09-24 02:13:57 UTC

parse.y の拡張ライブラリ ripper 向けの関数定義 new_args_tail() を ripper_new_yylval2() に委譲するように書きかえています。