以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250513より取得しました。


ruby-trunk-changes 2025-05-13

今日は主に IO#close 時の Thread 間の待ち受け処理の実装の変更、拡張ライブラリ psych や stringio の更新、拡張ライブラリ jsonJSON::ParseError のメッセージの強化などがありました。

[311b9352a1] Nobuyoshi Nakada 2024-09-18 17:41:21 UTC

標準添付ライブラリ erb の rdoc 用コメントの追加やコメントのフォーマット調節してドキュメント化されていなかったものを直しています。

[bc6d48bd34] Burdette Lamar 2025-05-12 14:16:37 UTC

String#+@ の rdoc 用コメントに freeze に関するセクションへのリンクを追加しています。 https://github.com/ruby/ruby/pull/13285

[85d9ebc995] Peter Zhu 2025-05-07 15:52:40 UTC

gc.c の重複した asan_unpoisoning_object() マクロの定義を削除しています。

[64944cf422] Nobuyoshi Nakada 2025-05-12 15:07:56 UTC

bc6d48bd34db9b8d6ffea2bb9f702c15c79be106 の String#+@ の rdoc 用コメント修正で余計な文字が入ってしまっていたのを修正。

[0b6cee7329] Takashi Kokubun 2025-05-12 15:57:15 UTC

ZJIT の size_exit する時の命令の生成の修正。コメントによると不要な nop が追加されるのを抑制しているようです。 https://github.com/ruby/ruby/pull/13295

[53a27f114a] Takashi Kokubun 2025-05-12 16:03:46 UTC

YJIT でコードのブロックへの分割が不足していたところを修正しているようです。 https://github.com/ruby/ruby/pull/13282

[0c94ae048a] Earlopain 2025-05-12 15:51:05 UTC

拡張ライブラリ psych で T_DATA 型オブジェクト、というか Data クラスが今の Struct みたいな Data じゃなくて昔の拡張ライブラリでビルドする一般オブジェクトの親クラスとして存在してた Data クラスの場合に Data クラスの対応をしないようにしています。うーん? 結局古い ruby で古い Data で dump したものがロードできなくなるのでは?

[957473d87f] Aaron Patterson 2025-05-12 16:21:27 UTC

拡張ライブラリ psych のバージョンを 5.2.6 に更新しています。

[03a7f1ff08] git 2025-05-12 16:22:47 UTC

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

[c6528548d0] Nobuyoshi Nakada 2025-05-12 11:26:49 UTC

標準添付ライブラリ erb の gemspec ファイルで cgi への依存関係を削除しています。が require "cgi/escape" の LoadError の捕捉を消しているのはいいのかな?

[b0502e8f90] John Hawthorn 2025-04-15 01:02:12 UTC

Class.allocate および Class#allocate の C 実装で rb_obj_respond_to() で allocate メソッドが呼べるかチェックしていた(なぜ?)のを削除しています。テストの変更をみると Class#allcate を UnboundMethod として取り出してクラスを渡して bind_call した時に TypeError にしていたのをやめるようにしているようです。この元のチェックはなんだろう。

[b758b6f204] Nobuyoshi Nakada 2025-05-13 00:05:08 UTC

namespace.c にコンパイラの最適化による GC の mark 漏れを防ぐための RB_GC_GUARD() を追加しています。

[203199251f] Jeremy Evans 2025-05-03 07:16:16 UTC

組み込みクラスの Set#to_h メソッドの定義を削除しています。Enumerable#to_h にまかせるようにしています。ブロックを受け取れなくなってたのが互換性の問題があったようです。

[9b8c846bdf] John Hawthorn 2025-05-13 01:22:39 UTC

Module#=== のベンチマークにテストケースを追加しています。

[18d395e078] Jeremy Evans 2025-04-15 01:51:59 UTC

拡張ライブラリ stringio に chilled String が渡された時に警告抑制するため Encoding の設定をスキップするようにしています。

[5e59ae186f] Jeremy Evans 2025-04-15 02:18:49 UTC

18d395e0784401585b5c14300e689de55e208647 の拡張ライブラリ stringio の変更で chilled String の存在チェックのため RUBY_API_VERSION_MINOR をチェックしている preprocessor 分岐で ruby 4.0 以降も考慮するようにしています。

[a93d9fdcd2] Takashi Kokubun 2025-05-13 04:10:03 UTC

拡張ライブラリ stringio の depend ファイルの更新。

[8f008598c3] Jean Boussier 2025-05-12 11:06:05 UTC

拡張ライブラリ json の parse 処理の関数名の変更や構造体宣言の位置の移動など。リファクタリング?

[50ef208369] Jean Boussier 2025-05-12 11:34:13 UTC

拡張ライブラリ jsonJSON::ParserError に line と column という属性を持たせてメッセージにもこれらの位置情報を埋め込むようにしています。

[73d0bd5e90] Jean Boussier 2025-05-12 12:31:12 UTC

拡張ライブラリ json のバージョンを 2.12.0 に更新しています。

[8cc1aa82f1] Jean Boussier 2025-05-12 12:35:55 UTC

拡張ライブラリ json の例外メッセージのクオート記号の漏れを修正。

[cd7495a1d0] Jean Boussier 2025-05-12 13:41:12 UTC

拡張ライブラリ jsonJSON::ParseError でエラー箇所が末尾だった時にその部分を明示するのに空文字列のかわりに EOF と表示するようにしています。

[c40557099d] git 2025-05-13 05:13:24 UTC

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

[4d9a1d5b6f] Hiroshi SHIBATA 2025-05-13 04:29:16 UTC

rubygems、bundler や prism, net/http などの標準添付ライブラリで require "cgi/escape" を CGI::EscapeExt が未定義の時だけ行うようにしています。ruby 2.3 以降で require "cgi/escape" は実行可能な状態になってたそうなのでサポートされている全てのバージョンで require 可能だったみたいです。

[e46fbe624a] Hiroshi SHIBATA 2025-05-13 05:35:03 UTC

rubygems で Gem::SafeYAML の定義時に psych を require していたのが冗長なので削除しています。

[fa2414f29a] Kazuhiro NISHIYAMA 2025-05-13 07:00:42 UTC

Namespace の利用時の experimental カテゴリの警告メッセージの typo 修正。

[a6435befa7] Jean Boussier 2025-05-12 09:02:17 UTC

Object Shapes で object_id 用のエントリが含まれている時の shape を得る関数で rb_shape_t を直接返さずに shape_id_t を返すように変更しています。また rb_obj_field_get() や general_field_set() なども shape_id_t で shape を指定させるように引数を変更しています。

[425fa0aeb5] Samuel Williams 2025-05-13 10:02:03 UTC

rb_thread_fd_close() という C API を deprecated として中身をからっぽの実装にしています。また IO#close 時にバッファのフラッシュなどの block しうる処理を行うため rb_vm_t::waiting_fds というリンクリストに登録して GVL を解放して待ち処理を行うため VM 全体の lock 取得を行う必要があり、IO#close が遅くなっていたという問題があったようで、これを解消するため waiting_fds での管理はやめて、構造体 rb_io で blocking_operations というリストで読み書き(blocking している)処理のリストと close している Thread の rb_execution_context_t を保持してオブジェクト単位で同期処理というか待ち受け処理を行うようにしています。 https://github.com/ruby/ruby/pull/13127 [ruby-core:106939] [Bug #18455]

[5974841d11] Jean Boussier 2025-05-13 10:01:50 UTC

struct RBasic::flags のビットフラグ用の定数 FL_SEEN_OBJ_ID が object_id の Object Shapes による管理により不要になっていたので削除しています。

[7517d7629d] Kazuhiro NISHIYAMA 2025-05-13 10:28:56 UTC

NEWS のチケット参照のリンクのための footer の追加と順番の調整。

[c941fced21] lukeg 2023-01-22 14:42:14 UTC

子 Ractor から Ractor.main の Ractor local storage の操作をするとその Ractor 自身の storage が変更される(まあ main Ractor のを変更できてしまうのもおかしいのですが)ので、自身の Ractor 以外の Ractor に対して [] や []= が呼ばれた時に RuntimeError 例外を発生させるようにしています。そもそもインスタンスメソッドのほうは obsoleted とコメントされていてクラスメソッドのほうを使うのが推奨みたいですね。 [ruby-core:111967] [Bug #19367]




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250513より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14