今日は主に正規表現のマッチ速度の最適化や Random の乱数生成器の拡張ライブラリからの利用のためのインターフェースのバージョン導入などがありました。
[230267d1a8] Nobuyoshi Nakada 2022-11-09 11:15:48 UTC
parse.y に %require を追加して bison の必須バージョンの指定を 3.0 にしています。 f7db1affd10767d729866e95c02ffb26266829ab でコミットログには Bison 3.0 以降を要求するようになったと書いてあったけど明示的にチェックや制限しているところがなかったのでこれで古い Bison の時にバージョンの更新が必要なのがわかるようなエラーになるという感じですねきっと。
[881bf9a0b8] TSUYUSATO Kitsune 2022-10-03 13:21:56 UTC
ここから以下のチケットで提案されている正規表現のマッチにかかる時間が非常に長くなるケースに起因した脆弱性対策の一貫としてキャッシュを利用した処理時間の短縮を行う最適化の実装とそれに関連するテストなどの導入のコミットが続きます。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[f07dea16e3] TSUYUSATO Kitsune 2022-10-03 16:02:51 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[8c9e4d37a3] TSUYUSATO Kitsune 2022-10-04 02:20:49 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[d84edce689] TSUYUSATO Kitsune 2022-10-04 03:28:55 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[aefb7e5fa5] TSUYUSATO Kitsune 2022-10-04 05:36:09 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[cbabba9c82] TSUYUSATO Kitsune 2022-10-06 08:11:33 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[70f8e9efda] TSUYUSATO Kitsune 2022-10-12 07:51:00 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[1134fa40ee] TSUYUSATO Kitsune 2022-10-12 08:51:44 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[3c79731981] TSUYUSATO Kitsune 2022-10-19 07:28:30 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[ea3d9893bf] TSUYUSATO Kitsune 2022-10-19 08:28:26 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[f25bb291b4] TSUYUSATO Kitsune 2022-10-20 07:52:23 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[37613fea16] TSUYUSATO Kitsune 2022-10-27 13:39:56 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[ff2998a86c] TSUYUSATO Kitsune 2022-11-06 12:01:10 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[80d145fa52] TSUYUSATO Kitsune 2022-11-07 00:03:12 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[71c76d1bfa] TSUYUSATO Kitsune 2022-11-07 02:52:38 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[0a14825f73] TSUYUSATO Kitsune 2022-11-08 02:58:47 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[22294731a8] TSUYUSATO Kitsune 2022-11-08 06:05:52 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[a1c1fc558a] TSUYUSATO Kitsune 2022-11-08 06:13:27 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104] 1e6673d6bbd2adbf555d82c7c0906ceb148ed6ee のリファクタリングを revert しています。
[ff5dba8319] Yusuke Endoh 2022-11-08 09:09:57 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[537286d0bb] Yusuke Endoh 2022-11-08 09:13:00 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装でのコンパイラの警告抑制。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[14845ab4ff] Yusuke Endoh 2022-11-08 14:36:14 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[d868f4ca31] Yusuke Endoh 2022-11-08 15:37:46 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[36ff0521c1] TSUYUSATO Kitsune 2022-11-09 03:19:52 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[1dc4128e92] TSUYUSATO Kitsune 2022-11-09 07:22:42 UTC
881bf9a0b8b52c05a5917b95d988ae4b9a391a47 からの一連の正規表現マッチのキャッシュによる最適化の実装続き。 https://github.com/ruby/ruby/pull/6486 [ruby-core:110621] [Feature #19104]
[0e1e1b1980] Burdette Lamar 2022-11-09 16:15:39 UTC
doc/io_streams.rdoc に分離してた IO のドキュメントを削除して IO クラスの rdoc 用コメント内のセクションとして展開しているようです。 https://github.com/ruby/ruby/pull/6669
[9ab978b718] "Eileen M. Uchitelle" 2022-11-09 22:09:16 UTC
YJIT 用のオプション --yjit-stats を指定した時に自動的に --yjit-exit-locations の指定した時のファイルへのダンプも有効になるようにしています。 https://github.com/ruby/ruby/pull/6703
[5a4d9f91c4] yui-knk 2022-11-09 23:06:18 UTC
doc/contributing/building_ruby.md の ruby のビルドに必要な環境の bison の必要バージョンを更新しています。 [ruby-core:110383] [Feature #19068]
[b7504af8fc] Nobuyoshi Nakada 2022-11-09 13:04:28 UTC
bison の必要バージョンの更新に伴い古い bison をサポートするために parse.y を置換する tool/pure_parser.rb を削除しています。そういえばこんなのあったなぁ。 a064e46762ec0bfd40e6a04242d9e62fdd21e1f0 での導入ですね。
[0ae5de1a5d] Nobuyoshi Nakada 2022-11-10 00:11:20 UTC
insns.def と variable.c のインデントと C のスタイルの修正。
[6eaed20e14] Nobuyoshi Nakada 2022-11-08 00:06:21 UTC
Random の乱数生成器を拡張ライブラリから利用するためのインターフェースを規定する構造体 rb_random_interface_t にバージョンを指定するメンバーを追加してバージョンが不一致の時に初期化時に TypeError を発生させるようにしています。
[b7e8876704] Nobuyoshi Nakada 2022-11-09 10:36:37 UTC
Random の乱数生成器を拡張ライブラリから 利用するための rb_random_interface_t に init_int32 という関数ポインタのメンバーを追加しています。よく理解していませんが同じ seed からの乱数生成が ruby のバージョンによって変化してしまっていたという問題への対応でしょうか。 [ruby-core:110584] [Bug #19100] 0ae5de1a5ddcca407dd2ba30ca5d5f3d7c3ea4bc で導入した rb_random_interface_t のバージョンチェックはこの非互換の検出のためみたいですね。とはいえどのみち非互換は入るわけですがメモリレイアウト(ABI)の非互換を踏む前にバージョンチェックするから異常終了みたいなことにはならないということでしょうか。