ruby-trunk-changes 2022-10-25

今日は主に標準添付ライブラリ irb と tmpdir のリファクタリング/テスト修正や正規表現エンジンの潜在的バッファオーバーランの修正などがありました。

[d377cc4530] st0012 2022-10-18 10:24:04 UTC

irb のテストに reline を利用した時のテストを追加しています。

[b7622d792d] st0012 2022-10-18 09:08:24 UTC

irb のタブ補完による rdoc を利用したドキュメントの表示機能のための require "rdoc" の位置を初期化時に移動して繰り返し require されないようにしています。

[5a86155249] st0012 2022-10-21 20:36:13 UTC

irb のテストに rdoc が使えない環境の場合のテストを追加しています。

[bcb72f503c] Burdette Lamar 2022-10-24 13:56:13 UTC

doc/contributing/documentation_guide.md にメソッド名の記法としてインスタンスメソッドとクラスメソッドの記法について追記しています。 https://github.com/ruby/ruby/pull/6620

[21fa0135a4] Nobuyoshi Nakada 2022-10-23 09:33:03 UTC

Array の shuffle と sample のテストのテストメソッドが長かったのをいくつかのメソッドに分割しています。

[120b747b7d] Takashi Kokubun 2022-10-24 16:20:44 UTC

YJIT の初期化処理を後のほうにずらしているようです。 pull request の説明をみるに prelude.rb の内容も JIT するのは不要な部分が多いので prelude の読み込み後に YJIT を有効化しようとしているようです。 https://github.com/ruby/ruby/pull/6597

[abeef41c95] Stan Lo 2022-10-24 16:32:58 UTC

irb のテストで標準入出力などの encoding を変更することがあるのでバックアップしておいて teardown で復旧するようにしています。

[b652dbf63b] John Hawthorn 2022-10-21 21:31:33 UTC

おそらく Object Shapes の導入により struct rb_iv_index_tbl_entry という構造体が不要になったので定義を削除して、MJIT 用の binding からも削除しています。

[fcb1a49812] "dependabot[bot]" 2022-10-24 15:41:26 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys というパッケージのバージョンを更新しています。

[ee3da3784e] Nick Hengeveld 2022-10-24 22:28:57 UTC

192bc725290ca4b271bff2bae6123d84c25f7173 で追加した RB_NIL_OR_UNDEF_P() という inlilne 関数の定義に使っている RBIMPL_ATTR_CONSTEXPR() に渡しているバージョンを CXX11 から CXX14 に更新しています。

[902e459b73] Yusuke Endoh 2022-10-25 04:20:25 UTC

regparse.c の fetch_token() でバッファオーバーランによる異常終了の可能性があった不具合を修正しています。 OSS-Fuz というツールで発見された不具合みたいです。

[d76284dfb7] Nobuyoshi Nakada 2022-10-25 04:50:31 UTC

tool/sync_default_gems.rb で default gems の upstream からの同期時に conflict を無視するファイルの判定時に新規追加のファイルを含めるようにしているようです。

[71a5b1d457] Nobuyoshi Nakada 2022-10-25 04:39:56 UTC

標準添付ライブラリ tmpdir のコメントの追加と Tmpdir::Tmpname で特異メソッドを追加するのを Tmpdir::Tempname::RANDOM に格納している Random のインスタンスから Random クラス自体に変更しているのですが、たぶんこれは間違いで RANDOM の特異メソッドを定義しようとしているんだと思います(ただのリファクタリングのつもりが書き間違えてる)。

[cade3aba61] Nobuyoshi Nakada 2022-10-25 05:02:44 UTC

やっぱり 71a5b1d4573ea16e4691e0847cea7d309116e224 は間違いで Random の特異メソッドを定義してしまっていたのを修正しています。

[ba15fb709b] "dependabot[bot]" 2022-10-24 23:35:02 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys というパッケージのバージョンを更新しています。

[287c5da4aa] Peter Vandenberk 2022-09-20 07:53:39 UTC

標準添付ライブラリ tmpdir の Dir.tmpdir の実装で Enumerable#find を利用するリファクタリング

[d55f72bcdb] Nobuyoshi Nakada 2022-10-25 06:41:45 UTC

標準添付ライブラリ tmpdir の spec.required_ruby_version を 2.7.0 以降に更新しています。

[883d9c305f] Nobuyoshi Nakada 2022-10-25 07:07:09 UTC

287c5da4aae6a3c8ae16cde590a9eb6d4dd655bf の標準添付ライブラリ tmpdir のリファクタリングの再修正。みつからなかった時の例外発生を if 文じゃなく or での連結にしてローカル変数を消しているのですが、ちょっとこれは読みにくいような。

[114e71d062] Nobuyoshi Nakada 2022-10-25 07:39:12 UTC

287c5da4aae6a3c8ae16cde590a9eb6d4dd655bf および 883d9c305f82b23fbe0ed28e9d74461cc5e13b97 の標準添付ライブラリ tmpdir のリファクタリングの続きでブロックパラメーターの第2引数に第1引数を利用したデフォルト値を書いてたのをやめてブロック内で設定するようにして、指定の環境変数の値が空だったら無視するようにしています。

[1d2d25dcad] Yusuke Endoh 2022-10-25 06:45:40 UTC

regenc.c や regparse.c で潜在的なバッファーオーバーランを防ぐために ONIGENC_MBC_ENC_LEN() の実装を変更しています。