ruby-trunk-changes 2023-09-13

今日は主に lambda に直接ブロックを書かずに Proc オブジェクトをブロックとして渡した時に lambda フラグが付くようにする変更や常に実行されないとコンパイル時にわかっている分岐がある時のコンパイルエラーになる場合があった不具合の修正や yarp の更新などがありました。

[b55785579c] Nobuyoshi Nakada 2023-09-12 10:23:00 UTC

parse.y で defined? の引数内であることを struct lex_context のメンバーで管理するために bison のルール部にコードブロックを書く記法で書いてたのを begin_defined というそのためだけのノードを追加してここでセットするようにして、アクション部で in_defined フラグを落とすところで元の値に復元させるようにしています。 defined? がネストした時に正しく parse できるようにするため。

[385033ba0f] Nobuyoshi Nakada 2023-08-21 08:25:18 UTC

Kernel#system で標準入出力を pipe ですりかえて子プロセスを起動する時のシグナル処理のテストでチェックを強化しています。

[b90272b3b6] Peter Zhu 2023-09-12 15:20:22 UTC

gc.c で定数マクロの typo を修正して GC_INCREMENTAL_SWEEP_POOL_SLOT_COUNT としています。

[39ee3e22bd] Alan Wu 2023-09-07 18:56:07 UTC

Kernel#lambda に直接ブロックを書かずに外から渡された Proc オブジェクトを渡した時に作成された Proc オブジェクトの lambda フラグが立ってなかったのを修正しています。うーん、でも lambda かどうかでブロック内の書きかたの正解が変わるからどうなんだろうな。 [ruby-core:114248] [Feature #19777]

[0ae7f2d1ac] Takashi Kokubun 2023-09-12 17:52:40 UTC

YJIT の --yjit-stats で集計する統計情報のカウンタに compile_time_ms (内部的には nsec で収集しておいて表示時に msec の実数表示に変換している)を追加しています。 https://github.com/ruby/ruby/pull/8417

[5edabd1cd5] Burdette Lamar 2023-09-12 20:31:31 UTC

Process::Status の rdoc 用コメントの詳細すぎる記述を削っています。 https://github.com/ruby/ruby/pull/8416

[11c32e33eb] Alan Wu 2023-09-12 20:25:29 UTC

rubyspec の標準添付ライブラリ cgi のテストで autoload とのかねあいでチェックに使う定数の参照順序をいれかえています。

[19346c2336] Nobuyoshi Nakada 2023-09-12 21:45:26 UTC

IO::Buffer#get_string メソッドの引数に大きすぎる offset を指定した時に例外メッセージが不正確なものになる不具合を修正しています。 https://github.com/ruby/ruby/pull/8016 [ruby-core:114072] [Bug #19754]

[6e64d43704] Nobuyoshi Nakada 2023-09-05 15:44:35 UTC

ISeq へのコンパイル時に分岐の一方が必ず使われないということがコンパイル時にわかる時にその部分の ISeq を削る最適化。チケットのほうをみると既にこのような最適化は行なわれているけど不完全? でコンパイルエラーになる場合があったようです。 [ruby-core:114628] [Bug #19862]

[435b243978] Nobuyoshi Nakada 2023-09-13 01:24:55 UTC

6e64d4370456190541705ec4c6cf3af6bf4ac647 で追加したテストで未使用の変数の警告抑制のため通らないほうの分岐で変数参照しておくようにしています。

[234722ed9f] Nobuyoshi Nakada 2023-09-12 15:44:03 UTC

標準添付ライブラリのスクリプトを require しただけで Thread が起動しないことを確認するテストで require する対象のファイルを絞るようにしています。 [ruby-core:114678] [Bug #19872]

[e22086bb6a] Nobuyoshi Nakada 2023-09-13 03:11:43 UTC

common.mk の ripper_srcs ターゲットに .NOTPARALLEL をつけて並列で実行されないようにしているようです。

[1851824b1c] Hiroshi SHIBATA 2023-09-13 06:30:21 UTC

拡張ライブラリ json で Module.alias_method を利用していたところが private メソッドになっているので Object#send 経由で呼び出すようにしています。

[c75d54a36c] Hiroshi SHIBATA 2023-09-13 07:23:18 UTC

1851824b1c7b816e41b567b5310bb18ab6f9ff7a で send で alias_method に渡す引数を配列にまとめてしまっていたのが実際の期待している引数と違っていたので修正しています。

[4655d2108e] yui-knk 2023-09-13 04:06:03 UTC

tool/lrama に upstream から v0.5.6 をマージしています。