ruby-trunk-changes 2024-11-20

今日は主に標準添付ライブラリ pp や irb の更新、non-blocking Fiber 用 Scheduler の新しいフックメソッド仕様の追加などがありました。

[492b379b52] Nobuyoshi Nakada 2024-11-19 12:23:15 UTC

標準添付ライブラリ pp に rdoc 用コメントの漏れの追加および :nodoc: タグの追加をしています。

[dd473cec29] sodacris 2024-11-18 07:53:34 UTC

bundler のテストで bundle binstub サブコマンド実行時のチェックの修正。

[bc92379664] tomoya ishida 2024-11-19 13:17:07 UTC

標準添付ライブラリ irb で標準添付ライブラリの delegate に依存していたのをやめるようにしています。また irb の context (main) としてセットするオブジェクトの提供するメソッドの前提を置いていた(kind_of? や to_s, inspect, class などのメソッドが組み込みのものであるなど)ところをいくつか回避するようにしています。 https://github.com/ruby/irb/pull/1031

[0de7e6ccb0] Nobuyoshi Nakada 2024-11-19 14:43:23 UTC

標準添付ライブラリ pp の Kernel#pp の rdoc 用コメントのマークアップの修正。

[7b51b3c75b] tompng 2024-10-09 04:31:48 UTC

標準添付ライブラリ pp で Range オブジェクトの表示で beginless や endless の時の表示を修正しています。

[cd7c6c66b4] tomoya ishida 2024-11-13 14:18:41 UTC

7b51b3c75b503de744b5988619915033a3a9b7ff の続きで 標準添付ライブラリ pp の Range オブジェクトの表示の実装での条件分岐をシンプルにするリファクタリング

[0914da52e0] Andrew Nesbitt 2024-11-18 16:03:54 UTC

bundler の bundle fund サブコマンドについての man ページを追加しています。

[b56aacba78] David Rodríguez 2024-11-14 09:54:15 UTC

bundler で内部で使われるクラスの inspect メソッドを定義してデバッグ用の出力で情報が読み取りやすいようにしています。

[a5709631a1] David Rodríguez 2024-11-18 20:48:32 UTC

bundler のテストのための lockfile からもう不要になっていた webrick への依存を削除しています。

[a208ac6f4b] David Rodríguez 2024-11-18 20:50:24 UTC

bundler のテストで利用する webrick のバージョンを更新しています。

[86b1c83857] Stan Lo 2024-11-19 23:30:30 UTC

組み込みメソッドの ruby 実装を定義する kernel.rb 内の rdoc 用コメントの typo 修正と不要なセミコロンの削除。

[9c268302bf] Samuel Williams 2024-11-20 06:40:17 UTC

non-blocking Fiber 用の Scheduler のインターフェースに #blocking_operation_wait というフックメソッドを追加して、rb_nogvl() で blocking region の処理が渡された時にそれを Proc オブジェクトに wrap してフックメソッドの引数に渡して呼ぶので、Scheduler はこれを非同期に実行する(たとえば Thread で)ということを期待しているものみたいです。なんかすごいことをしてるな。なおこの時に Proc で wrap できるかどうかの判定のために RB_NOGVL_OFFLOAD_SAFE というビットフラグを追加しており、IO 関連で使う IO_WITHOUT_GVL() の時にこれをセットするようにしているようです。なのでなんでもかんでも offload するというわけではないようです。 https://github.com/ruby/ruby/pull/12016 [ruby-core:119772] [Feature #20876]

[682ff52e8f] git 2024-11-20 07:00:36 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの mutex_m のバージョンを更新しています。

[3c0b09ac9e] Samuel Williams 2024-11-20 08:27:16 UTC

IO::Buffer#copy がバッファサイズが大きい時に処理時間がかかるので、IO_BUFFER_BLOCKING_SIZE (現在 1MiB)を超える場合は GVL を解放して blocking region で実行するようにしています。 https://github.com/ruby/ruby/pull/12021 [ruby-core:119972] [Feature #20902]