ruby-trunk-changes 2022-10-06

今日は non-blocking fiber を一時的に blocking fiber にする Fiber.blocking メソッドの新規追加や標準添付ライブラリ open-urissl_version オプションを追加する変更などがありました。

[358fe26b31] David Rodríguez 2022-10-03 10:10:05 UTC

bundler の bundle update でデバッグ出力が有効な時のメッセージで重複して gem 名が表示されることがあったのを修正しています。

[3e84290213] Daniel Colson 2022-10-06 00:51:05 UTC

標準添付ライブラリ rdoc の不要な require "abbrev" の削除。

[d15b38d944] Jean Boussier 2022-02-18 08:45:13 UTC

標準添付ライブラリ open-uri正規表現を格納する定数を OpenURI::Meta という Module の下に定義していたのを OpenURI 配下に移動しています。この OpenURI::Meta は extend して使う Module だったので余計な定数を対象のインスタンスに追加してしまって定数キャッシュの invalidate を起こしてたとのこと。

[cc5313ceab] Hiroshi SHIBATA 2022-10-06 08:08:36 UTC

d15b38d944c27cb627741206d8adf285153a4df2 の open-uri の定数の移動に関連したテストで定数キャッシュの状態をチェックするテストを追加していましたが RubyVM.stat に依存したテストだったので未定義だったら skip するようにしています。

[7f80ec47c3] Hiroshi SHIBATA 2022-10-06 08:12:46 UTC

d15b38d944c27cb627741206d8adf285153a4df2 および cc5313ceab756887e5dcddcb3b293a842a01fbac の追加修正で open-uri のテストで skip ではなく omit を利用するようにしています。

[cdbaac3f4b] Nishant Patel 2022-02-05 03:29:38 UTC

標準添付ライブラリ open-uri の OpenURI.open_http に :ssl_version というオプションを追加して SSL/TLS のバージョン指定ができるようにしています。 https://github.com/ruby/open-uri/pull/7

[43e925090b] Nishant Patel 2022-02-16 05:59:28 UTC

cdbaac3f4b6349907fe744f5eafab982b45e53e2 の open-uri のオプション追加に対応したテストに TLS の validation を OpenSSL::SSL::VERIFY_NONE にした時のテストケースを追加しています。 https://github.com/ruby/open-uri/pull/7

[e929b0aac5] Nobuyoshi Nakada 2022-10-06 02:51:15 UTC

標準添付ライブラリ rdoc のテストに RDoc::Markup::ToHtml#accept_table というメソッドのテストを追加しています。

[75a53f6be0] Nobuyoshi Nakada 2022-10-06 03:05:26 UTC

標準添付ライブラリ rdoc の RDoc::Markup::ToHtml#accept_table でテーブルのセル内に埋め込む文字列を CGI.escapeHTML していましたがマークアップを有効にするため to_html を通すように変更しています。

[e696ec67ac] Samuel Williams 2022-10-06 10:00:49 UTC

Fiber.blocking というメソッドを新規追加して non-blocking Fiber でブロック内のみで Scheduler による Fiber 切り替えを意図的に抑制する? ことができるようにしています。せっかくの non-blocking fiber なのになぜそんなことするんだろう? と思ってチケットをみると Scheduler で IO#{read,write}_nonblock を使って IO 処理するような実装を書くとその IO 処理がまた Scheduler を呼び出してしまって……と再帰してしまうのでそれを抑制したいということでした。あと ruby trunk changes ではたぶんこれまでいつも non-blocking fiber のこと間違って blocking fiber って書いちゃってました(デフォルトが blocking fiber で Scheduler が有効なのが non-blocking fiber)。 https://github.com/ruby/ruby/pull/6498 [ruby-core:106707] [Bug #18411]