ruby-trunk-changes 2020-10-07

今日は標準添付ライブラリ ostruct の OpenStruct を Marshal.load で読み込んだ時に不具合修正などがありました。

[21b199bb24] Nobuyoshi Nakada 2020-10-06 14:18:10 UTC

ext/psych/yaml/loader.c のファイル末尾に改行がなかったので追加しています。

[ed01cc8fdc] Nobuyoshi Nakada 2020-10-06 14:46:24 UTC

configure で macOS で libtool というコマンドの存在チェックをしていたのはもう不要になったようなので削除しています。

[260322fbc5] git 2020-10-06 15:04:48 UTC

version.h の日付更新

[1486785a57] Marc-Andre Lafortune 2020-10-06 21:10:46 UTC

標準添付ライブラリ ostruct の OpenStruct#marshal_load をほぼ同等の実装のメソッド update_to_values! の alias として定義するよう変更しています。 new_ostruct_member! の呼び出しによる特異メソッド追加が呼ばれてなかったのを修正しているみたいですね。

[ee7cc6ac35] Aaron Patterson 2020-10-06 22:13:49 UTC

1486785a5759c5cb0b7a7bf0bc5368cc9a280191 の変更で alias 先の OpenStruct#update_to_values! が private なため marshal_load も private になってしまっていたので public に変更するよう追加修正しています。

[fef52122b0] Chris Seaton 2020-10-05 22:51:34 UTC

proc.c の rb_callable_receiver() という関数で Proc オブジェクトの binding を得るのに binding メソッドを rb_funcall() で呼んでたところを直接 proc_binding() 関数を呼ぶように変更しています。

[c839168b11] Chris Seaton 2020-10-05 22:51:44 UTC

68d24bc04549f04f0bbc40121c115fbbb7caf716 で include/ruby/internal/intern/proc.h から宣言を削除した rb_callable_receiver() の宣言を再度 include/ruby/internal/intern/proc.h に追加しています。コミットログは "Don't export rb_callable_receiver" ってあるけど、どういうことだろ。 RBIMPL_SYMBOL_EXPORT_END() の後に移動しているので export はしないってことかもしれないけど、コンパイラによってはリンクできるよなぁ。

[cdc4084b0a] Aaron Patterson 2020-10-06 20:17:21 UTC

拡張ライブラリ objspace の ObjectSpace.reachable_objects_from で全オブジェクトを走査している時に保持するテーブル struct rof_data::refs を st_table から VALUE に変更して Hash オブジェクトとして保持するようにしています。GC.compact でオブジェクトの移動があった時に st_table 内の参照が追随できないためとのこと。

[62abdbadf2] Nobuyoshi Nakada 2020-10-07 02:06:50 UTC

c839168b1141db53bedef771d1bc78908b6ac782 の rb_callable_receiver() の宣言の復活を revert しています。やはり不要だったみたい。