今日は主に複数 Ractor 対応や拡張ライブラリ socket の timeout の指定の解釈の変更などがありました。
[f133ebb2db] Stan Lo 2025-12-18 16:12:47 UTC
gems/bundled_gems と NEWS の bundled gems のバージョンリストの rdoc のバージョンを 7.0.1 に更新しています。 また .rdoc_options から generator_name の指定を削除しています。 https://github.com/ruby/ruby/pull/15628
[bfd28d581c] Luke Gruber 2025-12-18 17:37:27 UTC
rb_singleton_class() で必要に応じてロック取得することで複数 Ractor 対応しています。 https://github.com/ruby/ruby/pull/15591
[0e719239c2] Jean Boussier 2025-12-18 08:47:26 UTC
構造体 rb_mutex_t で Thread への参照を VALUE でオブジェクト経由で持ってたのを rb_thread_t* を直接持つように変更しています。効率のため?
[74bfb1606d] Luke Gruber 2025-12-18 18:51:33 UTC
encoded_iseq_trace_instrument() の先頭の ASSERT_vm_locking() を削除しています。既に VM lock なしで呼んでも良くなっていたみたいです。 https://github.com/ruby/ruby/pull/15616
[28c2a5b2a4] John Hawthorn 2025-12-18 04:21:17 UTC
YJIT/ZJIT 利用時に複数 Ractor を利用するとたまに assertion にひっかかって異常終了していた不具合の修正。 vm_make_env_each() で JIT 向けにマシンスタックの EP をヒープに移動させる時に JIT コードの invalidate をする処理を早めに呼ぶようにしています。複数 Ractor 利用している時に VM ロックが必要になって想定しないタイミングで GC が走る可能性があって異常終了に繋がっていたみたいです。
[57c4cd9a47] Jean Boussier 2025-12-17 08:22:54 UTC
thread_sync.c の Thread::Queue, Thread::SizedQueue の pop の実装で引数に rb_execution_context_t を渡すようにして GET_EC() の呼び出しをしないようにしています。
[bbc684d830] Jean Boussier 2025-12-18 08:11:53 UTC
thread_sync.c の check_array() という関数を static 関数にしています。また実装も NULL チェックのみにしています。
[8cf4f373ff] Jean Boussier 2025-12-18 08:35:44 UTC
Thread::SizedQueue の T_TYPEDDATA としての型情報の定義 szqueue_data_type で親クラスとして Thread::Queue の queue_data_type を指定するようにして、継承により不要になったメソッド定義を削除しています。いいと思うけど今やらなくてもという気も。
[fb1dd92d30] Jean Boussier 2025-12-18 19:17:45 UTC
mutex_trylock() という関数名が Solaris でシステム関数? と衝突しているみたいで do_mutex_trylock() と改名しています。 [ruby-core:124305] [Bug #21793]
[a7eb1879ad] Luke Gruber 2025-12-18 20:08:36 UTC
Ractor 関係の rdoc 用コメントの修正。 https://github.com/ruby/ruby/pull/15584
[aace29d485] Luke Gruber 2025-12-18 20:42:49 UTC
T_TYPEDDATA 型オブジェクトの定義に渡す memsize 用関数でポインタの NULL チェックを全体的に追加しています。 https://github.com/ruby/ruby/pull/15633
[63b082cf0e] John Hawthorn 2025-12-17 20:12:17 UTC
rb_execution_context_t 構造体に ractor_id メンバーを直接持つように効率化しています。
[345ea0c8e1] John Hawthorn 2025-12-17 20:08:43 UTC
YJIT で Module#define_method にブロックを渡したメソッドを Ractor 利用時にも対応するようにしています。Proc オブジェクトが Ractor shareable であればサポートするようにしています。またそうでなくても Ractor の通し番号である ractor_id を生成したコードと一緒に保存しておいて同じ Ractor からの呼び出しであれば JIT コードを利用するようにしています。なるほど〜。
[b1c3060bed] John Hawthorn 2025-12-18 20:31:07 UTC
345ea0c8e18d3ce8fed332137d225769df619f2b の続きの YJIT の Rsut コードの修正。
[73e930f9f9] John Hawthorn 2025-12-18 20:31:34 UTC
YJIT および ZJIT の C binding で rb_execution_context_t 構造体の各メンバーのオフセットを定数として定義しておくようにしています。
[d0b72429a9] Aaron Patterson 2025-12-16 17:10:45 UTC
Array#pack や String#unpack の指示子に 128 bits の little endian の数値を示す文字 R/r を追加しています。 [ruby-core:124258] [Feature #21785]
[99b915944f] BurdetteLamar 2025-12-16 23:21:14 UTC
doc/string/ 配下のドキュメントのサンプルで使っているキリル文字? のアルファベットと似てる文字を使ってたところをより見分けがつきやすい文字を使うように変更しています。
[3c6a6afa1c] John Hawthorn 2025-12-18 23:33:34 UTC
Ractor 配下の例外クラスの rdoc 用コメントの説明を簡潔にしています。
[535233c68c] John Hawthorn 2025-12-18 23:48:29 UTC
Ractor.shareable? や Ractor::Port の rdoc 用コメントの手直し。
[805f53a9b1] John Hawthorn 2025-12-17 00:13:44 UTC
NEWS の文法修正やリンク用 footnote の追加。
[084b916a5b] John Hawthorn 2025-12-17 00:10:11 UTC
NEWS の Class#new の最適化についての追記や文法の修正、typo の修正など。
[b14f2f0116] Burdette Lamar 2025-12-19 00:21:00 UTC
Integer#<, Float#<, Rational#<, Complex#< などの rdoc 用コメントをまとめて手直し。
[0c4fcdff32] John Hawthorn 2025-12-18 23:48:06 UTC
Ractor.select の無引数の時の例外メッセージを修正しています。
[d9b03c9369] Benoit Daloze 2025-12-16 14:39:00 UTC
prism のテストで例外のメッセージもチェックする assertion の追加。
[76248400b7] Earlopain 2025-12-17 09:47:43 UTC
標準添付ライブラリ prism に ruby のバージョンとして 4.1 を受け付ける準備をしています。
[e2c886dd66] Earlopain 2025-12-01 20:13:25 UTC
prism である種の不正なブロック引数の書きかたを SyntaxError にする修正。 https://github.com/ruby/prism/pull/3669
[5c0c0dd873] Kevin Newton 2025-12-18 15:10:13 UTC
prism のバージョンを 1.7.0 に更新しています。
[fec5363ba6] git 2025-12-19 00:59:55 UTC
NEWS の default gems のバージョンリストの prism のバージョンも更新しています。
[68a900e30b] Aaron Patterson 2025-12-19 01:03:15 UTC
NEWS に d0b72429a93e54f1f956b4aedfc25c57dc7001aa での Array#pack, String#unpack の指示子追加について追記しています。
[81ad407475] Soutaro Matsumoto 2025-12-19 02:43:58 UTC
gems/bundled_gems の minitest のバージョンを 6.0.0 に更新しています。 https://github.com/ruby/ruby/pull/15643
[b90d3a6bee] git 2025-12-19 02:44:57 UTC
gems/bundled_gems の net-imap と debug のバージョンを更新しています。また NEWS の bundled gems のバージョンリストの minitest、net-imap、debug のバージョンも更新しています。
[305f042105] Yusuke Endoh 2025-12-19 01:26:59 UTC
NEWS のエントリの辞書順に並べかえ。
[42d66b894c] Misaki Shioi 2025-12-19 03:12:12 UTC
拡張ライブラリ socket の Socket.tcp などで resolv_timeout をチェックすべきところで誤って open_timeout をチェックしてしまっていた箇所を修正しています。 https://github.com/ruby/ruby/pull/15626
[bfba65d8c1] Nobuyoshi Nakada 2025-12-19 00:26:23 UTC
make の jobserver に対応するための処理を tool/lib/test/jobserver.rb というファイルに Test::JobServer モジュールとして切り出しています。
[6f6ea70dce] Nobuyoshi Nakada 2025-12-19 00:47:22 UTC
rubyspec の jobserver 対応のコードで fd から不要に IO.for_fd で IO オブジェクトを生成していたのをやめています。
[f81c62be3d] yui-knk 2025-12-19 02:46:58 UTC
parse.y のセミコロンが抜けていたのを修正。
[47244b0f30] Misaki Shioi 2025-12-19 06:44:35 UTC
拡張ライブラリ socket の各種 timeout のオプションに 0 を指定した時の解釈をタイムアウトなしではなくすぐにタイムアウトするという指定に統一? しています。 https://github.com/ruby/ruby/pull/15641
[8efaf5e6b6] Hiroshi SHIBATA 2025-12-19 06:54:02 UTC
NEWS に RubyGems と bundler の更新についてのセクション(といってもリンク集になってますが)を追加しています。
[7b19f1a1ef] Nobuyoshi Nakada 2025-12-19 05:24:33 UTC
bundled gems の rbs のテストの実行除外指定に Ractor 関係のテストクラスを 2つ追加しています。 Windows で固まってしまうとのこと。
[f0472f2d49] Nobuyoshi Nakada 2025-12-19 08:16:15 UTC
d0b72429a93e54f1f956b4aedfc25c57dc7001aa で追加した Array#pack と String#unpack の新しい指示子について doc/language/packed_data.rdoc にも追記しています。 [ruby-core:124258] [Feature #21785]
[dd2f7d6ae6] Nobuyoshi Nakada 2025-12-19 04:51:27 UTC
open(2) に渡すビットフラグ定数 O_CLOEXEC が定義されない環境のための対応を追加しています。 [ruby-core:124307] [Bug #21794]
[9ee2243bed] Sharon Rosner 2025-12-19 10:58:26 UTC
non-blocking Fiber 利用時に IO#flush を呼び出した時に Scheduler の io_write コールバックが呼ばれていなかった不具合を修正しています。 https://github.com/ruby/ruby/pull/15609
[e23a918a71] Sharon Rosner 2025-12-19 11:02:57 UTC
NEWS に non-blocking Fiber 用の Scheduler のコールバック追加や IO#flush のフック呼び出しの修正についてなどを追記しています。 https://github.com/ruby/ruby/pull/15629