ruby-trunk-changes 2023-09-15

今日は主に parser の修正でかっこでくくって式にすることでリテラルや flip-flop が本来と異なる parse のされかたをする問題の修正や不正なグローバル変数の記法に対応する Symbol リテラルが通っていたのを SyntaxError にする変更、Thread#native_thread_id が fork すると変更する環境への対応などがありました。

[b85bb90c34] Nobuyoshi Nakada 2023-09-14 13:43:55 UTC

NEWS のエントリの順序並べかえ。

[cdc69da9e5] Takashi Kokubun 2023-09-14 14:10:31 UTC

YJIT の Rust 実装で Assembler の new_with_label_names メソッドで配列の初期化時にサイズを指定してあらかじめ確保しておくようにしているようです。 https://github.com/ruby/ruby/pull/8437

[3f492921c8] Nobuyoshi Nakada 2023-09-13 12:22:52 UTC

parse.y の reg_named_capture_assign_iter() という関数でほぼ rb_reg_named_capture_assign_iter_impl() という関数に内容を委譲するようにリファクタリングしています。

[e8896a31d4] Nobuyoshi Nakada 2023-09-13 12:55:12 UTC

リテラルに対して特異メソッドを定義するような記法(def 1.foo; end)は SyntaxError になりますが、リテラルを () で囲ったりするとそれは許容されるのをこれも SyntaxError になるようにしています。 [ruby-core:114722] [Bug #19877]

[864bb8680c] Nobuyoshi Nakada 2023-09-13 13:09:22 UTC

正規表現の named capture でローカル変数に部分マッチした内容を代入する挙動が正規表現リテラルをかっこで囲ったりすると動かなくなる不具合を修正しています。 [ruby-core:114722] [Bug #19877]

[9cb33aad55] Nobuyoshi Nakada 2023-09-13 14:33:19 UTC

条件部に書く flip-flop 演算子もかっこで囲むなどの記法によって flip-flop にならなくなるのを修正? しています。 [ruby-core:114722] [Bug #19877]

[fcc1699162] Takashi Kokubun 2023-09-14 17:55:00 UTC

YJIT の Rust 実装でもう一カ所配列の確保時のサイズ指定を追加しています。 https://github.com/ruby/ruby/pull/8439

[66ffa15ce0] Martin Emde 2023-09-13 01:54:39 UTC

bundler で Gemfile の ruby バージョン指定の記法に許すバージョンの書きかたを拡張しているようです。

[1961c5bb76] Alan Wu 2023-09-14 21:18:45 UTC

YJIT からメソッド呼び出しやブロックの呼び出しをする時にマシンスタックの stack overflow のチェックを行うようにして SEGV を防ぐようにしているようです。

[07b615bb3b] Takashi Kokubun 2023-09-14 22:02:10 UTC

GitHub Actions の Windows 環境向け workflow で OpenSSL のライブラリを使わないようにするために rename する処理を vs2019 では行なわないようにしています。ファイルがなくなったみたいです。

[0ba6c603bc] Alan Wu 2023-09-14 22:40:45 UTC

YJIT の実装の yjit/src/codegen.rs というファイルの先頭に BOM がついていたのを削ったみたいです。

[982d6503b9] Takashi Kokubun 2023-09-14 22:49:40 UTC

YJIT の Rust 実装で disasm 出力用の処理を不要な時にスキップするようにしているみたいです。 https://github.com/ruby/ruby/pull/8441

[f08cac066e] Aaron Patterson 2023-09-14 19:48:53 UTC

ISeq へのコンパイル処理でサイズの指定が 0 の時に ZALLOC_N() を呼ばないようにしています。

[0117a6d389] KJ Tsanaktsidis 2023-09-15 01:33:32 UTC

Thread#native_thread_id の実装でシステムコールの呼び出しを抑制するために結果をキャッシュしていたのが、fork することで変化する環境があるというのに対応していなかったので thread_sched_atfork() の中で fork 後に再取得するようにしています。 https://github.com/ruby/ruby/pull/8418 [ruby-core:114681] [Bug #19873]

[74277f9998] "dependabot[bot]" 2023-09-15 02:41:23 UTC

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

[fe0225ff4d] Nobuyoshi Nakada 2023-09-15 03:08:25 UTC

configure のオプション --with-opt-dir の処理時に -I オプションの追加を CPPFLAGS 変数にセットしていたのを INCFLAGS を更新するように変更しています。どっちでもよさそうに思えるけどチケットをみると rbconfig.rb の RbConfig::CONFIG の設定に影響していて拡張ライブラリのビルド時にエラーになることがあったみたいです。 [ruby-core:114250] [Bug #19778]

[5a7f5bb0de] "dependabot[bot]" 2023-09-15 03:22:02 UTC

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

[89802078f9] Nobuyoshi Nakada 2023-09-15 06:39:58 UTC

$0x というグローバル変数(特殊変数?)のような記法は SyntaxError になるのに、その前に ":" をつけて :$0x とすると Symbol リテラルとして通ってしまっていたのをエラーになるように修正しています。 [ruby-core:114761] [Bug #19882]