ruby-trunk-changes 2020-06-23

今日は拡張ライブラリ psych に同梱されている libyaml の更新や GC.compact で移動したオブジェクトの跡地に置く T_MOVED 型オブジェクトの内部表現のリファクタリング、MJIT の一部の最適化命令のコードサイズ削減による最適化などがありました。

[ec9a9aaa51] Nobuyoshi Nakada 2020-06-22 15:14:39 UTC

template/exts.mk.tmpl で exts.mk に既に存在しない(削除された)拡張ライブラリをみつけたらコマンドラインオプションへのマクロ追加の処理をそこで止めるようにしています。これ next じゃなくて break でいいのかな? (よくわかってない)

[079ed74d69] git 2020-06-22 15:31:05 UTC

version.h の日付更新

[574a4f0217] Takashi Kokubun 2020-06-22 17:45:08 UTC

eed4aaa0bf8aa3109936c4276a71c0cdab4d54d67658a0f8fe9586b66f2a8f1efb652d2bcffad358 で MJIT 有効化時にタイムアウトを伸ばしてた標準添付ライブラリ net/http のテストですが10倍にしてもだめだったみたいでひとまず skip するようにしています。

[e2d94f61c8] Aaron Patterson 2020-06-22 22:22:48 UTC

GC.compact によるオブジェクトの移動で移動した slot を埋めておく T_MOVED 型オブジェクトの実際の構造体 struct RMoved は single linked list として管理できるようになってましたが、任意のノードをリストから外す操作を容易にするため struct list_node および stuct list_head を使って doubly linked list とするようにしています。両者を共用体として struct RMoved に埋め込んでますが、list head を struct RMoved じゃなくて直接 struct list_head で持てばいいんじゃないのかな。なおこの変更はこのリスト操作に read barrier を入れたくてその時にノードの削除がしたいからとのこと。

[61374839e4] Nobuyoshi Nakada 2020-06-22 22:59:07 UTC

file.c の fpath_check() というマクロ定義がもう不要になってたので削除。

[c3ba2db48b] Nobuyoshi Nakada 2020-06-23 00:32:59 UTC

file.c の fpath_check_0() の第2引数 execpath は常にTRUE になってる(唯一 FALSE を渡す可能性があった fpath_check() マクロも 61374839e4132aec92e00eb8d2fdb0619a0307cf で削除された)ので引数を削除し判定条件からも消しています。

[9ce2066209] Nobuyoshi Nakada 2020-06-23 00:34:18 UTC

コマンドラインオプションの --jit 関係のものを処理する setup_mjit_options() のリファクタリングと --jit-vervose のオプションに引数がなかった時に空文字列を atoi() に渡してたのでデフォルト値を 1 にする変更。

[e9adc2f420] Nobuyoshi Nakada 2020-06-23 05:51:28 UTC

C++ の拡張ライブラリのビルドのテストのための拡張ライブラリのサンプルの依存関係ファイル ext/-test-/cxxanyargs/depend でビルド失敗するファイルをビルドした時のエラーメッセージ比較のところで Encoding がらみのエラーを回避するため String#b で ASCII-8BIT に変換してから正規表現での検索するようにしています。

[666c077691] Jean Boussier 2020-06-08 15:52:41 UTC

拡張ライブラリ psych で YAML のタグ(anchor というらしい)参照の展開で symbolize_names: true オプションが指定されてた時の不具合修正。

[70a4599869] Hiroshi SHIBATA 2020-06-23 04:40:15 UTC

拡張ライブラリ psych に同梱している libyaml のバージョンを 0.2.5 に更新しています。

[7cdfc2b5fc] Hiroshi SHIBATA 2020-06-23 04:48:01 UTC

ext/psych/yaml/config.h に記述されてる同梱 libmayml のバージョン番号を 0.2.5 に更新。

[078e94106d] Hiroshi SHIBATA 2020-06-23 04:55:17 UTC

a3cc9b3c8e8e55660e434015654dfc4e11e3a3ab で拡張ライブラリ psych の gemspec ファイルでバージョンを得るために無名モジュールを導入したのに spec.requirements への格納が追随していなかったので修正しています。

[6aa3aaac05] Nobuyoshi Nakada 2020-06-23 06:52:37 UTC

misc/lldb_cruby.py の lldb_inspect コマンドで T_BIGNUM 型のオブジェクトの表示に正負の符号についての情報表示を追加しています。

[37a2e48d76] Takashi Kokubun 2020-06-23 06:30:37 UTC

MJIT で opt_nil や opt_not などの最適化命令は callcache にキャッシュが乗ってたら fallback 用の send 命令の生成を抑制するようにしているようです。よけいなコード生成を抑えてサイズを小さくするのが目的かな。昨日の 78352fb52ed2c15fe0d74c02ea29b7e5a28b18c0 での has_valid_method_type() の引数追加を revert して別途 has_cache_for_send() という関数を追加して opt_send_without_block 命令の処理を入れる箇所の条件に追加しています。