ruby-trunk-changes 2024-06-12

今日は ISeq の peephole 最適化で命令列へのコンパイルが無限ループに陥ることがある不具合の修正などがありました。

[ad9fe6f376] Matt Valentine-House 2024-06-10 15:41:12 UTC

.gdbinit で misc/gdb.py を読み込むための source コマンドに -s オプションをつけるようにしています。

[3e84da0970] David Rodríguez 2024-06-06 11:38:16 UTC

bundler で Gemfile.lock で指定されている bundler のバージョンを利用する処理を起動方法によらず有効にするようにしているようです。

[9e7ccc00bc] Kevin Newton 2024-06-11 12:28:08 UTC

bundler のテストで prism parser 利用時にエラーメッセージが変わることに対応するように assertion を修正しています。

[89ebe8993f] Kevin Newton 2024-06-08 00:27:02 UTC

GitHub Actions の prism parser を利用したテストの workflow のテスト対象を増やしています。

[32683aa18d] Peter Zhu 2024-06-10 14:02:05 UTC

プロセス終了時の GC の mark のための rb_global_tbl を解放する処理の途中で Symbol と Array オブジェクトを利用しないようにしています。このために終了時に Symbol と Array の解放処理を遅延させていたのを不要にしています。

[568132af16] David Rodríguez 2024-06-06 10:57:26 UTC

bundler の Gemfile.lock に gem をダウンロードする remote に直接パスワードなどが埋め込まれている時の対応をしています。もう現在は未対応だけど古いバージョンの bundler などでは使われているからそれで動くように消さないようにするためって感じのようにみえます。

[39019b6a63] Maxime Chevalier-Boisvert 2024-06-11 16:46:11 UTC

YJIT の Rust 実装で Context の cache のサイズを --yjit-stats で出力するようにしているようです。

[c735f4947e] gartens 2024-06-11 17:12:23 UTC

拡張ライブラリ openssl の OpenSSL::X509::Certificate#sign の引数の digest に nil を渡すのを受付けるようにしています。 鍵の種類によって OpenSSL の X509_sign() に NULL を渡すことができるのでそれを指定できるようにしているようです。 https://github.com/ruby/openssl/pull/761

[ec1ea2c5b9] Takashi Kokubun 2024-06-11 17:17:41 UTC

YJIT の統計情報の num_contexts_encoded というカウンターを --yjit-stats を指定しなくてもインクリメントするカウンタの仲間入りさせています。

[0a6b1a4d9d] Takashi Kokubun 2024-06-11 18:28:03 UTC

tool/redmine-backporter.rb で commit hash に commit: の prefix をつけるための判定に先頭 8文字だけの commit hash にも対応するようにしています。

[1271ff72d5] Aaron Patterson 2024-06-10 23:05:03 UTC

警告の対象のカテゴリが無効なので出力がされない時でも Warning.warn のフックは呼ばれていたのを呼ばないようにしています。 [ruby-core:118279] [Bug #20573]

[206465e84d] Nobuyoshi Nakada 2024-06-11 01:50:19 UTC

parse.y の dispatch_heredoc_end() という関数の定義を本体と ripper 用とで関数ごと分けていたのを関数内の preprocessor 分岐で最小限の分離にして共通部分を共有するようにしています。

[39c9d99f6c] Koichi Sasada 2024-06-12 01:27:25 UTC

rubyspec の一時ディレクトリ作成の処理で tmp("") を呼んでディレクトリ作成をしておくようにしています。並列実行時に誤って一時ディレクトリ作成時に umask 0 が指定された状態になっちゃうことがあったみたいです。なるほど umask のプロセスのグローバルな状態だからか……。

[0bc91fa6df] Nobuyoshi Nakada 2024-06-12 05:46:29 UTC

6086bae5c85cc297003012afc9cf5966fc75746a の mspec での一時ディレクトリ作成時の File.umask のチェックを Windows 環境では行わないようにしています。

[01b13886dc] Nobuyoshi Nakada 2024-06-07 08:01:14 UTC

プロセス終了時に可能なかぎり全てのメモリ領域を解放してメモリリーク検出のツールを使いやすくするための環境変数 RUBY_FREE_AT_EXIT の指定時の警告を experimental カテゴリの警告にしています。 [ruby-core:118226] [Bug #20562]

parse.y に識別子と定数名のいずれかになる ident_or_const というその名の通りのルールを追加しています。

[2eb31a6254] ydah 2024-06-12 06:01:49 UTC

configure.ac のメッセージの typo 修正。

[c56d0adfa6] tomoya ishida 2024-06-12 07:47:58 UTC

irb のテストで IRB モジュールの @existing_rc_name_generators というインスタンス変数をリセットする処理を setup から teardown での後始末に移動しています。 https://github.com/ruby/irb/pull/968

[278a7cb057] Yudai Takada 2024-06-12 10:42:01 UTC

Dir.home の rdoc 用コメントの typo 修正。

[32a555ea53] Nobuyoshi Nakada 2024-06-12 10:03:33 UTC

while と until をネストさせたような構文を書くと ISeq の peephole 最適化でジャンプ先のラベルの差し替えで最適化処理自体が無限ループに陥ってコンパイルが終わらなくなってしまう不具合を修正しています。 [ruby-core:118273] [Bug #20572]