ruby-trunk-changes 2024-02-15

今日は主に全体的に例外メッセージ内でのクオートが `foo bar' のようにバッククオート+シングルクオートが使われていたのを両方シングルクオートにする変更や、例外のバックトレースでメソッド名にクラス名も含めるようにする変更などがありました。

[d0412599e0] tomoya ishida 2024-02-14 13:46:45 UTC

irb の組み込みコマンド show_source などで定数の定義位置を探す実装の再修正? https://github.com/ruby/irb/pull/871

[c84581f1d9] Stan Lo 2024-02-14 13:47:41 UTC

irb の組み込みコマンド help の実装のカテゴリ? を変更しています。以前から deprecated になっていたドキュメント参照のコマンドとしての help をやめて irb そのもののヘルプメッセージを表示するコマンドに変更しているみたいです。

[f1136e73e8] git 2024-02-14 14:59:30 UTC

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

[65f5435540] Burdette Lamar 2024-02-14 15:47:42 UTC

rdoc 用コメント全体でクラス名のリンク抑制のため +xxx+ でマークアップするようにしています。 https://github.com/ruby/ruby/pull/9955

[ee3b4bec0e] Alan Wu 2024-02-14 16:19:04 UTC

YJIT で Kernel#send メソッドの JIT コンパイル可能かどうかのチェックを変更しています。コミットログによると dynamic synboml をメソッド名の指定に使った時にコンパイルできるようにするみたいです。 https://github.com/ruby/ruby/pull/9956

[7177731282] Takashi Kokubun 2024-02-14 17:09:14 UTC

YJIT 用のコマンドラインオプション --yjit-perf=codegen を追加してコンパイル処理自体のプロファイルを取れるようにしているようです。 https://github.com/ruby/ruby/pull/9957

[1d3b306753] Peter Zhu 2024-02-13 15:21:22 UTC

rb_class_instance_allocate_internal() と rb_class_allocate_instance() という関数の定義を gc.c から object.c に移動しています。

[fadb7d412b] Peter Zhu 2024-02-14 20:37:53 UTC

weakmap.c に #include "ruby/st.h" が 2行重複して書かれてたので1つ消しています。

[7943cb22f6] Aaron Patterson 2024-02-14 19:49:10 UTC

YJIT で関数 rb_str_getbyte() の呼び出しのコード生成時に引数が T_FIXNUM の範囲の整数だとわかっている時は例外が発生しないので leaf として不要なレジスト退避などを省略する最適化。

[c9ed59c2e2] Aaron Patterson 2024-02-14 20:02:58 UTC

7943cb22f667cc4382e8ea3f7ca674c470f601c6 の YJIT の変更のオペランドの型情報のチェックで不要な変数宣言をやめています。

[ae8db4b65a] Peter Zhu 2024-02-14 20:52:15 UTC

gc.c の rb_cc_table_free() という関数が未使用になっていたので削除しています。

[72f8883a2f] Alan Wu 2024-02-14 20:23:38 UTC

YJIT の Rust 実装で長い関数から一部の処理を関数に切り出すリファクタリング

[28709d591d] Peter Zhu 2024-02-14 21:25:05 UTC

gc.c の cc_table_free() という関数から不要な引数 alive を削除しています。

[6f9ca7f453] Alan Wu 2024-02-14 21:50:58 UTC

YJIT の Rust 実装で Context.sp_opnd() という関数の引数の型を変更して呼び元での不要なキャストを減らすようにしています。 https://github.com/ruby/ruby/pull/9968

[d24be39d69] Benoit Daloze 2024-02-14 10:41:33 UTC

spec/ruby のテスト実行中のリソースの leak check を制御する環境変数 CHECK_LEAKS に追加して CHECK_CONSTANT_LEAKS という環境変数で定数の leak check のみ独立して有効にできるようにしています。 https://github.com/ruby/ruby/pull/9548

[95ec71efc5] Benoit Daloze 2024-02-14 10:44:34 UTC

GitHub Actions の workflows で環境変数 CHECK_LEAKS の設定を消していた cf8fb9429511068c69ce70da7f7818c7441c280b を revert しています。

[06ad00adc2] yui-knk 2024-02-14 12:55:30 UTC

同梱している Lrama のバージョンを 0.6.3 に更新しています。

[beeee54880] Takashi Kokubun 2024-02-14 23:57:24 UTC

7177731282bea651385818076d4fa6b9bdf717c0 で YJIT に導入したコード生成処理のプロファイル対応で定義したマクロの定義方法と使いかたを変更しているようです。 https://github.com/ruby/ruby/pull/9971

[c57880e68d] Nobuyoshi Nakada 2024-02-14 08:30:04 UTC

parse.y の ruby_show_error_line() という関数を static 関数から export する関数にして Encoding の設定時のエラーの例外に位置情報を含めるようにしています。

[8b061eeb22] ydah 2024-02-15 06:49:01 UTC

doc/packed_data.rdoc の typo 修正。

[317c1da62b] ydah 2024-02-15 06:49:30 UTC

doc/packed_data.rdoc の typo 修正。

[303852440a] ydah 2024-02-15 06:50:43 UTC

doc/contributing/building_ruby.md の typo 修正。

[aa6d0bc0bd] ydah 2024-02-15 06:51:40 UTC

doc/string/split.rdoc の typo 修正。

[25d74b9527] Yusuke Endoh 2024-01-19 07:03:38 UTC

例外メッセージ内でさらに文字列をクオートする時に `foo bar' みたいにバッククオートとシングルクオートの組み合わせて書くという慣習があったみたいですが、これをやめて両方シングルクオートで書くようにしています。これ自分も若干気持ち悪い慣習だなと思ってたのですが、変更範囲が広くてさらにエラーメッセージをチェックしているテストの追随もあって大きな差分になっています。 [ruby-core:96742] [Feature #16495]

[8259f35adc] Yusuke Endoh 2024-02-15 04:00:32 UTC

25d74b9527cd525042ad0b612b794fa331d3a318 の例外メッセージ内のクオートの方法の変更に追随して spec/ruby でのエラーメッセージのチェックを新旧どちらでも受付けるように正規表現でチェックするようにしています。

[d9234ba87b] Yusuke Endoh 2024-02-15 04:28:56 UTC

おそらく 25d74b9527cd525042ad0b612b794fa331d3a318 の例外メッセージの変更の影響で bundled gems のテストで失敗するものがあるので GitHub Actions でエラーを無視する bundled gems の指定に minitest, test-unit, debug, bigdecimal, drb を追加しています。

[92eab382e4] Yusuke Endoh 2024-02-15 05:09:41 UTC

bundler のテストでも 25d74b9527cd525042ad0b612b794fa331d3a318 の例外メッセージ内のクオート記号の変更に追随するため正規表現でどちらでも受付けるように修正しています。

[76d322b5d2] Hiroshi SHIBATA 2024-02-15 00:49:13 UTC

spec/default.mspec で spec/ruby のテストのうち gems/bundled_gems に記述されている bundled gems のライブラリについてのテストは make test-spec で実行除外するようにしています。

[1e6fffaeeb] Hiroshi SHIBATA 2024-02-15 02:05:35 UTC

common.mk に test-bundled-gems-spec というターゲットを追加して rubyspec のうち bundled gems についてのテストを実行することができるようにしています。

[121dfb38be] Hiroshi SHIBATA 2024-02-15 05:32:08 UTC

spec/default.mspec で定数の再定義の警告抑制のため defined? でチェックしてから代入するようにしています。

[fa7529afd5] Hiroshi SHIBATA 2024-02-15 05:49:56 UTC

spec/ruby のテストのうち bigdecimal によって組み込みクラスの Integer や Rational などのメソッドが拡張される部分のテストをそれらのクラスの spec ではなくて spec/ruby/library/bigdecimal/ の配下に移動して bundled gems のテストの一部として扱われるようにしています。

[4a00fcbd92] Hiroshi SHIBATA 2024-02-15 07:39:14 UTC

spec/ruby の bundled gems の net-xxx のテストのディレクトリ構成を spec/ruby/library/net/xxx/ の配下にしていたのを spec/ruby/library/net-xxx/ の配下になるように変更しています。

[6958e88f29] Hiroshi SHIBATA 2024-02-15 07:59:46 UTC

common.mk の make test-bundled-gems-spec ターゲットの依存関係に $(PREPARE_BUNDLED_GEMS) を追加して bundled gems のダウンロードとインストールを行うようにしています。

[61819c87b2] Yusuke Endoh 2024-01-18 10:35:49 UTC

Thread::Backtrace::Location の実装で構造体内にメソッド名の ID とメソッドの実装のタイプが ISeq (ruby 実装)か C関数実装かのタイプを持っておいてあとでタイプに応じて実装を変更してたのを rb_callable_method_entry_t を直接メンバーとして持つように変更しています。 [Feature #19117] のバックトレースの強化のための準備としての変更みたいです。

[9d1b000bd1] Yusuke Endoh 2024-02-15 05:23:01 UTC

ruby の例外のバックトレースでメソッドのメソッド名だけでなくどのクラスで定義されたメソッドかというのまで表示されるようにしています。なるほどこれは便利そう。 [ruby-core:110683] [Feature #19117]

[8f2c231642] Yusuke Endoh 2024-02-15 07:00:51 UTC

9d1b000bd1bb747bcc49e2d7677fb7c2b31c5a94 の変更でバックトレースの表示が変化してしまうので rubyspec でそれをチェックしているところを正規表現で新旧どちらも受付けるように修正しています。 [ruby-core:110683] [Feature #19117]

[8f926cb8d8] Benoit Daloze 2024-02-15 10:34:41 UTC

common.mk の test-spec-precheck の依存関係から prepare-gems を削除しています。 76d322b5d2566162cdcb926a80be8f596a50f107 で make test-spec で bundled gems のテストは実行しなくなったため。

[8ba053d3fb] Hiroshi SHIBATA 2024-02-15 10:01:44 UTC

spec/ruby の bundled gems になった標準添付ライブラリのテストを ruby の version による guard で実行除外していたのをやめています。これも 76d322b5d2566162cdcb926a80be8f596a50f107 で実行対象から外したためでしょう。

[1e426bd5e5] Hiroshi SHIBATA 2024-02-15 10:26:25 UTC

make bundled-gems-spec の実行対象から net-ftp は外しています。

[4aef875205] Hiroshi SHIBATA 2024-02-15 10:26:58 UTC

spec/default.mspec で定数の再定義の警告抑制のため dsefined? でチェックしてから代入するようにしています。

[18da80e100] Hiroshi SHIBATA 2024-02-15 10:36:07 UTC

rubyspec の net-ftp のテストで新しい ruby で失敗するものがあったので ruby_version_is で 3.0 以前でのみ実行するようにしています。

[0da12fa34e] Hiroshi SHIBATA 2024-02-15 11:07:52 UTC

common.mk の make test-bundled-gems-prepare でインストールする gem のリストに singleton を追加しています。 prime.gem が依存しているとのこと。

[a7718c914a] Yusuke Endoh 2024-02-15 11:04:23 UTC

9d1b000bd1bb747bcc49e2d7677fb7c2b31c5a94 のバックトレースのメソッド名にクラス名も表示する変更で無名クラスのメソッドの場合に inspect 結果が表示されていたのでその時はメソッド名のみの従来と同じ表示にするように変更しています。