今日は Object Shapes の不具合修正やメソッド呼び出しのキーワード引数に配列リテラルを渡した時の最適化などがありました。
[edbd9ed468] Jean Boussier 2025-06-21 12:43:50 UTC
cd9f447be247478d2eb3da985295735cce20cb23 の Object Shapes でインスタンス変数の管理テーブルを T_IMEMO 型オブジェクトとしてメモリ管理するようにした変更でバッファサイズを拡張する時に capacity のぶんでなく必要とする新規の index のぶんまでだけのメモリ確保しかしていなくて不正メモリアクセスが発生してしまっていた不具合を修正しています。 [ruby-core:122557] [Bug #21445]
[ec20f7feb6] Nobuyoshi Nakada 2025-06-21 16:08:38 UTC
fork(3) が利用可能な環境でのみ使われる関数の定義を HAVE_WORKING_FORK の preprocessor 分岐内に入れるなどの未使用関数/変数の警告抑制のための修正。
[d84a811f31] Nobuyoshi Nakada 2025-06-21 17:00:56 UTC
Random のバックエンドの実装になにを使うかで試す関数の順序を変更しています。まずシステムコールの getrandom(2)/getentropy(2) などを優先し、次にライブラリ関数、最後にデバイスファイルからの読み込みとしているようです。 [ruby-core:122562] [Bug #21448]
[353fa6f0ba] Jeremy Evans 2025-06-20 00:57:20 UTC
メソッド呼び出しのキーワード引数に渡している値がリテラルのみ(副作用やメモリ確保がない)配列だった時に配列オブジェクトの生成を抑制して直接値スタックを引数渡しに使うようにコンパイルするようにしています。