ruby-trunk-changes 2022-11-26

今日は主に MJIT の修正/デフォルトパラメータの調節や標準添付ライブラリ erb のバージョン更新、bundled gems の rbs のバージョン更新などがありました。

[790cf4b6d0] Alan Wu 2022-11-17 22:33:18 UTC

拡張ライブラリを static link していると require するまでは初期化関数(Init_xxx()) を呼び出さないよう遅延するため中途半端な状態になっていて defined? や Module#autoload? で判定しようとすると一貫性のない結果を返すので rubygems で openssl の存在チェックが誤って失敗してしまうことがあるとのことで、拡張ライブラリの静的リンク時に rb_vm_t に初期化状態を管理するためのテーブルを追加して通常の初期化処理と同じフローを利用するようにしています。 [ruby-core:110670] [Bug #19115]

[1d64a5a7c0] Alan Wu 2022-11-25 18:13:09 UTC

YJIT のテストを実行する時に make test-all に RUN_OPTS という環境変数の指定をしなくても良いようにしている、というか元から大部分のテストは不要だったので一部のテストに YJIT が無効な時にスキップする(テストメソッド定義自体をやめる)チェックを追加しています。 [ruby-core:110881] [Misc #19149]

[4ea9d7d7c2] Takashi Kokubun 2022-11-25 23:16:13 UTC

MJIT の setinstancevariable 命令に対応する C のコード生成部分の Object Shapes に関する最適化パスが railsbench で異常終了するとのことでひとまず削除しているようです。

[89a98ee1e1] Takashi Kokubun 2022-11-25 23:23:42 UTC

4ea9d7d7c223ff92365c4a013fc1bd073d67a3a5 の MJIT の生成する C コードの変更で不要になった ruby の変数を削除しています。

[3c16f33ffd] Takashi Kokubun 2022-11-25 23:27:09 UTC

4ea9d7d7c223ff92365c4a013fc1bd073d67a3a5 からの流れだと思いますが MJIT の C コード生成のための ruby 実装の shape_id の取得部分をメソッドに切り出すリファクタリング

[ac4d00df82] Takashi Kokubun 2022-11-25 23:49:52 UTC

MJIT 用のコマンドラインオプション --mjit-max-cache のデフォルト値の定数 DEFAULT_MAX_CACHE_SIZE を 10000 から 100 に減らしています。

[6bd86bb2af] Nobuyoshi Nakada 2022-11-26 03:58:57 UTC

GitHub Actions の bundled gems の更新をチェックする workflow .github/workflows/bundled_gems.yml で NEWS 内のバージョンリストの記法の変更に追随する正規表現の変更。

[19fdc9cac2] Nobuyoshi Nakada 2022-11-26 03:52:21 UTC

NEWS のインデントの修正。

[ba26dd7ba5] git 2022-11-26 04:13:23 UTC

NEWS の default gems のバージョンリストが重複して追加されています。 6bd86bb2afdce52dc6563d444cf488307767b9d3 の変更の影響ですかね。

[15be9ecbcc] Nobuyoshi Nakada 2022-11-26 04:29:17 UTC

ということで d0bb24c497ceae01cc7b7698365982 で誤って追加された NEWS の default gems のバージョンリストを削除しています。

[574896a0ce] Takashi Kokubun 2022-11-26 05:32:20 UTC

標準添付ライブラリ erb で拡張ライブラリによる html_escape メソッドの定義を ERB::Util から ERB::Escape というモジュールに定義するように変更して ERB::Util には lib/erb/util.rb でこのモジュールを include するように変更しています。

[eb3a6ae524] git 2022-11-26 05:33:02 UTC

再度 NEWS の default gems のバージョンリストが重複して追加されています。

[91c7e8afc4] Takashi Kokubun 2022-11-26 05:36:16 UTC

ということで再度 eb3a6ae524b029e96738f21931d95dfad1caed2f で追加された NEWS の default gems バージョンリストを削除しています。

[7cf94a611f] Takashi Kokubun 2022-11-26 05:36:40 UTC

GitHub Actions の workflow .github/workflows/check_misc.yml のほうでも 6bd86bb2afdce52dc6563d444cf488307767b9d3 と同様の NEWS の整形の変更に追随する変更をしています。なるほど 6bd86bb2afdce52dc6563d444cf488307767b9d3 の変更のせいじゃなくて d0bb24c497ceae01cc7b7698365982303e3ea24d における NEWS の空行追加に対する対応が漏れていたのが原因だったみたいですね。

[95647378ff] Takashi Kokubun 2022-11-26 05:41:36 UTC

tool/sync_default_gems.rb で upstream からのマージの時にコミットログを変換する時の issue/pull request の番号の参照を変換する時にサポートする記法に close #nnn のような書きかたも追加しています。

[29bf5495a9] Takashi Kokubun 2022-11-26 05:45:27 UTC

tool/sync_default_gems.rb のコミットログ変換のメソッドで別の内容物に変数を使いまわしているのを別の変数名に変更しています。この変数は Proc オブジェクトのブロックからも参照されているのでただのリファクタリングでなく不具合修正のようです。

[534bac04e7] Takashi Kokubun 2022-11-26 06:04:41 UTC

標準添付ライブラリ erb のバージョンを 4.0.0 に更新しています。

[51994955cd] git 2022-11-26 06:06:50 UTC

NEWS の default gems バージョンリストの erb のバージョンも更新しています。

[3853385377] Soutaro Matsumoto 2022-11-26 06:44:56 UTC

gems/bundled_gems の rbs のバージョンを更新し commit hash による指定を追加しています。 https://github.com/ruby/ruby/pull/6813

[26794b95cf] git 2022-11-26 06:45:33 UTC

3853385377525258881d35850a4247 に追随して NEWS の bundled gems バージョンリストの rbs のバージョンも更新しています。