ruby-trunk-changes 2024-07-03

今日は m(...) のような引数を委譲するメソッド呼び出しの最適化の影響で異常終了する可能性のあった不具合の修正や拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#readbyte メソッドの追加、YJIT の最適化などがありました。

[d25b74b32c] eileencodes 2024-06-18 18:52:18 UTC

配列のバッファを確保しなおす ary_heap_realloc() が freeze された Array に対して呼ばれることがあったので freeze 時にバッファサイズを調節するようにして呼ばれないようにしています。

[4d94d28a4a] Gabriel Lacroix 2024-07-02 18:34:48 UTC

YJIT で定義されているものの未使用のキーワード引数のあるメソッドの呼び出しをインライン化して引数処理を省略するようにしています。これって呼び出し側で未使用のキーワード引数の値のところの評価も削られるのかな? 削られると副作用のある処理の場合それが呼ばれなくなるという挙動の変化がありそうだけど。

[cc8c4a60b7] eileencodes 2024-07-02 17:31:15 UTC

m(...) のような引数を委譲するメソッドの呼び出し時に誤った最適化で異常終了することがあったのを修正しているようです。 [ruby-core:118418] [Bug #20603]

[b2b8306b46] eileencodes 2024-07-02 17:54:23 UTC

cc8c4a60b7fbddc04e2e09946a3c70029db35d3d の続きで同じく m(...) のような引数を委譲するメソッド呼び出しで呼ばれるメソッドがキーワード引数を受け付けてる場合の脱最適化の修正。 [ruby-core:118418] [Bug #20603]

[d5500e621c] Jerome Dalbert 2024-06-26 23:38:59 UTC

rubygems の add_runtime_dependency をもともと alias だった add_dependency に改名して add_runtime_dependency のほうを alias にしています。

[7fc04276ac] David Rodríguez 2024-06-14 09:08:48 UTC

bundler の platform の扱いについてのリファクタリングみたいです。

[c36eb10d8b] David Rodríguez 2024-06-27 10:35:44 UTC

bundler の bundle lock のテストで使う lockfile の remote や source を変更しています。

[cd57c1294d] David Rodríguez 2024-06-27 10:36:47 UTC

bundler の lockfile での platform への自動的な追加をやめる変更で明示的に bundle lock で追加した platform は消えないように対処しているようです。

[2830a6ae38] Jerome Dalbert 2024-06-27 00:11:53 UTC

bundler の bundle gem サブコマンドのオプションの引数のチェックを強化しています。

[3407565d2f] Kevin Menard 2024-07-02 19:55:17 UTC

YJIT の arm64 版のデバッガ用の命令? の生成を修正しています。 https://github.com/ruby/ruby/pull/11083

[d9487dd011] Aaron Patterson 2024-07-02 22:20:01 UTC

thread.c の rb_thread_io_blocking_call() でローカル変数 th の宣言に volatile 修飾子を付加しています。 不具合修正じゃなくて高速化のためみたいです。 volatile を付けたほうが速いのか。 https://github.com/ruby/ruby/pull/11087

[93b19d56de] Aaron Patterson 2024-07-03 00:17:29 UTC

Array#pack の処理中にフォーマット文字列のオブジェクトが破壊的変更が行なわれた時のテストというのを追加しています。

[4d4ac00123] Grant Gardner 2024-06-30 14:25:45 UTC

拡張ライブラリ openssl に OpenSSL::SSL::SSLSocket#readbyte というメソッドを新規追加しています。EOF の時に EOFError を発生させるだけで他は #getbyte と同じです。 https://github.com/ruby/openssl/pull/438

[64fef3b870] Ivo Anjo 2024-06-21 10:48:37 UTC

vm_push_frame() 内で可能であれば atomic_signal_fence() という C++ の? 標準関数を呼ぶようにしています。シグナルハンドラとのあいだのメモリフェンスを置くことで、プロファイラのためのシグナルハンドラが割り込んでいた時に不具合になるような処理の reorder が発生するのを防ぐみたいです。実際には従来のコンパイラで実際に不具合になるような結果になることは観測されていないようですが原理的にありえるので対応しおくというものみたいです。

[7a43147407] Nobuyoshi Nakada 2024-07-03 05:18:27 UTC

標準添付ライブラリ shellwords の gemspec ファイルで spec.files から除外するファイルリストを増やしています。

[777fcd18a7] Nobuyoshi Nakada 2024-07-03 05:23:41 UTC

標準添付ライブラリ shellwords の Shellwords::VERSION 定数用に rdoc 用コメントを追加しています。 rdoc -C による網羅チェックの対応のためと思われます。

[9aa62bda46] Nobuyoshi Nakada 2024-07-03 05:24:34 UTC

標準添付ライブラリ shellwords の rdoc 用コメントの関連リンクのはりかたを変更しています。