ruby-trunk-changes 2023-03-13

今日は主に正規表現のマッチのメモ化による最適化がうまく効かないケースの修正などがありました。

[7ce4b716bd] Nobuyoshi Nakada 2023-03-12 09:50:39 UTC

tool/lib/core_assertions.rb に assert_linear_performance という assertion メソッドを追加して、処理時間がデータ量に対して線形で増えていることを確認することができるようにしています。またこのメソッドを利用してある種の正規表現マッチが正規表現/文字列の長さに対して線形の時間で終わってることを確認するテストを追加しています。

[bbd9221e46] Takashi Kokubun 2023-03-12 20:31:00 UTC

RubyVM::RJIT::ExitCompiler の initialize で freeze するようにしています。本当は RubyVM::RJIT::InsnCompiler を freeze したかったけどあきらめてこちらだけ freeze するということみたいです。

[9cd5441d28] Takashi Kokubun 2023-03-12 20:55:39 UTC

RJIT で JIT 化をあきらめた時の理由の統計情報を収集してダンプできるようにしています。

[45fdc18053] "dependabot[bot]" 2023-03-13 03:01:15 UTC

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

[07d3af22d0] Takashi Kokubun 2023-03-13 03:41:07 UTC

RJIT の実装で RARRAY_LEN() の結果を明示的に int にキャストして警告抑制するようにしています。

[e28f83703a] Takashi Kokubun 2023-03-13 03:49:44 UTC

common.mk の依存関係の再生成。

[a23f64221e] Takashi Kokubun 2023-03-13 04:14:35 UTC

RJIT の実装で block (この block は ruby のブロックじゃなくて JIT コンパイルした時のコードブロックのことかなぁ)の管理方法を変更しているようです。

[3938efa70f] Takashi Kokubun 2023-03-13 04:30:41 UTC

RJIT の実装でブロック引数をそのまま委譲した時の扱いに不具合があったのを修正しているようです。

[330086d3f6] Takashi Kokubun 2023-03-13 05:07:02 UTC

RJIT で最近追加された VM 命令 definedivar の対応を追加しています。

[d27b594841] Takashi Kokubun 2023-03-13 05:09:04 UTC

330086d3f6d0f05ef6ccdf1e512c19e94e7104f3VM 命令の名前を typo していたのを修正しています。

[da9c84f859] Takashi Kokubun 2023-03-13 05:15:58 UTC

RJIT で JIT 化をあきらめる理由のカウンタの名称を改名しています。

[ed269c81aa] Takashi Kokubun 2023-03-13 05:27:43 UTC

RJIT の JIT 化をあきらめる理由のカウンタにブロック呼び出しに関するものを追加しています。今のところ対応していないけどカウンタのために invokeblock 命令に対応するメソッド実装を追加しているようです(常に CantCompile を返しているのでたぶん対応していない)。

[e22c4e8877] TSUYUSATO Kitsune 2023-03-13 06:46:41 UTC

正規表現のマッチでメモ化による高速化が有効にできるはずなのにできてないパターンがあったみたいで修正しています。 https://github.com/ruby/ruby/pull/7454 [ruby-core:112594] [Bug #19467]

[e10218862a] Takashi Kokubun 2023-03-13 06:50:47 UTC

common.mk に make btest-bruby というターゲットを追加して BASERUBY を利用して btest を実施するようにしています。 miniruby で RJIT が動かないため RJIT を有効にして make btest ができないため RJIT を使って btest を実施するためのターゲットみたいです。

[1e73bdbfc4] git 2023-03-13 07:02:11 UTC

gems/bundled_gems および NEWS の bundled gems バージョンリストの rbs のバージョンを 3.0.4 に更新しています。

[8c6b349805] Hiroshi SHIBATA 2023-03-13 02:40:33 UTC

rubygems の Gem.datadir メソッドは不要になっていたようで削除しています。