ruby-trunk-changes 2023-04-14

今日は主に Kernel#throw による大域脱出の途中で例外を発生させた時の Exception#cause に不正なデータが入る可能性がある不具合の修正や警告のカテゴリに performance というのを新設する変更などがありました。

[02a7e12b80] Peter Zhu 2023-04-12 15:40:34 UTC

例外の rescue や ensure 処理中に発行された例外に Exception#cause で元の例外の参照を持たせる機能が Kernel#throw による大域脱出の情報が誤ってセットされることがあって異常終了する可能性があったのを修正しています。 [ruby-core:113198] [Bug #19593]

[854baee2c9] Adam Hess 2023-04-13 14:07:07 UTC

YJIT のコマンドラインオプション --yjit-trace-exits と --yjit-trace-exits-sample-rate を追加して統計情報をサンプリングによって間引くことができるようにしているようです。 https://github.com/ruby/ruby/pull/7693

[ac123f167a] Jean Boussier 2023-04-13 10:11:14 UTC

警告のカテゴリに performance というのを追加しています。 そして Object Shapes で shapes のバリエーションが多すぎて st_table 管理に fallback する時の警告をこの performance wanring で警告メッセージ出力するようにしています。 [ruby-core:112933] [Feature #19538]

[847813ab13] Alan Wu 2023-04-13 15:02:09 UTC

common.mk の先頭に nmake や bsdmake も考慮する必要があるとコメントを追加しています。

[2fcd3ea6d8] Takashi Kokubun 2023-04-13 16:20:29 UTC

YJIT の Rust 実装で構造体メンバーの stack_opnd を Context から Assembler 直下に移動しています。 https://github.com/ruby/ruby/pull/7700

[acc5c74648] John Hawthorn 2023-04-13 18:37:37 UTC

YJIT の RubyVM::YJIT.exit_locations の実装でカウンタに加算する値の不具合修正。 https://github.com/ruby/ruby/pull/7702

[f7d41b9d7b] Peter Zhu 2023-04-13 20:44:01 UTC

vsnprintf.c で警告抑制のため変数の初期化の追加。

[08413f982c] Jimmy Miller 2023-04-13 23:21:02 UTC

YJIT に省略可能引数と rest 引数を持つメソッドへ配列を splat して渡す呼び方をしている場合のサポート追加。 https://github.com/ruby/ruby/pull/7698

[8286eed20b] Takashi Kokubun 2023-04-14 00:53:41 UTC

make yjit-smoke-test で cargo コマンドによるテスト実行時に指定する rust のバージョンを直書きしていたのを変数にしています。

[1a149aab77] Nobuyoshi Nakada 2023-03-21 13:46:05 UTC

Range オブジェクトの開始/終了のオブジェクトの型をチェックする処理を関数に切り出すリファクタリング

[fb17c833f5] Nobuyoshi Nakada 2023-03-21 13:53:45 UTC

1a149aab776aa6741628eb35482eff1ded197fd2 で切り出した Range の開始/終了オブジェクトのチェック関数 range_include_fallback() に引数を追加して、nil..nil のような開始も終了も指定のない Range が任意のオブジェクトを include? していると判定するようにしています。 [ruby-core:112922] [Bug #19533]

[60f22ebf86] Nobuyoshi Nakada 2023-04-13 13:50:43 UTC

fb17c833f542222afdf482924877d43aa577782d で修正した nil..nil の Range の挙動についてのテストを rubyspec に追加しています。 [ruby-core:112922] [Bug #19533]

[ebe620def6] Hiroshi SHIBATA 2023-03-30 05:07:22 UTC

標準添付ライブラリ securerandom のバージョンを SecureRandom::VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[652f273308] Hiroshi SHIBATA 2023-03-30 04:29:05 UTC

標準添付ライブラリ resolv のバージョンを Resolv::VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[3f8756484f] Hiroshi SHIBATA 2023-03-30 04:23:44 UTC

標準添付ライブラリ pp のバージョンを PP::VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[6beb755d81] Hiroshi SHIBATA 2023-03-30 04:24:34 UTC

標準添付ライブラリ prettyprint のバージョンを PrettyPrint::VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。 あれ、prettyprint ってただの pp の別名じゃなかったのか。

[1f115f141d] Jeremy Evans 2023-04-12 19:33:16 UTC

ruby をアプリケーションに組み込んで使っているようなケースで rb_provide() で feature を追加するようなことをしている時の $LOADED_FEATURES の処理が遅くなっているという問題があったようで、その対策として rb_vm_t 構造体に loaded_features_realpath_map という内部的な Hash オブジェクトを保持して rb_check_realpath() の結果をキャッシュするようにしているようです。 [ruby-core:111342] [Bug #19246]

[389ea0ae4c] "dependabot[bot]" 2023-04-14 02:59:54 UTC

GitHub Actions の workflow で利用している actions/checkout アクションのバージョンを更新しています。

[8a06f1a69f] Hiroshi SHIBATA 2023-04-14 02:06:40 UTC

拡張ライブラリ pathname のバージョンを Pathname::VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[283c190374] Hiroshi SHIBATA 2023-04-14 03:01:01 UTC

拡張ライブラリ nkf のバージョンを NKF::GEM_VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[3733ee835b] Hiroshi SHIBATA 2023-04-14 02:34:47 UTC

拡張ライブラリ readline のバージョンを Readline::GEM_VERSION という定数で定義するようにして gemspec ファイルではファイルから文字列操作で切り出して利用するようにしています。

[eab1f1ef18] Nobuyoshi Nakada 2023-04-14 04:51:59 UTC

tool/enc-unicode.rb で diff コマンドを利用する時に diffutils 3.8 というバージョンには不具合があるみたいで、それを避けるために実際にコマンド実行して動作を確認して --old-group-format/--new-group-format/--changed-group-format などのオプションを追加するようにしているようです。

[67743d5823] Sutou Kouhei 2023-04-14 06:37:49 UTC

拡張ライブラリ stringio のバージョンを 3.0.7 に更新しています。

[07428e7277] git 2023-04-14 06:39:44 UTC

67743d582317544d2c830b63d3423b04bad185a7 に追随して default gems のバージョンリストの stringio のバージョンも更新しています。

[6a5c355e4e] Jean Boussier 2023-04-13 14:48:59 UTC

ac123f167a364c3d7a43eca78d564e41f6dbb91e で警告のカテゴリに performance を追加したのに追随してデフォルトで有効な警告のビットフラグの定数を追加しています。

[fce8f9f24e] Jean Boussier 2023-03-31 08:58:56 UTC

rubyspec に ObjectSpace::WeakKeyMap についてのテストを追加しています。 [ruby-core:107190] [Feature #18498]

[6c1b604e29] Jean Boussier 2023-04-14 08:07:33 UTC

と思ったら fce8f9f24e4903784266fc9694f86ddd930d6141 の rubyspec のテスト追加は revert されています。 [ruby-core:107190] [Feature #18498]