ruby-trunk-changes 2024-02-01

今日は主に YJIT の Float のメソッドその他の最適化などがありました。

[171d4bec25] David Rodriguez 2024-01-30 18:17:23 UTC

bundler のテストで Windows での余分な標準エラー出力でエラーになる問題のため問題の行を除去する wrapper を作る対処。

[c70052e5d9] Hiroshi SHIBATA 2024-01-30 07:14:22 UTC

rubygems のテストで webrickWEBrick::Utils::TimeoutHandler という定数を参照するのに不要に代入をして defined? で存在チェックしていたのをやめています。

[a322b2faa4] David Rodriguez 2024-01-30 20:35:48 UTC

bundler のテストで bundle lock にかかる時間をチェックするテストのやりかたを変更しているようです。

[51753ec7fa] Takashi Kokubun 2024-01-31 15:47:35 UTC

Symbol#to_s と Symbol#id2name を ruby 実装にして leaf 属性でマークして JIT で最適化されるようにしています。 https://github.com/ruby/ruby/pull/9769

[06732d4956] David Rodriguez 2024-01-31 12:31:24 UTC

rubygems のテストで TruffleRuby で skip していたものが対処されたみたいで skip をやめています。

[cc9bbbdd80] Takashi Kokubun 2024-01-31 17:54:10 UTC

YJIT で jit_prepare_routine_call() という関数を jit_prepare_non_leaf_call() と改名してその処理の一部を jit_prepare_call_with_gc() という関数に切り出すリファクタリングと、多くの場合で jit_prepare_routine_call() のかわりに jit_prepare_call_with_gc() を呼んで不要な処理を省略するように変更しています。 https://github.com/ruby/ruby/pull/9775

[09427f51a2] Takashi Kokubun 2024-01-31 17:58:47 UTC

YJIT で Float の四則演算のメソッド +, -, *, / に対して専用のコード生成をするように最適化しています。 https://github.com/ruby/ruby/pull/9774

[2220c4cf42] Takashi Kokubun 2024-01-31 18:10:03 UTC

cc9bbbdd80f04fd924be3d6e6302e1a6c57283e2 の続きでまだ jit_prepare_routine_call() という関数名が残ってたところがあったので jit_prepare_non_leaf_call() に変更しています。

[21031f0a84] Takashi Kokubun 2024-01-31 18:13:25 UTC

09427f51a23724fa8ee04ecb94d306add917d0b0 で追加した YJIT の Float の四則演算メソッドの実装で jit_prepare_non_leaf_call() のかわりに jit_prepare_call_with_gc() を呼ぶように最適化しています。

[610636fd6b] Kevin Newton 2024-01-31 17:17:31 UTC

iseq.c や compile.c に prism 用の関数のインターフェースや関数名などを変更しているようです。

[95c9711d6e] David Rodriguez 2024-01-30 19:32:09 UTC

bundler で Gemfile.lock の platform の指定での musl の扱いの変更みたいですがよくわからず。

[b4880af0e2] Kevin Newton 2024-01-31 18:53:17 UTC

異常終了時のメッセージでの description のチェックで prism が有効な時に追加される文字列を無視するようテストを修正しています。

[71f16d498d] Kevin Newton 2024-01-31 19:25:27 UTC

コマンドラインオプション --dump=prism_parsetree 指定時のエラー処理を修正。

[c469799126] Jeremy Evans 2024-01-31 19:07:45 UTC

ruby2_keywords が指定されたメソッドの無名 splat 引数で委譲先での引数の処理が呼び元の配列を変更してしまうのを修正しています。

[6a689e3323] Stan Lo 2024-01-31 23:44:11 UTC

irb の Encoding に関するテストで TruffleRuby で prism の対応が必要なため skip するようにしています。 https://github.com/ruby/irb/pull/854 https://github.com/ruby/prism/issues/2129

[67404d657a] KJ Tsanaktsidis 2024-01-31 23:01:18 UTC

拡張ライブラリ socket の abf192eb16ea845ac11743a32bd2f3e2d234488b で常に skip するようにしていた d2ba8ea54a4089959afdeecdd963e3c4ff391748 のテストをやはり Windows (Process.fork がない環境)でのみ skip するように戻しています。

[da33c5ac9f] KJ Tsanaktsidis 2024-01-31 23:02:44 UTC

d2ba8ea54a4089959afdeecdd963e3c4ff391748 の拡張ライブラリ socket で getaddrinfo(3) の呼び出しのフラグに AI_ADDRCONFIG を立てるようにした変更も revert しています。

[2554c5d3b8] Samuel Williams 2024-02-01 02:27:44 UTC

io_binwrite_string() で io_binwrite_string_internal() が書き込んだバイト数に 0 を返した時に不要に errno に EWOULDBLOCK をセットして IO 待ちにしていたのをすぐにリトライするようにしています。 https://github.com/ruby/ruby/pull/9792 [ruby-core:116534] [Bug #20231]

[7fd2c442e2] "dependabot[bot]" 2024-02-01 02:06:19 UTC

GitHub Actions の workflows で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[8ba8e979c8] Nobuyoshi Nakada 2024-01-31 11:30:32 UTC

internal/imemo.h の IMEMO_TYPE_P() マクロの定義で引数の展開部分にかっこをつけるように修正しています。

[1236a74023] Nuno Silva 2024-02-01 12:12:01 UTC

irbIRB.setup での初期化処理を子 irb では省略する最適化。 https://github.com/ruby/irb/pull/850