ruby-trunk-changes 2021-10-07

今日は Ractor.make_shareable で Proc オブジェクトを複製した時の不具合修正や標準添付ライブラリ ipaddr の機能追加含む更新などがありました。

[7622819147] Alan Wu 2021-10-06 19:38:33 UTC

Ractor.make_shareable で Proc オブジェクトをコピーする時に env_copy() で内部的な rb_env_t をコピーする時にローカル変数を再帰的に複製する時の順序を逆順にしています。Ractor.make_shareable を通した Proc オブジェクトで外部のローカル変数を参照してる時に参照値が false になってしまうことがあったみたいです。 [ruby-core:104519] [Bug #18023]

[121424a097] git 2021-10-06 19:38:52 UTC

version.h の日付更新

[fb122042e0] Burdette Lamar 2021-10-06 20:51:49 UTC

Enumerable#sum, #uniq, #compact の rdoc 用コメントを追加しています。 https://github.com/ruby/ruby/pull/4941

[7caeead36f] Burdette Lamar 2021-10-07 00:06:17 UTC

Enumerable の rdoc 用コメントの細かな修正。 https://github.com/ruby/ruby/pull/4943

[273673aeaf] Yusuke Endoh 2021-10-07 01:40:40 UTC

カレントディレクトリが削除された状態での Kernel#system の実行のテストを Solaris で skip するようにしています。

[323e7a6744] S-H-GAMELINKS 2021-10-06 11:18:35 UTC

variable.c の set_namespace_path_i() で body 部がまったく同じ if 文が 2つあったので条件を OR(||) で連結して 1つの if 文にまとめるリファクタリング

[b23fba91ae] Espartaco Palma 2018-10-28 00:13:31 UTC

標準添付ライブラリ ipaddr で IPAddr.ntop で明示的な return をやめるリファクタリング

[54ee22be53] Jeremy Evans 2019-05-08 01:44:42 UTC

標準添付ライブラリ ipaddr で IPv4/IPv6 それぞれを期待したメソッド群で対応していないアドレスの場合に発生させる例外メッセージにアドレスの文字列表現を埋め込むようにしています。 IPAddr#initialize で例外を捕捉して addr を追加して再度 raise してたのでそれを不要にするためみたいです。

[38da84296c] Nobuyoshi Nakada 2019-05-06 23:39:42 UTC

標準添付ライブラリ ipaddr の IPAddr#initialize で "/" でアドレスを分割する時に 2つ以上 "/" があっても 2つにしか分解しないように String#split に第2引数を追加しています。 "/" が2つ以上ある不正な文字列の時にエラーにするようにしています。

[abad5e10e8] Jeremy Evans 2019-06-05 01:58:15 UTC

標準添付ライブラリ ipaddr の IPAddr#mask! で指定するマスクを文字列で渡していて先頭に 0 がついているのは例外を発生させるようにしています(ただし mask="0" は許容)。

[74ed881e10] Bogdan Irimie 2019-10-09 10:23:27 UTC

標準添付ライブラリ ipaddr に IPAddr#netmask というメソッドを追加して、インスタンスの mask を "255.255.255.0" みたいにアドレス表記で文字列化したものを返すようにしています。

[bd6e1a0f08] Jeremy Evans 2020-07-13 16:36:06 UTC

標準添付ライブラリ ipaddr に IPv6 のアドレスの zone_id 部というのを含めることができるようにしています。末尾に '%' で区切って追加される部分のことみたいです。 [ruby-core:68331] [Feature #10911]

[ae5dffd666] Hiroshi SHIBATA 2021-10-07 09:34:29 UTC

bd6e1a0f0883dba7b02f30cefe5ebec96d02cb90 の標準添付ライブラリ ipaddr の IPv6 のアドレスの変更に追随して rubyspec のテストを 3.1 とそれ以前とで分岐するようにしています。

[a706c09fa6] Nobuyoshi Nakada 2021-10-07 08:56:57 UTC

io.c の関数定義のコーディングスタイルの変更のみ。

[606e785fa8] Nobuyoshi Nakada 2021-10-07 08:59:16 UTC

io.c の rb_stderr_to_original_p() という関数で rb_ractor_stderr() を呼び出して結果を参照していたのをかわりに引数で受け取るようにして、呼び元で rb_ractor_stderr() を呼んだものを渡すようにしています。呼び元でも結局 rb_ractor_stderr() を呼んでるのでこれを使いまわすためみたいです。