今日は主に正規表現の x オプションの挙動の不具合修正や parse.y でのパターンマッチのエラーチェックの不具合修正などがありました。
[b4e5cb2616] Hiroya Fujinami 2026-11-02 11:48:45 UTC
正規表現の x オプションつきのものをマッチングする文字列の Encoding の違いにより再コンパイルする時にオプションを渡しておらずコメントの除去処理が Onigmo で行なわれるように変化していて、さらに Onigmo によるコメント除去時に不具合があってコメントが完全に除去されないケースがあったので、両方の不具合を修正しています。 [ruby-core:127292] [Bug #22491]
[55a3ad40bc] Yusuke Endoh 2026-11-02 05:39:11 UTC
doc/_regexp.rdoc の正規表現の timeout 指定について、Regexp.new に渡す正規表現のソースではなくマッチさせる文字列が信頼できない時に有効という表現に修正しています。
[f426fa44e3] Jean Boussier 2026-11-02 12:31:30 UTC
Struct.new でクラス生成する時に名前を指定した場合に定数を定義するのをクラスの初期化が終わった後に遅延させて、未初期化のクラスが見えてしまうのを避けています。 ただ rb_class_inherited() の class.c での定義は第1引数が super なのですがこの変更後は第2引数に super 側を渡していて逆になってそうですね。
[9e651a3b74] Jean Boussier 2026-11-02 13:01:48 UTC
f426fa44e32e461f0610bfec0b15f95475c181c6 で無名の Struct の子クラスを生成する anonymous_struct() から rb_class_inherited() の呼び出しを削除したので Data.define が inherited フックを呼ばなくなっていたので rb_data_define() 内に rb_class_inherited() の呼び出しを追加しています。が、ここでも第2引数に super を渡していますね。
[e83592ba14] Étienne Barrié 2026-11-02 14:00:55 UTC
拡張ライブラリ json のテストで Dir#[] に渡すパスの File.join に余分な引数(__FILE__)が含まれていてファイルがマッチせずテストが実行されていなかったのを修正しています。
[269c74ce68] Kevin Newton 2026-11-02 15:30:42 UTC
prism の Unicode における alpha, alnum などの文字種の判定のテーブルの持ちかたを変更して効率化しているようです。
[2ddb42b3a5] Kevin Newton 2026-11-02 17:02:41 UTC
prism に a126d73d0f71ace8558816c665a96c119c9d0066 で追加していた pm_options_stack_budget_set() でのマシンスタックの上限設定に達した時のエラーメッセージを変更しています。
[15314737dd] XrXr 2026-10-30 17:19:31 UTC
ZJIT の Rust 実装のリファクタリング。
[36ba2601b1] XrXr 2026-10-30 17:31:19 UTC
ZJIT の Rust 実装の不要なキャスト削除などのコード整理リファクタリング。
[54e63a7744] Kevin Newton 2026-11-02 18:02:34 UTC
prism を parser として呼び出す際にマシンスタックの残りサイズを測定して pm_options_stack_budget_set() で設定するようにして、マシンスタック使い切った時に異常終了せず例外発生させるようにしています。
[b51db981f6] Alan Wu 2026-11-02 20:50:33 UTC
ZJIT の Stack maps の実装方法を大きく変更してメモリ使用量を削減するようにしているみたいです。
[13c3f56bb8] Thomas Klemm 2026-11-03 01:08:01 UTC
ZJIT でブロック引数を受け取るように定義されたメソッド(def m(&blk) ...) に対して & で Proc オブジェクトや Symbol をブロック渡ししていた呼び出しを最適化できるようにしているようです。
[2bc6f9a60e] Takashi Kokubun 2026-11-03 01:38:18 UTC
組み込みメソッド Array#each_index の定義を C 実装から ruby 実装に変更して JIT 有効化時にインライン化できるようにしています。 https://github.com/ruby/ruby/pull/19627
[599457650d] "dependabot[bot]" 2026-11-03 02:12:20 UTC
GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。
[64d821e685] Nobuyoshi Nakada 2026-11-03 02:46:08 UTC
拡張ライブラリ json のテストで JSON.load の結果と比較するためのデータファイルを読み込む時に明示的に UTF-8 を指定するようにしています。 default external が UTF-8 ではない環境のため。
[90dbced795] Nobuyoshi Nakada 2026-11-03 00:05:28 UTC
Enumerator::Lazy#each_with_index にブロックを渡して呼び出した時に super を呼んで Enumerable#each_with_index としてその場で評価するようにしています。が、これって #map みたいに Lazy に動かなくていいのかな? #each は eager に動くのでそれに合わせるということか……。 [ruby-core:121076] [Bug #21142] [ruby-core:127301] [Bug #22496]
[d4b4ad206f] Burdette Lamar 2026-11-03 07:19:49 UTC
MatchData#end のドキュメントを doc/matchdata/end.rdoc から doc/matchdata/end.md に移動しています。
[943faddb7b] Nobuyoshi Nakada 2026-10-25 14:46:09 UTC
標準添付ライブラリ cgi の拡張ライブラリ cgi/escape で #include "ruby/util.h" を追加して明示的な extern 宣言していたのをやめています。
[0c404b09a0] yuki300 2026-09-28 18:17:21 UTC
parse.y で pattern match の "|" を使った構文と変数束縛を併用するのを禁止するチェックに不具合があり、問題のないパターンでもエラーになっていた不具合を修正しています。 [ruby-core:126676] [Bug #22310]
[9f2e54518e] Nobuyoshi Nakada 2026-11-03 08:28:56 UTC
Array#sample の実装で 引数が 0 または配列サイズが 0 の時に capa が 0 の配列を返して処理をスキップするようにしています。
[74699c56fa] Hiroshi SHIBATA 2026-10-30 05:47:22 UTC
bundler の Gemfile の platforms ブロック内に gemspec を書いた時にその依存関係による間接的な gem にも platform 条件が伝播するように修正しています。
[2e61d0b910] Hiroshi SHIBATA 2026-10-30 05:47:24 UTC
bundler の ma ページの gemfile(5) に 74699c56fadd6ae17366f469882db330c89589de の変更について追記しています。
[c832e4058f] Hiroshi SHIBATA 2026-10-30 06:09:04 UTC
bundler のテストに 74699c56fadd6ae17366f469882db330c89589de に対応したテストを追加しています。
[39485fe1f1] Hiroshi SHIBATA 2026-10-30 08:35:33 UTC
bundler の man ページの gemfile(5) の追記場所を移動する再修正。
[82a16f7cc1] Hiroshi SHIBATA 2026-10-30 08:45:00 UTC
bundler のテストの 74699c56fadd6ae17366f469882db330c89589de に対応したテストをもうひとつ追加しています。
[25ad3d64fc] Matt Valentine-House 2026-10-27 00:03:05 UTC
GC の mmtk 実装版で mmtk の GC アルゴリズム(プラン)によっては不要になる RGenGC 用の Write Barrier の処理をスキップするようにしているようです。
[47d2b61542] Nobuyoshi Nakada 2026-11-03 07:36:12 UTC
拡張ライブラリ date でも #include "ruby/util.h" を追加して独自に extern 宣言していたのをやめています。ただし default gem として古い ruby でもコンパイルする可能性があるので未定義の時は宣言するようにしています。
[c260d575a1] yuki300 2026-09-28 18:17:22 UTC
parse.y の pattern match の hash pattern の **x のようなパターンで重複キーのチェックが漏れていて変数名の重複がエラーになっていなかったのを修正しています。 [ruby-core:126699] [Bug #22314]