ruby-trunk-changes 2020-02-25

今日はメソッドキャッシュの実装変更の MJIT 対応のための追加修正などがありました。

[fa1ec60424] Masataka Pocke Kuwabara 2020-02-24 07:37:33 UTC

拡張ライブラリ pathname の Pathname#fnmatch? の rdoc 用コメントの call-seq の戻り値が string と書かれてたのを修正しています。

[82d27604ad] git 2020-02-25 03:53:56 UTC

version.h の日付更新

[7ec2359374] Koichi Sasada 2020-02-25 02:03:17 UTC

b9007b6c548f91e88fd3f2ffa23de740431fa969 のメソッドキャッシュまわりの変更で MJIT にメソッドキャッシュ情報を受け渡すために mjit_worker で実行される mjit_copy_job_handler() で ALLOC_N() を使ってしまっていて GC が行なわれる可能性があったので、その処理を mjit_copy_cache_from_main_thread() のほうに吊り出して malloc(3) を直接呼ぶように変更しています。

[670b7be6c5] Koichi Sasada 2020-02-25 04:12:53 UTC

Hash#[] で文字列キーの参照時に余計な文字列オブジェクトが生成されないことを確認するのに GC.stat を使ってたのをより直接的に ObjectSpace.count_objects を使って T_STRING 型オブジェクトの数でチェックするようにしています。

[84d1a99a3f] Koichi Sasada 2020-02-25 04:37:52 UTC

b9007b6c548f91e88fd3f2ffa23de740431fa969 および 7ec23593746c8ccabd6c005cc34dde77d564c6c9 の再修正で jit_unit->cc_entries のメモリ確保時に ZALLOC_N() や calloc(3) を使うようにしてゼロクリアするようにしています。また NULL について rb_gc_mark() を呼ばないようにするチェック追加など。

[0febd07c69] 卜部昌平 2020-02-25 04:37:32 UTC

C++ 用のヘッダファイルでビルドするテスト用の拡張ライブラリの extconf.rb で C++コンパイルしてみるところ try_comple のかわりに try_link を使うようにしています。libstdc++ がない時にテストを除外するためとのこと。

[a504535dd4] Nobuyoshi Nakada 2020-02-25 08:47:17 UTC

標準添付ライブラリ ostruct のテストでただの assert を assert_respond_to を使うようにするリファクタリング

[55bf0ef1aa] Nobuyoshi Nakada 2020-02-23 08:59:38 UTC

make extract-gems で bundled gems を展開してパッケージを作る時に gems/bundled_gems ファイルの内容をみて展開する gem を決めるようにしています。コミットログによると make の複数ターゲットで定数の重複した宣言の警告を抑制するためとか。