ruby-trunk-changes 2021-07-29

今日も主に標準添付ライブラリの更新があり、Set#intersect? の引数に Enumerable を include したクラスのインスタンスも受付けるようにする拡張などがありました。

[d04ba0906c] Kazuhiro NISHIYAMA 2021-07-28 13:54:24 UTC

gems/bundled_gems の rbs のバージョンを 1.3.3 に更新しています。

[3b9fe3e15a] Jeremy Evans 2021-07-28 15:45:26 UTC

a6dc48f86a8ee7b1f713105b5c7136824d6b5720 で追加した NoMemoryError 発生時のテストが Solaris 11 の CI 環境で時間がかかりすぎて timeout するそうなので捕捉して無視するようにしています。

[7af750af8e] git 2021-07-28 15:51:10 UTC

version.h の日付更新

[fb4cf204a6] Koichi Sasada 2021-05-12 18:10:18 UTC

組み込みクラスに Module を prepend してからメソッド再定義すると、最適化命令の脱最適化の判定がうまくいかず再定義したメソッドが呼ばれないケースがあるという不具合を修正しています。最適化されうるメソッドのテーブルに rb_method_entry_t ではなく struct rb_method_definition_struct を登録してこちらで検索するようにしています。 [ruby-core:102884] [Bug #17725]

[fa0279d947] Koichi Sasada 2021-07-28 04:40:30 UTC

Array#size を Array#length の alias として定義していたのを同じ(C 言語の)実装を使った別のメソッドエントリとして定義するようにしています。 fb4cf204a662a8cd9dafef6f31f2bd0db9129abe の変更とも関係がありそうですが、最適化命令の脱最適化のためにこうしておく必要があるようです。しかしこれ厳密には仕様変更ですねぇ。

[f06f1981e2] Peter Zhu 2021-07-28 17:11:27 UTC

gc.c の rb_gc_ractor_newobj_cache_clear() を export しないようにしています。

[656b49ec47] Soutaro Matsumoto 2021-07-29 10:49:09 UTC

gems/bundled_gems の更新。 https://github.com/ruby/ruby/pull/4688 しかしおそらく同じ内容が d04ba0906c35013a8432535168eec270d6e9a913 でコミットされてしまっているため差分は空っぽになっています。

[64adeeadaa] S.H 2021-07-29 12:51:10 UTC

file.c で rb_access() の結果を Qtrue or Qfalse にして返すという処理が頻出なので RBOOL() という C の真偽値を Qtrue/Qfalse にするマクロを追加してこれを使うようにリファクタリングしています。

[27fb9d272d] Yusuke Endoh 2021-07-29 04:49:35 UTC

拡張ライブラリ socket のテストが Solaris 10 の CI 環境で IPv6 の名前解決まわりの原因で失敗するので toplevel return でファイルまるごとスキップするようにしています。

[571dafdc7f] Jeremy Evans 2021-06-15 18:08:45 UTC

標準添付ライブラリ set の Set#intersect? の引数に Array も受け付けるようにしています。確かに Array くらいは受付けて欲しいかも。 [ruby-core:103635] [Feature #17838]

[cafa7d8975] Jeremy Evans 2021-06-15 22:14:54 UTC

571dafdc7f57af067706fbc318a64778f4fc218a の続きで標準添付ライブラリ set の Set#intersect? の引数に Array だけでなく Enumerable を受け付けるようにしています。 Enumerable#any? で判定するようにしています。なるほど。

[52e602edda] Jeremy Evans 2021-06-18 15:24:45 UTC

標準添付ライブラリ est の rdoc 用コメントにサンプルを追加しています。

[899194f3a6] Olle Jonsson 2021-06-19 08:45:29 UTC

標準添付ライブラリ set の .gemspec ファイルの spec.bidir と spec.executables を削除しています。

[2bd68e32e7] BurdetteLamar 2021-06-21 19:33:02 UTC

標準添付ライブラリ set の Set クラスの rdoc 用コメントにクロスリファレンスを追記しています。

[1e04571da0] BurdetteLamar 2021-06-21 19:38:33 UTC

2bd68e32e7c51ccce046264686a367126c6baf01 の続きで Set の rdoc 用コメントのリンクを https://docs.ruby-lang.org/ への絶対 URL に変更しています。うーんこれ変更される可能性を考えたら相対パスのほうがよいのでは。

[b3413914d9] Hiroshi SHIBATA 2021-07-29 06:52:32 UTC

標準添付ライブラリ ostruct のテストの YAML.safe_load を使うものを ruby 2.7 以降でのみテストするように条件つきでテストメソッド定義するようにしています。

[60b02db516] Miguel Teixeira 2021-06-11 15:49:22 UTC

標準添付ライブラリ net/http で IO.copy_stream を利用してリクエストを転送する時に sock.io を渡していたのを sock をそのまま渡すようにしています。 Net::HTTP#write_timeout の指定がきかなくなってたのでその修正のためみたいです。IO を直接渡したほうが高速な実装が使われる可能性があるのでしょうがそうすると timeout がきかなくなってしまうみたいです。 [ruby-core:104124] [Bug #17933]

[b11638eed2] Pavel Rosický 2021-06-07 21:19:40 UTC

拡張ライブラリ psych のテストで不足していた require "delegate" を追加しています。

[e99d2d066f] Rhys Powell 2021-07-24 02:58:27 UTC

拡張ライブラリ psych の rdoc 用コメントで libyaml のリポジトリへのリンクを bitbucket から GitHub へと変更しています。

[a889ab486e] Hiroshi SHIBATA 2021-07-29 06:57:58 UTC

拡張ライブラリ json の gemspec ファイルの spec.files のエントリから不要なファイルを削っています。また add_development_dependency の指定を削除しています。

[672796575e] Hiroshi SHIBATA 2021-07-29 07:20:10 UTC

拡張ライブラリ readline の gemspec ファイルからも add_development_dependency の指定を削除しています。

[a4df7cb338] Hiroshi SHIBATA 2021-07-29 07:26:15 UTC

標準添付ライブラリ error_highlight のテストで一時ファイルを開く時に環境による改行コードの差異をなくすため binmode: true の指定を追加しています。

[f8ad51dd9a] Hiroshi SHIBATA 2021-07-29 11:11:54 UTC

標準添付ライブラリ net/http の 60b02db5161625dd5f7d22d31989dd966837333c で追加したテストで Windows 環境でのみ Net::ReadTimeout を期待するようになってましたがこれは正しくなかったみたいで常に Net::WriteTimeout を期待するように書きかえています。OpenSSL::SSL::SSLSocket で生のソケットだと ReadTimeout のこともあってそのテストからのコピーだったとかかな。