ruby-trunk-changes 2021-08-22

今日は最適化命令が有効なよく使われるメソッドが TracePoint のイベントを発火させないのを修正する変更や close 済みの IO の Encoding 取得がエラーにならないようにする変更などがありました。

[48c8df9e0e] Jeremy Evans 2021-08-21 17:15:01 UTC

TracePoint などが有効になって VM 命令が trace つきの命令に差し替わった時によく使われるメソッドの最適化命令の trace_ つき版を opt_send_without_block 命令にすりかえるようにしています。最適化命令が使われたメソッドの呼び出しが TracePoint でイベント発火しないのを :c_call, :c_return イベントが発火するようにするためのようです。 [ruby-core:87638] [Bug #14870]

[ad99edc7db] git 2021-08-21 17:15:17 UTC

version.h の日付更新

[c527d278a3] Soutaro Matsumoto 2021-08-21 17:47:54 UTC

gems/bundled_gems の rbs のバージョンを 1.5.1 に更新しています。 https://github.com/ruby/ruby/pull/4760

[6594623f62] Lars Kanis 2021-08-16 11:11:30 UTC

Marshal.dump の引数に IO を渡す場合に close 済みの IO オブジェクトを渡すと IOError が発生していたのを dump できないオブジェクトということで TypeError が正しく発生するようにしています。Encoding を得るために rb_io_internal_encoding() や rb_io_external_encoding() を呼び出した時点で close 済みの時に例外が発生するせいだったみたいなのでこれらの関数の挙動を変更しているようです。 [ruby-core:104927] [Bug #18077]

[18031f4102] S-H-GAMELINKS 2021-08-21 06:28:59 UTC

2つの文字列オブジェクトの Encoding が互換性があるかチェックする rb_enc_check() や rb_enc_check_str() という似たような関数から例外を発生させてる処理を rb_encoding_check() という関数に切り出して共有するリファクタリング

[d574b84182] Nobuyoshi Nakada 2021-08-22 03:03:44 UTC

6594623f623a0982da62cc105094da0701d499da で Marshal.dump のために close 済みの IO の Encoding 取得をエラーにしないように変更した時に追随させた rubyspec のテストを IOSpecs.io_fixture というヘルパーメソッドを利用するように変更しています。 default external encoding が UTF-8 でない環境で失敗していたみたいです。 [ruby-core:104927] [Bug #18077]