ruby-trunk-changes 2021-06-10

今日は MJIT の複数 Ractor 対応の時の JIT 対象 ISeq の重複を防ぐ変更などがありました。

[f7741cda32] Jun Aruga 2021-06-07 15:36:59 UTC

Travis-CI を走らせるブランチが master と安定版ブランチのみにしていたのを、fork された(ruby/ruby 以外の)リポジトリの場合はどのブランチでも走るようにしています。Travis-CI って fork した repo でも動くんだっけ。fork 先のユーザーが設定してたら動くって感じかな。 [ruby-core:104164] [Bug #17936]

[fa340dd9f1] git 2021-06-09 15:17:15 UTC

version.h の日付更新

[8a46b480a7] Peter Zhu 2021-06-09 17:31:44 UTC

gc.c の gc_sweep_start_heap() の中の Ractor 毎のキャッシュクリアする処理を呼び元の gc_sweep_start() のほうに移動しています。他に呼び元はないので挙動に変更はないリファクタリングだと思います。

[791d7d4947] Nobuyoshi Nakada 2021-06-10 06:15:35 UTC

コマンドラインオプション -e で渡されたスニペットの文字列を freeze しておくようにしています。

[c5e8a49bde] Takashi Kokubun 2021-06-10 07:32:15 UTC

MJIT で JIT コンパイル対象の ISeq を unit_queue に登録する時に mjit_recompile() 経由以外の時は複数 Ractor からの重複した挿入を避けるようにしています。

[474f79958b] Takashi Kokubun 2021-06-10 07:40:58 UTC

c5e8a49bdeadd8e424274c17c0d2a9ffed64417b の変更の続きで判定のために struct rb_iseq_constant_body::jit_func を参照する時に明示的なキャストを追加しています。 Windows での警告避けのためみたいです。

[d281fc525d] Takashi Kokubun 2021-06-10 07:53:26 UTC

common.mk の依存関係の更新をしています。