ruby-trunk-changes 2024-11-08

今日は Ractor 関連のメソッドの新規追加や IO#ungetc などの読み戻しのバッファの扱いの修正、Integer#** の値が非常に大きい時の挙動の変更などがありました。

[ee29aade1a] Nobuyoshi Nakada 2024-11-07 12:03:37 UTC

IO#ungetc などでバッファへの読み戻し(書き戻し?)をしてから IO#seek で位置を移動した時にバッファを破棄するようにしています。 [ruby-core:119741] [Bug #20869]

[6385a28c33] Benoit Daloze 2024-11-07 12:47:12 UTC

rubyspec の Kernel#sleep のテストを子プロセス? に分離して行なうようにしています。 https://github.com/ruby/spec/pull/1210

[3f7c72cd33] Kouhei Yanagita 2024-11-07 12:51:57 UTC

irb の日本語の help メッセージの古くなっていた記述を更新しています。 https://github.com/ruby/irb/pull/1029

[fca07d73e3] Alan Wu 2024-11-07 14:35:19 UTC

rb_assert_failure_detail() という関数内で異常終了時のメッセージ出力先を環境変数でファイルに切り替えできる機能を考慮するようにしています。 [Feature #19790]

[c05f849cf2] Hiroshi SHIBATA 2024-11-08 01:24:42 UTC

標準添付ライブラリ ostruct の gemspec ファイルの spec.files のライセンスファイルのリストを修正しています。

[74077a99bf] Hiroshi SHIBATA 2024-11-08 01:34:54 UTC

標準添付ライブラリ ostruct のバージョンを 0.6.1 に更新しています。

[100df03e4e] git 2024-11-08 01:35:55 UTC

NEWS の default gems のバージョンリストに ostruct の項目を追加しています。

[b56b70a373] Hiroshi SHIBATA 2024-11-08 01:44:15 UTC

Windows 環境でのサードパーティーパッケージのための vcpkg.json から gmp を削除しています。 gmp のパッケージの問題のためビルドできなかった模様。

[9523f53465] Kaíque Kandy Koga 2022-08-08 17:53:05 UTC

標準添付ライブラリ benchmark の結果表示の整形。

[3406e8aad9] Hiroshi SHIBATA 2024-11-08 02:45:44 UTC

標準添付ライブラリ benchmark のバージョンを 0.4.0 に更新しています。

[9a9a586d62] git 2024-11-08 02:46:46 UTC

NEWS の default gems のバージョンリストに benchmark の項目を追加しています。

[b99c17a95b] YO4 2024-11-08 03:28:53 UTC

標準添付ライブラリ reline のリファクタリングWindows 環境での不具合修正のようです。 https://github.com/ruby/reline/pull/775

[306ce9a9e0] Mari Imaizumi 2024-11-08 03:38:12 UTC

標準添付ライブラリ reline のバージョンを 0.5.11 に更新しています。 https://github.com/ruby/reline/pull/777

[ed24c0c84f] git 2024-11-08 03:39:18 UTC

NEWS の default gems のバージョンリストの reline のバージョンを更新しています。

[82dfdb8646] Hiroshi SHIBATA 2024-11-08 03:53:35 UTC

標準添付ライブラリ singleton のバージョンを 0.3.0 に更新しています。

[3c3da1ec23] git 2024-11-08 03:55:06 UTC

NEWS の default gems のバージョンリストに singleton の項目を追加しています。

[07f45065a7] "Daisuke Fujimura (fd0)" 2024-11-06 01:01:35 UTC

cygwin/GNUmakefile.in で MinGW 向けのコンパイラオプション設定の修正。

[475e8f8c46] Hiroshi SHIBATA 2024-11-08 04:05:21 UTC

標準添付ライブラリ pstore のバージョンを 0.1.4 に更新しています。

[637b74b0bd] git 2024-11-08 04:06:33 UTC

NEWS の default gems のバージョンリストに pstore の項目を追加しています。

[a698b5ebb8] Hiroshi SHIBATA 2024-11-08 04:22:26 UTC

標準添付ライブラリ optparse のバージョンを 0.6.0 に更新しています。

[8fecc65a39] git 2024-11-08 04:23:19 UTC

NEWS の default gems のバージョンリストの optparse のバージョンを更新しています。

[7c9cda9b52] Hiroshi SHIBATA 2024-11-08 05:00:17 UTC

標準添付ライブラリ time のバージョンを 0.4.1 に更新しています。

[e462ef2e5c] git 2024-11-08 05:01:14 UTC

NEWS の default gems のバージョンリストの time のバージョンを更新しています。

[7772fe05bc] Hiroshi SHIBATA 2024-11-08 05:18:26 UTC

標準添付ライブラリ win32/registry の gemspec ファイルで win32-registry のバージョンを 0.1.0 に更新しています。

[85868388d5] git 2024-11-08 05:19:32 UTC

NEWS の新規 default gems の win32-registry のバージョンを更新しています。

[d7c65398e0] Hiroshi SHIBATA 2024-11-08 06:05:58 UTC

標準添付ライブラリ uri で互換性のため URI::REGEXP などの定数のアクセスがあった時に警告を出しつつ URI::RFC2396_XXX の値を返すようにしています。 https://github.com/ruby/uri/issues/125

[35d8427b8b] Hiroshi SHIBATA 2024-11-08 06:07:36 UTC

標準添付ライブラリ uri のバージョンを 1.0.1 に更新しています。

[29578773c2] git 2024-11-08 06:08:47 UTC

NEWS の default gems のバージョンリストの uri のバージョンを更新しています。

[c8297c3eed] Koichi Sasada 2024-11-04 18:55:52 UTC

C API に rb_threadptr_interrupt_exec() と rb_ractor_interrupt_exec() という関数を追加して、Thread や Ractor に対して割り込みを行なってコールバック関数で指定した処理を実行させることができるようにしています。いかにも取り扱い注意が必要そうな API ですね。

[f0d0c030c0] Koichi Sasada 2024-11-04 18:57:48 UTC

Ractor.main? というメソッドを追加して現在実行中の Ractor が main Ractor かどうか取得できるようにしています。

[075a102c93] Koichi Sasada 2024-11-04 19:43:24 UTC

Ractor local storage にアクセスするための Ractor.[] および Ractor.[]= というクラスメソッド(特異メソッド)で現在の Ractor の値を設定/取得できるようにしています。別の Ractor の storage にはアクセスできないのでクラスメソッドのほうが自然ということで追加。 [ruby-core:119050] [Feature #20715]

[aa63699d10] Koichi Sasada 2024-11-04 19:54:06 UTC

multi Ractor モードで main Ractor 以外の Ractor から require した時の問題の解決のため require の処理を main Ractor に実施させるようにしています。なるほどこのために c8297c3eed571e978dded34dd2036a53d6f28bb3 で rb_ractor_interrupt_exec() を追加したんですね。 [ruby-core:118542] [Feature #20627]

[8d88d35fc1] Koichi Sasada 2024-11-05 01:56:19 UTC

common.mk の依存関係を再生成。

[4886a54d74] Koichi Sasada 2024-11-05 01:57:04 UTC

RJIT 用の binding に c8297c3eed571e978dded34dd2036a53d6f28bb3 で追加した interrupt_exec_tasks の export を追加しています。

[0d63b9b4a4] Koichi Sasada 2024-11-05 02:49:21 UTC

Ractor 間のオブジェクトの転送に使う Ractor.receive, Ractor.yield で送受信先が close されていないかのチェックを追加しています。

[97aaf6f760] Koichi Sasada 2024-11-05 17:31:29 UTC

rb_thread_check_ints() と同様に rb_execution_context_t を引数に受け取る rb_ec_check_ints() 関数を追加し、ec が得られるところではこちらを呼ぶことで GET_EC() を使わずにすませるようにしています。

[78064d0770] Koichi Sasada 2024-11-06 07:04:35 UTC

bootstraptest の Ractor のテストで autoload による定数参照時の load で prism 利用時に SystemStackError が発生することがあるようで、無視させるようにしています。

[1615996067] Koichi Sasada 2024-11-07 00:50:12 UTC

vm_sync.h で rb_vm_lock_enter_body()/rb_vm_lock_enter_body_cr()/rb_vm_lock_enter_body_nb() などの関数の宣言に NOINLINE() マクロを利用して inline 化を抑制させるようにしています。

[1f62a98f73] David Rodríguez 2024-11-06 18:01:15 UTC

bundler のコマンドで gem サブコマンドの実装で gem メソッドの定義が rubygems の実装で競合してしまうために一時的にメソッドを退避させたりしていたのが不要になっていたようでシンプルな実装に直しています。

[f7b334e002] David Rodríguez 2024-11-06 17:42:40 UTC

bundler の bundle lock サブコマンドに --add-checksums オプションを追加しています。lock ファイルに CHECKSUMS セクションの出力を指定するもののようです。

[45cd4a8296] Yusuke Endoh 2024-11-08 05:46:35 UTC

Integer#** で右辺値に非常に大きな値を指定すると Float::INFINITY を返していましたが、これをやめて実際に大きな Bignum のオブジェクトを作るか、非現実的なくらい大きなメモリを食うようになる場合は例外を発生させるようにしています。黙って INFINITY を返されてもあまり嬉しくないということになったようです。 [ruby-core:119602] [Feature #20811]

[c348a4fd7a] Yusuke Endoh 2024-11-08 06:46:12 UTC

45cd4a8296814f3b082dfb906cdef29974726731 の続きで Integer#** で大きすぎるので例外を発生させる時にオーバーフロー検出のチェックを追加しています。 [ruby-core:119602] [Feature #20811]

[fde6d189b2] Yusuke Endoh 2024-11-08 11:53:21 UTC

Integer#** のテストで大きすぎて時間がかかるテストケースの値を緩和しています。 [ruby-core:119602] [Feature #20811]