ruby-trunk-changes 2023-09-01

今日は主に YJIT の最適化や GC で不要な pindown を避ける変更などがありました。

[eb3d94f4ba] Burdette Lamar 2023-08-31 13:06:11 UTC

Kernel#system の rdoc 用コメントのサンプルなどの強化。 https://github.com/ruby/ruby/pull/8309

[4f0d58260a] Peter Zhu 2023-08-30 19:28:22 UTC

ObjectSpace の Variable Width Allocation による slot サイズ別の heap の初期サイズ計算でメモリアライメントによる無駄や整数の除算による細かな誤差で小さめに計算していたのを修正しているようです。

[8804a70387] Stan Lo 2023-08-31 14:08:03 UTC

irb の gemspec ファイルで reline の依存バージョンを 0.3.8 以降に引き上げています。

[b8e782c1b5] Burdette Lamar 2023-08-31 14:27:10 UTC

File::Constants の rdoc 用コメント内のリンクの修正。 https://github.com/ruby/ruby/pull/8340

[0270210e49] Jean Boussier 2023-08-31 07:23:30 UTC

拡張ライブラリ socket の UNIXSocket のテストで空文字列を send するのをやめています。 OpenBSDSolaris では空の sendmsg は無視されるので挙動が違うそうでそれでテストが失敗するのを避けるためみたいです。

[43825fba6e] John Hawthorn 2023-08-26 01:52:02 UTC

YJIT で VM 命令 getblockparamproxy で Symbol に & をつけて obj.each(&:meth) みたいにメソッド呼び出しをブロックとして渡した時のブロックの対応を最適化? しているようです。

[3678734fac] Stan Lo 2023-08-31 15:44:13 UTC

irb の gemspec ファイルで rdoc の依存関係でバージョンの指定を削除しています。

[84fa8ae84e] Burdette Lamar 2023-08-31 18:02:09 UTC

Process.spawn の rdoc 用コメントの手直し。なんかむしろサンプルが減ってたり引数の説明の一覧性が下がってるような気もするけど。 https://github.com/ruby/ruby/pull/8342

[322548180d] Matt Valentine-House 2023-08-31 14:35:56 UTC

rb_gc_mark_values() という関数に渡した引数の配列の VALUE の mark に gc_mark_and_pin() を呼んでたのを gc_mark() に変えて pindown しないようにしています。呼ばれてる箇所では pindown 不要だったので、とのことだけど static な関数ではないので微妙感も。 internal/gc.h での宣言なので外部の拡張ライブラリから使うことは想定してないと思いますが。

[945945dad4] Matt Valentine-House 2023-08-31 14:45:57 UTC

gc.c の gc_mark_values() を削除して gc_mark_imemo() から利用していたところは rb_gc_mark_values() で代替しています。

[9930363aab] Nobuyoshi Nakada 2023-08-31 18:15:47 UTC

Foo::Bar {} のような構文がメソッド呼び出しとして解析されていなかった不具合を修正しています。 [ruby-core:109052] [Bug #18878]

[45cd011d73] yui-knk 2023-08-31 12:35:55 UTC

引数にかっこをつけないメソッド呼び出しの引数に (;) というのを渡すと SyntaxError になるという不具合を修正しています。 (;) は nil になるんで確かに valid ですが、うーんまあ不具合ではあるんでしょうね、という感じですね。 [ruby-core:111499] [Bug #19281]

[61f1657f68] Nobuyoshi Nakada 2023-09-01 04:36:15 UTC

iseq.c の SET_COMPILE_OPTION_NUM() という関数マクロの定義で引数で受け取るはずの変数名を直接書いてしまっていたのを修正しています。

[1fbc8cdf06] Nobuyoshi Nakada 2023-09-01 04:39:36 UTC

iseq.c の rb_iseq_new_with_opt() で構造体 rb_compile_option_t の引数の不要なコピーを抑制するようにリファクタリングしています。

[4c040fe850] Nobuyoshi Nakada 2023-09-01 05:06:42 UTC

iseq.c で rb_compile_option_t 構造体の AST 内に埋め込まれているものをそのままコピーせずに利用するようリファクタリングしています。

[2efd59e2eb] Hiroshi SHIBATA 2023-09-01 05:22:06 UTC

bundler のテストのエラーチェックをより詳細にしています。