ruby-trunk-changes 2025-11-01

今日は主に拡張ライブラリ jsonSIMD 命令を利用した最適化や潜在的メモリリーク修正などがありました。

[961683bcb1] Satoshi Tagomori 2025-10-31 11:06:33 UTC

static link された拡張ライブラリの Init_xxx() 関数を require した Namespace 内で実行するようにしています。通常の(共有ライブラリの)拡張ライブラリの時はファイル自体にコピーを Namespace ごとに作るようですが static link されている時は Init_xxx() を複数回呼ぶことになるのかな?

[65168b7eaf] Satoshi Tagomori 2025-10-31 11:07:28 UTC

デバッグビルド時にのみ定義する Namespace.root, Namespace.main などのデバッグ用メソッドの定義を制御する preprocessor 分岐の条件で RUBY_DEBUG が 0 で定義されてた時はデバッグビルド扱いにしないように修正しています。

[6bdb2027f6] Kazuki Yamaguchi 2025-10-31 14:52:23 UTC

拡張ライブラリ jsonエンコード時に例外以外の大域脱出(throw-catch など)で抜けるとメモリリークする不具合を修正しています。rb_rescue() で後始末をしていましたが rb_ensure() を使うように修正しています。

[980e18496e] Takashi Kokubun 2025-10-31 18:08:13 UTC

65168b7eafd30fd3958d71761fa155bba00cdec5 と同様に namespace.c のデバッグビルド判定の preprocessor 分岐の条件をもう一箇所修正しています。

[ab01fcc512] Takashi Kokubun 2025-10-31 19:47:55 UTC

ZJIT の Rust 実装で panic 時に低レベル中間表現 LIR のダンプをする処理の表示する行数を減らして、出力先を標準出力から標準エラー出力に変更しています。 https://github.com/ruby/ruby/pull/15019

[7688b05098] Max Bernstein 2025-10-31 19:48:59 UTC

ZJIT で alias で作られたメソッドの呼び出しを最適化対象から外していたのを VM_METHOD_TYPE_ALIAS のメソッドはメソッドの実体まで辿る探索を行なってそれを元に最適化可否を判定するようにしています。 https://github.com/ruby/ruby/pull/15018

[4fc9ad5264] John Hawthorn 2025-10-31 15:51:03 UTC

vm_insnhelper.c の vm_populate_cc() でどちらを通っても結果が同じなので不要だった分岐を削除しています。

[b931199d45] John Hawthorn 2025-10-31 15:08:57 UTC

vm_insnhelper.c の vm_populate_cc() 内でメソッドがみつからなかった時の不要な call cache の複製を抑制するため処理順序を入れ替えています。

[8db30094fc] Alan Wu 2025-10-31 22:58:21 UTC

ZJIT の BasicObject#!= の annotation から no_gc, leaf, elidable といった属性を削除しています。実際には BasicObject#!= の実装は "==" メソッドを rb_funcall() で呼び出してからそれを否定するというものだったため、メソッド呼び出し機構で任意の ruby コード実行が行なわれる可能性があるので最適化できなかったためということみたいです。

[17a7b4e031] Sam Westerman 2025-11-01 00:18:01 UTC

Hash#compare_by_identity の rdoc 用コメントの typo 修正。

[8c1900528b] git 2025-11-01 06:50:27 UTC

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

[6e2e7a3355] Jean Boussier 2025-11-01 08:24:18 UTC

拡張ライブラリ json の実装で関数を切り出すリファクタリングです。

[a6bdf52bc9] Jean Boussier 2025-11-01 08:42:24 UTC

6e2e7a335546275edf15a1617663d5a1c03c6188 の続きで拡張ライブラリ json の数値の parse 処理の実装でさらに関数の切り出しをするリファクタリング

[b3d5c96613] Jean Boussier 2025-11-01 09:27:15 UTC

拡張ライブラリ json の実装で peek() や eos() といったヘルパー関数を切り出すリファクタリング

[1942cb219a] Jean Boussier 2025-10-31 07:31:11 UTC

拡張ライブラリ json のテストに Bignum になるような大きな整数の parse のテストを追加しています。

[bca8fce78f] Jean Boussier 2025-11-01 09:54:03 UTC

拡張ライブラリ json の実装で JSON_ParserState の残りの文字列バッファサイズを返す rest() 関数を切り出すリファクタリング

[5ce27bef01] Nobuyoshi Nakada 2025-11-01 04:47:59 UTC

defs/gmake.mk で make bump_news というターゲットで NEWS.md を doc/NEWS/NEWS-x.y.0.md に移動して NEWS.md を空にする処理を追加して make matz で NEWS の更新も行なうようにしています。

[db57080450] Nobuyoshi Nakada 2025-11-01 10:10:19 UTC

defs/gmake.mk の make matz のターゲットに使いかたのコメントを追加しています。

[babf50e33b] Jean Boussier 2025-11-01 10:06:32 UTC

拡張ライブラリ jsonjson_parse_digits() に CPU が little endian の時に SWAR という SIMD 命令を利用した実装を使って最適化しています。 SWAR って福岡 Rubyist 会議 04 で Matz が mruby の実装に試したという話をされてましたね。

[33a026fedd] Benoit Daloze 2025-11-01 10:38:16 UTC

Ractor.make_shareable で Proc を変換するテストで self が sharable な場合に成功することもテストするようにしています。

[94287b1e18] Benoit Daloze 2025-11-01 10:41:23 UTC

33a026fedd43fa5472937e77834397742fed6180 の続きで Ractor.make_sharable に Proc オブジェクトを渡して Ractor::Error が発生した時のメッセージまでチェックするようにしています。

[ed7229eac8] Jean Boussier 2025-11-01 11:15:04 UTC

拡張ライブラリ jsonbabf50e33bb0d9e1f3c37d11c1cfdc50c4f5bc7e に続いて parse 時の空白をスキップする処理にも SWAR という SIMD 命令を利用する実装による最適化を追加しています。

[a97f4c627f] Jean Boussier 2025-11-01 12:05:18 UTC

6e2e7a335546275edf15a1617663d5a1c03c6188 の拡張ライブラリ jsonリファクタリングで切り出した関数で条件式の演算子の優先度についてのコンパイラ警告抑制のため明示的なかっこを追加しています。

ruby-trunk-changes 2025-10-31

今日は各種 default gems になっている標準添付ライブラリ/拡張ライブラリのバージョン更新や正規表現エンジン Onigmo の upstream から不具合修正や最適化を取り込む変更、M:N Thread でのパフォーマンス改善などがありました。

[a88c5558fe] Nobuyoshi Nakada 2025-10-30 12:28:09 UTC

拡張ライブラリ json の depend ファイルを更新しています。

[f6c2a63845] Nobuyoshi Nakada 2025-10-30 12:34:46 UTC

GitHub Actions の C のソースコードに非 ASCII 文字が含まれてないかチェックするジョブで vendoring されているファイルを除外するため vendor/ というディレクトリの下は走査しないようにしています。

[d5fbff50c7] Nobuyoshi Nakada 2025-10-30 12:47:12 UTC

LEGAL ファイルに 3ca4321680faea98b30fb41d5b18c21b74e1261c で拡張ライブラリ json に vendoring された ryu float parser のライセンスについて追記しています。

[99382f7461] Earlopain 2025-10-27 10:24:45 UTC

prism 利用時に単項演算子メソッドを "." を使って呼ぶ記法がうまく parse できていなかった不具合を修正しています。そういえばこういうことできたな。 https://github.com/ruby/prism/pull/2213

[8e7d427a72] Kevin Newton 2025-10-26 20:16:41 UTC

prism の等号記号のノードに位置情報を持たせる修正。

[244a37bd53] Andre Muta 2025-10-24 18:04:04 UTC

Ractor 内の Kernel#eval で Ractor の外のスコープの変数を参照した時に SyntaxError になるべきなのになっていなかった不具合を修正しています。 [ruby-core:122883] [Bug #21522]

[481f994449] Nobuyoshi Nakada 2025-10-30 10:54:31 UTC

rubyspec のテストで Kernel#open などに先頭が "|" ではじまる文字列を渡してコマンドを起動する記法をテストしているところを 4.0 以前でのみ実施するように version guard を追加しています。 [ruby-core:113407] [Feature #19630]

[57f76f62d5] Max Bernstein 2025-10-30 17:30:08 UTC

ZJIT の型推論の不具合の workaround で Kernel#class メソッドが返す型を Class と指定していたのを一時的に? やめています。 https://github.com/ruby/ruby/pull/15001

[9b1894690f] Takashi Kokubun 2025-10-30 17:44:35 UTC

.github/workflows/zjit-ubuntu.yml の空行削除。

[6707945f0c] Max Bernstein 2025-10-30 19:15:09 UTC

ZJIT の統計情報の出力に最適化されなかったメソッド呼び出しをそのメソッド定義の種類別のカウントを行うようにしています。 https://github.com/ruby/ruby/pull/15002

[0531fa4d6f] Andre Muta 2025-10-30 03:55:40 UTC

M:N Thread 利用時に処理待ちのイベントを登録した時に timer thread を wakeup するのに pipe にトークンを送信して強制的に起こすようにしています。 M:N Thread 利用時のパフォーマンス劣化があったっぽいです。

[34b0ac68b3] Aiden Fox Ivey 2025-10-30 20:47:22 UTC

ZJIT で splat 引数を使ったメソッド呼び出しで side-exit が発生するのを避けるため最初からあきらめて通常のメソッド呼び出し機構を使うようにしているようです。 https://github.com/ruby/ruby/pull/15005

[2afcdc6902] Luke Gruber 2025-10-30 21:14:36 UTC

内部的に利用している concurrent_set 構造体の要素挿入時に拡張を行うかどうかのしきいちを引き上げています。最適化のためですかね。 https://github.com/ruby/ruby/pull/15007

[68dd1abdec] Takashi Kokubun 2025-10-30 22:02:05 UTC

GitHub Actions の ZJIT 有効化する workflow でベンチマーク実行のジョブを追加しています。 https://github.com/ruby/ruby/pull/15003

[5b71b103b6] Alan Wu 2025-10-29 01:23:02 UTC

ZJIT の統計情報でメソッドの最適化されない理由の分類をさらに細かく? 強化しているようです。

[69ec1481e0] Alan Wu 2025-10-29 01:53:16 UTC

同じく ZJIT の統計情報でメソッド呼び出しが最適化されない理由を呼び出し方に起因する理由で詳しく出力するようにしているようです。

[c54faf29d3] Takashi Kokubun 2025-10-30 22:20:27 UTC

GitHub Actions のリリース作業用の workflow で Docker イメージのビルドの GitHub Actions を起動するためのステップで呼び出す workflow の指定をパスでより明確にするようにしています。リポジトリだけ指定して起動することもできるんですね。

[0268c86b22] Max Bernstein 2025-10-30 20:15:10 UTC

ZJIT で Struct の属性を参照するメソッドの呼び出しをインライン化する最適化を実装しています。

[f8b4feb7f0] Max Bernstein 2025-10-30 20:46:30 UTC

ZJIT でインスタンス変数の参照に 0268c86b22385c354e063d19c753065ca09c9180 の最適化で追加した中間表現 HIR の LoadField という命令を利用するようにリファクタリングしています。

[a4c3361587] Peter Zhu 2025-10-29 00:29:50 UTC

GC の mmtk 実装のための Cargo.toml と Cargo.lock を更新して mmtk-core のバージョンを新しくしています。

[94e6d76714] Hiroshi SHIBATA 2025-10-31 00:13:46 UTC

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

[17e95cb471] git 2025-10-31 00:15:20 UTC

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

[2486e771b6] Hiroshi SHIBATA 2025-10-31 00:50:33 UTC

tool/sync_default_gems.rb の --help のメッセージに書かれてなかった使いかたを追記しています。

[240962dffa] Hiroshi SHIBATA 2025-10-31 01:27:22 UTC

標準添付ライブラリ uri の VERSION 定数と VERSION_CODE 定数の指定のしかたを変更しています。元は VERSION_CODE を代入してここから VERSION を構築していましたが逆に VERISON を代入してそこから VERSION_CODE を整形するようにしています。

[08e822ba79] vivshaw 2025-06-19 02:10:24 UTC

標準添付ライブラリ uri の rdoc 用コメントの手直し。

[1dce0ae55a] "yuuji.yaginuma" 2025-04-13 22:55:39 UTC

標準添付ライブラリ uriURI::DEFAULT_PARSER という定数を参照するのをやめて URI.parser= で parser を入れ替えた時に URI::PARSER 定数を設定しなおしてこの定数を参照するようにしています。これ multi thread で remove_const して const_set する瞬間にエラーになるタイミングができたりしないかな。

[f0993de1c2] sodacris 2024-11-12 01:03:08 UTC

標準添付ライブラリ uri の例外メッセージの改善。

[d2ffab11ce] Hiroshi SHIBATA 2025-10-31 01:47:40 UTC

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

[78966ae667] git 2025-10-31 01:50:29 UTC

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

[8b1fd559b8] Hiroshi SHIBATA 2025-10-31 02:27:05 UTC

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

[5b2707f39b] git 2025-10-31 02:30:05 UTC

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

[2eae704938] Hiroshi SHIBATA 2025-10-31 03:05:15 UTC

標準添付ライブラリ optparse のバージョンを保持する定数名を他とそろうように OptionParser::VERSION に変更しています。古い名前も互換性のために残しています。

[9facc6e960] Hiroshi SHIBATA 2025-10-31 03:20:46 UTC

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

[5fbc0bcf5f] git 2025-10-31 03:22:55 UTC

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

[d3d6f19eb5] Hiroshi SHIBATA 2025-10-31 03:20:14 UTC

標準添付ライブラリ optparse のバージョンをさらに 0.8.0 に更新しています。あやまってリリースしてしまったもので 0.7.0 から変更はないそうです。

[d5c0558592] git 2025-10-31 03:35:05 UTC

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

[0044bac4de] Hiroshi SHIBATA 2025-10-31 04:34:23 UTC

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

[8b88e7f838] git 2025-10-31 04:36:25 UTC

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

[3941164c63] Hiroshi SHIBATA 2025-10-31 04:44:53 UTC

拡張ライブラリ win32 の win32-registry のバージョンを 0.1.1 に更新しています。

[2b6dc5bf6f] git 2025-10-31 04:47:15 UTC

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

[307b625b59] Hiroshi SHIBATA 2025-10-31 04:53:42 UTC

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

[a6379032ee] git 2025-10-31 04:55:24 UTC

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

[981ee02c7c] "K.Takata" 2017-11-21 11:30:00 UTC

正規表現エンジンの Onigmo の upstream で正規表現の大文字小文字を無視するオプション利用時の最適化がうまく有効になっていない場合があった? のを修正した変更を取り込んでいます。

[bcea1129f4] "K.Takata" 2019-01-24 10:05:57 UTC

同じく正規表現エンジンで過去に最適化のために修正したけど効果がなかったという変更の revert を upstream から取り込んでいます。 https://github.com/k-takata/Onigmo/commit/cef834cb3a6e278fa252f52b704c65175a970ac0

[bfbbcf3455] "K.Takata" 2019-01-25 09:54:41 UTC

同じく正規表現エンジンの Oigmo およびその祖先の Oniguruma で look-behind を利用した正規表現で特定の条件でエラーが発生するという不具合の修正を取り込んでいます。 [ruby-core:81742] [Bug #13671]

[daf0d6c686] "K.Takata" 2019-01-25 09:56:31 UTC

正規表現エンジン Onigmo の upstream で C の lint ツールにより指摘の反映をした変更を取り込んでいます。

[54b963956b] "K.Takata" 2019-01-25 09:58:59 UTC

正規表現エンジン Onigmo で OnigCodePoint の変数の値が負になるような演算順序になってたのを修正しているのを取り込んでいます。 https://github.com/k-takata/Onigmo/pull/107

[a89246834d] "K.Takata" 2019-01-28 09:52:39 UTC

正規表現エンジン Onigmo の upstream から skip table の初期化タイミングの間違いで未初期化の状態のテーブルを使ってしまう可能性があった不具合を修正しています。 https://github.com/k-takata/Onigmo/pull/120

[ba74fcd6e1] "K.Takata" 2019-01-29 09:59:19 UTC

正規表現エンジン Onigmo の upstream から不要になったコードを削除する変更を取り込んでいます。

ruby-trunk-changes 2025-10-30

今日は String#encode の変換失敗時のメモリリークや Ractor sharable のチェックを厳密にした時の不具合の対策や拡張ライブラリ json浮動小数点数の parse の最適化などがありました。

[fcd7da15e6] Takashi Kokubun 2025-10-29 15:17:11 UTC

ZJIT のデバッグのために低レベル中間表現 LIR のダンプ機能を強化しています。 https://github.com/ruby/ruby/pull/14986

[eed9441afc] Takashi Kokubun 2025-10-29 18:24:49 UTC

GitHub Actions で Ubuntu の arm 環境での C-API チェックの実行をコメントアウトしています。

[8b289cde22] Takashi Kokubun 2025-10-29 20:06:41 UTC

ZJIT の LIR のダンプ機能の強化。

[397cb107b0] Takashi Kokubun 2025-10-29 20:39:07 UTC

ZJIT の LIR のダンプ機能の強化。

[16a7a22c5a] Takashi Kokubun 2025-10-29 21:58:58 UTC

ZJIT の LIR のダンプ時に不要なメモリコピーを抑制する最適化。

[534aeaef09] Takashi Kokubun 2025-10-29 21:58:27 UTC

ZJIT のデバッグビルド時に panic が起きると LIR のダンプをデフォルトで実行するようにしています。

[f2192cfde1] Takashi Kokubun 2025-10-29 22:26:15 UTC

ZJIT の Rust 実装の compile_side_exits という関数を compile_exits に改名しています。

[b8c82a99a0] Peter Zhu 2025-10-28 23:46:36 UTC

String#encode の変換できない時の fallback 呼び出し時のメモリリークを修正しています。

[750c75096d] Stan Lo 2025-10-30 00:35:35 UTC

doc/zjit.md に RubyVM スタック(control frame と値スタック)とマシンスタックの関係について追記しています。 https://github.com/ruby/ruby/pull/14993

[78e4a36fb1] Aaron Patterson 2025-10-29 19:37:07 UTC

標準添付ライブラリ error_highlight で ArgumentError の例外メッセージをチェックする正規表現を修正して複数の不正なキーワード引数が渡された時などのメッセージに正しく対処できるようにしています。

[02c9ffd16b] Takashi Kokubun 2025-10-30 00:28:01 UTC

ZJIT の LIR のダンプ機能にコメントを含む指定をデバッグビルド時にデフォルトで有効にするようにしています。

[80e2b06d39] Takashi Kokubun 2025-10-30 00:42:37 UTC

ZJIT の Rust 実装の panic 時に LIR をダンプする時の最大の行数を制限するようにしています。

[15f2dcceb4] Hiroshi SHIBATA 2025-10-30 00:36:11 UTC

拡張ライブラリ win32 の win32/resolv で require 'win32/registry' が失敗した時に捕捉する例外に Gem::LoadError も追加しています。 [ruby-core:123504] [Bug #21645]

[6b9b048a92] git 2025-10-30 06:53:30 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの rake と net-ftp のバージョンを更新/追記しています。

[8e4dc1099a] Koichi Sasada 2025-10-23 05:57:19 UTC

Ractor の作成時に rb_ractor_t::name に格納する文字列オブジェクトを Ractor sharable としてマークするようにしています。

[b09f782fee] Koichi Sasada 2025-10-23 05:57:50 UTC

Ractor オブジェクトが GC で mark される時に別の Ractor から受け取るオブジェクトの queue を mark する時に Ractor sharable のチェックを厳しく実行している時は sharable でないオブジェクトが queue に含まれているとエラーになってしまうので mark をスキップするようにしています。え、いいのかな?

[860bad854f] Koichi Sasada 2025-10-23 08:18:13 UTC

同様に rb_hook_list_t という構造体の GC mark 処理する rb_hook_list_mark_and_move() という関数でも Ractor sharable のチェックを厳密にする時に処理全体をスキップするようにしています。

[09e9247edc] Koichi Sasada 2025-10-24 07:58:41 UTC

Ractor 間でオブジェクトを移動する時にコピーを作成する処理で MatchData オブジェクトが参照する文字列オブジェクトの置換が漏れていたのを修正しています。

[b9188901c0] Koichi Sasada 2025-10-27 09:14:28 UTC

Ractor::Port クラスを Ractor sharable としてマークしています。

[a003903e62] Koichi Sasada 2025-10-30 06:31:50 UTC

複数 Ractor 利用時の require の処理のための内部的なデータが Ractor sharable でなくて問題があったのを終始しています。

[ef558ceaef] Koichi Sasada 2025-10-30 07:21:33 UTC

RubyVM::InstructionSequence の保持するオブジェクト参照を GC の mark 処理する時に Ractor sharable のチェックを厳密にしているとエラーになるみたいなのでスキップしています。

[3f230c7eb4] Koichi Sasada 2025-10-30 08:31:47 UTC

depend ファイルの依存関係を再生成しています。

[d1d85bb4b7] Orgad Shaneh 2025-09-09 09:10:22 UTC

標準添付ライブラリ win32 の win32/resolv で Windowsレジストリを読む時に誤った警告が出る不具合を修正しています。

[4b1279b6e9] Nobuyoshi Nakada 2025-10-30 01:52:20 UTC

defs/gmake.mk の make matz でバージョンアップするだけのターゲットで NEW という変数が指定されたらその変数からバージョン番号を指定するようにしています。たぶん次 4.0 に更新する時のため? 世界で matz しか使わなさそうなターゲットだけど。

[317f102cbb] Jean Boussier 2025-10-30 10:33:26 UTC

拡張ライブラリ jsonJSON エンコードする時の例外発生させる関数でエラーメッセージに常に UTF-8 の encoding を設定するようにしています。

[3ca4321680] Josef Šimánek 2025-10-26 20:09:06 UTC

拡張ライブラリ jsonJSON parse 時に浮動小数点数の解析に ryu float parser というサードパーティの? ライブラリを vendoring して使うようにしています。

ruby-trunk-changes 2025-10-29

今日は主にリリースを前にしての default gems のバージョン更新や IO#wait_readable などのメソッドが IO#ungetc と併用できるようにする修正、ZJIT の最適化などがありました。

[b0825d78f3] Hiroshi SHIBATA 2025-10-28 11:27:53 UTC

tool/rbinstall.rb で rubygems の削除された Gem::Installer#install_with_default_gem に依存しているところがあったので独自に実装するようにしています。

[3624031bb5] Max Bernstein 2025-10-25 01:19:40 UTC

ZJIT で Kernel#nil? および NilClass#nil? を定数としてインライン展開する最適化を追加しています。

[7425520415] Max Bernstein 2025-10-25 01:22:53 UTC

ZJIT の最適化のためのメソッドの annotation で String#to_s の型 annotation が重複していた? ので削除しています。

[2a6e5d7d94] Max Bernstein 2025-10-25 01:29:15 UTC

ZJIT の Rust 実装で annotation で型の指定とインライン化のための指定を同時にできるようにしています。

[e973baa837] Max Bernstein 2025-10-25 02:06:20 UTC

ZJIT で BasicObject#== のインライン化のための annotation を追加して、関数呼び出しではなくて直接実行コード生成するように最適化しています。

[c2bef01b66] Max Bernstein 2025-10-25 02:07:04 UTC

ZJIT で Kernel#=== メソッドも直接実行コードを生成するように最適化を実装しています。

[2e2f31c836] Max Bernstein 2025-10-25 02:33:57 UTC

ZJIT で BasicObject#!= メソッドのインライン最適化を実装しています。

[7a736545e9] Aiden Fox Ivey 2025-10-28 15:44:25 UTC

ZJIT で Array#pop メソッドで直接 rb_ary_pop() を呼び出す最適化を実装しています。 https://github.com/Shopify/ruby/issues/814 https://github.com/ruby/ruby/pull/14933

[ec1b9bbd58] Takashi Kokubun 2025-10-28 16:24:04 UTC

7a736545e948ec481ba2b2c46d78470194b624ba で追加した ZJIT のテストで profiling による影響を確認するため? Array#pop を含むメソッドを 2回呼ぶようにしています。

[b66c57be18] Takashi Kokubun 2025-10-28 08:51:56 UTC

ZJIT の x86_64 向けコード生成で不正なオペランドでエラーを発生させる時にエラーメッセージにオペランドの内容を埋め込むようにしています。

[9b3df50d90] Takashi Kokubun 2025-10-28 08:53:32 UTC

ZJIT の Rust 実装で ALLOC_REGS の要素が奇数個だと異常終了してたのを許容するようにしています。

[b463c1a904] Takashi Kokubun 2025-10-28 09:00:33 UTC

ZJIT でメソッド呼び出し時にレジスタをマシンスタックに退避する最適化を実装するための準備として gen_push_opnds() 関数でスタック上のオフセットを決定するのをやめています。

[2c90da465a] Max Bernstein 2025-10-28 14:36:37 UTC

ZJIT で --zjit-stats で表示する統計情報カウンタに型に関する guard にひっかかった回数のカウンタを追加しています。

[a9d42f7c4b] Max Bernstein 2025-10-28 17:04:37 UTC

2c90da465a7ff601007b324f5ab4959ef6277a89 で追加した ZJIT の統計情報の guard_type_count の表示対応。

[882e167768] Andrew Konchin 2025-10-28 15:25:50 UTC

spec/ruby に upstream から最新版をマージしています。

[599de290a0] Takashi Kokubun 2025-10-28 20:14:47 UTC

YJIT と ZJIT の Rust 実装の小さな修正。

[d0c7234bc7] Takashi Kokubun 2025-10-28 20:18:05 UTC

ZJIT の低レイヤの中間表現 LIR の ParallelMov という命令の書き込み先としてメモリをサポートする拡張をしています。 https://github.com/ruby/ruby/pull/14975

[afb0d43181] Takashi Kokubun 2025-10-28 20:47:15 UTC

GitHub Actions で ZJIT を有効にしたテストの実行時に --seed オプションを指定して再現性を保つようにしていたのを削除しています。 https://github.com/ruby/ruby/pull/14976

[5a14999d0d] "dependabot[bot]" 2025-10-28 12:21:26 UTC

GitHub Actions の workflows で利用している actions/upload-artifact のバージョンを更新しています。

[8dc276f3e1] "dependabot[bot]" 2025-10-28 12:21:57 UTC

Windows 版でビルドのために vcpkg でサードパーティーライブラリをインストールするための vcpkg.json で vcpkg のバージョン指定の commit hash を更新しています。

[d6d095e2fc] Takashi Kokubun 2025-10-28 23:06:38 UTC

ZJIT の Rust 実装の定数名の改名するリファクタリング

[4925bec65d] Peter Zhu 2025-10-26 19:23:05 UTC

String#encode のコールバックで例外が発生した時のメモリリークについてのテストで呼び出すコールバックメソッドを引数を受け取るように定義しなおしています。テストには支障なかったかもしれないですが意図と違う例外が発生していたみたいです。

[9f4a76ff51] Peter Zhu 2025-10-26 19:24:44 UTC

4925bec65d17b1330d6b39f0c5a3ffe7ed9abde2 と同様に String#encode のテストで独自の例外クラスを定義して使うことで目的の例外が発生していることを一応チェックするようにしています。

[80be97e4a2] André Luiz Tiago Soares 2025-10-28 23:48:38 UTC

ZJIT でデバッグビルド時に C 実装のメソッドの関数呼び出し時にわざと cfp->pc に不正な値を書き込んでおいて誤って参照された時にすぐ異常終了するようにしてデバッグしやすくしています。

[f8a333ae19] Max Bernstein 2025-10-29 00:11:27 UTC

ZJIT で中間表現 HIR のオペランドの型チェックを強化しています。 https://github.com/ruby/ruby/pull/14978

[c4e090def1] Nobuyoshi Nakada 2025-10-29 01:06:02 UTC

tool/commit-email.rb のテストである tool/test/test_commit_email.rb で teardown にダミーの sendmail コマンド用のファイルの後始末を追加しています。

[d17ce4bd05] Nobuyoshi Nakada 2025-10-29 01:07:32 UTC

Marhshal.dump の rdoc 用コメントで dump できないクラスの例として古い T_DATA 型オブジェクトのことをさしていたほうの Data クラスが上げられていたので削除しています。今は Struct の一種になっているので dump できそうですね。 [ruby-core:123569] [Bug #21652]

[e4219e2742] Luke Gruber 2025-10-29 01:24:02 UTC

require のテストで一時ファイルを作成してその参照を保持していなかったので GC されて途中で削除される可能性があったので参照を残すように修正しています。

[7bc7246956] Astra 2025-10-29 01:47:11 UTC

doc/syntax/refinements.rdoc のドキュメントから Refinements と Module#include, #prepend の関係について記述したところを削除しています。これは実態にあってなかったのかな?

[e1a0bcde76] Hiroshi SHIBATA 2025-10-29 05:12:22 UTC

doc/maintainers.md の bundled gems に rubygems.org の URL も記載するようにしています。

[103e91a063] Nobuyoshi Nakada 2025-10-29 04:56:58 UTC

rubyspec の Symbol#inspect のテストで ruby 1.8 以前の古い挙動も許容するようにしてたところを削除しています。

[f8d7482d02] Nobuyoshi Nakada 2025-10-29 05:21:51 UTC

rubyspec の Symbol#inspect のテストで UTF-8 の文字を \uXXXX の記法を使うようにしています。

[4f223b72a9] Hiroshi SHIBATA 2025-10-29 06:29:10 UTC

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

[582475b317] git 2025-10-29 06:31:45 UTC

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

[2dcf1f74a4] Hiroshi SHIBATA 2025-10-29 06:49:48 UTC

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

[bb5f5a5293] git 2025-10-29 06:58:01 UTC

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

[337c4bc163] Hiroshi SHIBATA 2025-10-29 07:00:40 UTC

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

[b8f7c18aa8] git 2025-10-29 07:10:08 UTC

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

[8f0b9b27ce] Hiroshi SHIBATA 2025-10-29 07:34:26 UTC

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

[b55e91156c] git 2025-10-29 07:36:10 UTC

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

[6e618a2c79] Hiroshi SHIBATA 2025-10-29 07:48:50 UTC

doc/maintainers.md に repl_type_completor の項目を追記しています。

[12350eb9e0] Nobuyoshi Nakada 2025-10-28 12:55:18 UTC

IO#wait_readable や IO#wait_priority などのメソッドや拡張ライブラリ io/wait の代替実装や IO#nread なども、IO#ungetc により書き戻された文字列をサポートするようにしています。従来は IO#ungetc の書き戻しがあると byte 読み込みのオペレーションとしてチェックが走り IOError 例外が発生するようになっていました。 [ruby-core:123389] [Bug #21625]

[0f62908372] Nobuyoshi Nakada 2025-10-29 09:12:32 UTC

拡張ライブラリ date のテストで Time に nsec や subsec メソッドがあるかどうかのチェックに Time.allocate でインスタンスを作って respond_to? でチェックしていたのを method_defined? でクラスから直接確認するようにしています。

[e49e0bb6c9] Nobuyoshi Nakada 2025-10-29 09:40:25 UTC

0f629083722a09f0b5a75040ca0511e71eb6032a の再修正で date のテストでそもそも Time#nsec や Time#subsec の存在確認がもう不要なのでチェック自体を削除しています。

[606abf2fab] Nobuyoshi Nakada 2025-10-29 10:41:51 UTC

Namespace のテストで Namespace ごとの拡張ライブラリのために作成される一時ファイルの後始末を追加しています。

[2096ca8030] Nobuyoshi Nakada 2025-10-22 13:49:59 UTC

Windows 版のでの FILETIME という構造体の計算に共用体を使っていたのをやめる最適化。

[c90184828d] Nobuyoshi Nakada 2025-10-22 13:54:43 UTC

2096ca8030f506b2f37d0c41796c5318e8a13126 の続きで win32/win32.c で FILETIME の操作用の関数から定数をマクロとして切り出しています。

[cee4a46c96] Nobuyoshi Nakada 2025-10-29 11:35:03 UTC

606abf2faba96e301e8f7445fc9fcc272cbf6b9e の続きで Namespace のテストで拡張ライブラリの Namespace ごとの一時ファイルを作成するための一時ディレクトリの指定を元から指定されている環境変数 TMP や TMPDIR などのシステムもしくは実行元で指定された場所をそのまま使うようにしています。

ruby-trunk-changes 2025-10-28

今日は主に prism の不具合修正や erb のバージョン更新、rubygems/bundler の deprecated や機能削除などの変更などがありました。

[308fb9c8b4] Nobuyoshi Nakada 2025-10-27 11:47:24 UTC

configure で使う m4 マクロ tool/m4/ruby_append_option.m4 のコメントの typo 修正。

[0b0da6c4b2] Earlopain 2025-10-27 12:17:36 UTC

prism 利用時に for 文の変数名のところに * を書くと異常終了していた不具合を修正しています。 [ruby-core:123546] [Bug #21648]

[74c3bd7718] Takashi Kokubun 2025-10-27 19:26:03 UTC

a9f24aaccb28b786068cce9df0d6beaf84f7ce7f で String のメソッドのアノテーションを追加してメソッド呼び出しを C の関数を直接呼び出すようにした時に String#bytesize のエントリが重複して追加されていたので削っています。 https://github.com/ruby/ruby/pull/14968

[1d897f5628] Aiden Fox Ivey 2025-10-24 14:26:59 UTC

ZJIT の Rust 実装で不要な return の明示を削るリファクタリング

[a395d9c036] Aiden Fox Ivey 2025-10-24 14:27:55 UTC

ZJIT の Rust 実装でインラインで書いてた型を事前に定義するリファクタリング

[5c4d76c93a] Aiden Fox Ivey 2025-10-24 14:28:16 UTC

ZJIT の Rust 実装の不要な test annotation の削除。

[79db7d5204] Aiden Fox Ivey 2025-10-24 14:29:11 UTC

ZJIT の Rust 実装の不要なキャストの削除。

[aabec60c2e] Aiden Fox Ivey 2025-10-24 14:29:23 UTC

ZJIT の Rust 実装の不要な static 修飾子? の削除。

[ac57a5c43e] Aiden Fox Ivey 2025-10-24 14:29:52 UTC

ZJIT の Rust 実装で is_empty() メソッドを利用する軽微なリファクタリング

[a12aa2b5aa] Aiden Fox Ivey 2025-10-24 14:30:31 UTC

ZJIT の Rust 実装の Insn::Param がフィールドをもたない構造体(unit struct と呼ぶらしい)なので不要なパターンマッチングの記法を削除しています。

[68d9f7c3e6] Aiden Fox Ivey 2025-10-27 19:01:01 UTC

ZJIT の Rust 実装の不要な static 修飾子の削除。

[d97fb3b424] Max Bernstein 2025-10-27 20:45:50 UTC

ZJIT の side-exit のプロファイル用の --zjit-trace-exits オプション指定時の出力時に出力先ファイルをフルパスで表示するようにしています。 https://github.com/ruby/ruby/pull/14966

[8d45e1f34e] Max Bernstein 2025-10-27 22:53:28 UTC

ZJIT で VM 命令 getinstancevariable が TracePoint を有効化して trace 版になっていた時の対応が漏れていたところがあったのを修正しています。 https://github.com/ruby/ruby/pull/14969

[3fb96ee93b] Max Bernstein 2025-10-24 22:41:08 UTC

ZJIT の最適化で、あるメソッドから別の leaf 属性をもつメソッドを呼ぶだけの単純なメソッドの場合のインライン最適化の対応を追加しています。

[46525fa7b8] Max Bernstein 2025-10-24 22:53:06 UTC

ZJIT の中間表現 HIR の InvokeBuiltin 命令に戻り値の型のパラメーターを追加しています。

[c3c254439f] Max Bernstein 2025-10-24 22:54:15 UTC

ZJIT の型推論で Symbol#to_s と Symbol#name に戻り値が String であることを指定しています。

[e5e32acc7e] Max Bernstein 2025-10-24 23:12:24 UTC

ZJIT の型推論に Kernel#frozen? が真偽値(true/false)を返すというアノテーションを追加しています。

[bf2663ce06] BurdetteLamar 2025-10-26 20:35:07 UTC

Strung#sum の rdoc 用コメントのリンク追加。

[e3c4298d40] BurdetteLamar 2025-10-26 20:59:16 UTC

String#swapcase! の rdoc 用コメントを swapcase を参照するように簡略化。

[836fc00e19] BurdetteLamar 2025-10-26 20:49:05 UTC

String#swapcase の rdoc 用コメントを独立したファイル doc/string/swapcase.rdoc に切り出しサンプル追加しています。

[9fd32ee414] Burdette Lamar 2025-10-28 03:06:07 UTC

拡張ライブラリ stringio の StringIO#each_char の rdoc 用コメントのサンプルコード追加。 https://github.com/ruby/stringio/pull/158

[218c2805f9] Burdette Lamar 2025-10-28 03:09:13 UTC

拡張ライブラリ stringio の StringIO#each_codepoint の rdoc 用コメントにサンプルコードを追加。

[f7eee3427d] Takashi Kokubun 2025-10-28 03:48:29 UTC

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

[4511e9621a] git 2025-10-28 03:50:50 UTC

NEWS の default gems のバージョンリストの erb のバージョンも 5.1.2 に更新しています。

[b3191d204b] Takashi Kokubun 2025-10-28 03:57:18 UTC

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

[d864bd1a58] git 2025-10-28 03:58:48 UTC

NEWS の default gems のバージョンリストの erb のバージョンも 5.1.3 に更新しています。

[02d53bab56] Burdette Lamar 2025-10-28 02:41:41 UTC

拡張ライブラリ stringio の StringIO#each_byte の rdoc 用コメントにサンプルコードを追加しています。 https://github.com/ruby/stringio/pull/157

[0f5c69b317] Nobuyoshi Nakada 2025-10-28 03:37:18 UTC

拡張ライブラリ stringio の rdoc 用コメントで非 ASCII 文字が含まれるものは独立した doc/stringio/*.rdoc のファイルに分離しています。古いコンパイラで C のソースコードに非 ASCII 文字が含まれてると動かないというのが前あったからという気がしますが今もあるのかな。

[d82a590a58] Takashi Kokubun 2025-10-28 07:24:17 UTC

tool/sync_default_gems.rb で upstream のコミットを cherry-pick する時に conflict した場合に gitg diff を表示するようにしています。

[aab390aa5a] Scott Myron 2025-10-28 07:37:32 UTC

拡張ライブラリ json のテストのみの更新ですが、コミットログをみると JRuby 向けの修正が upstream で行なわれていて、そのテスト部分のみが取り込まれたというものみたいです。

[7550f7e453] dysonreturns 2025-10-21 18:21:09 UTC

bundler の bundle gem で生成するプロジェクトの CODE_OF_CONDUCT.md のテンプレートを Ruby 自体の CoC をベースにしたシンプルなものにしています。

[a27f430de7] Hiroshi SHIBATA 2025-10-23 00:08:33 UTC

7550f7e453713b776cf39d9ccd0154d9e33cf6f1 の続きで bundler の bundle gem で生成する CODE_OF_CONDUCT.md のテンプレートに www.ruby-lang.org 内の code of conduct のページへのリンクでより簡素に書くようにしています。

[523474bdfc] Hiroshi SHIBATA 2024-04-18 06:28:50 UTC

rubygems の gem install の --default オプションを deprecated にしています。

[d67aba8a5d] Hiroshi SHIBATA 2024-04-18 06:38:00 UTC

rubygems の Gem::Installer のオプションの install_as_default という設定の対応を削除しています。

[ceb2b569af] Hiroshi SHIBATA 2024-04-18 06:59:19 UTC

d67aba8a5d81383880e05504de9a52ab6b2a015e の対応? のためテストで使うヘルパーメソッドとして Gem::Installer#install_default_gem というメソッドを追加定義しています。

[7bd7bcbf3e] Hiroshi SHIBATA 2024-04-18 07:29:10 UTC

rubygems の gem setup で不要なファイルが残っていたのを修正しています。

[3afe8ed46f] Hiroshi SHIBATA 2024-04-18 08:40:29 UTC

rubygems の Gem::Installer#default_spec_file で対象のディレクトリがなければ掘る処理を追加しています。

[52451798d2] Hiroshi SHIBATA 2024-04-18 08:40:49 UTC

bundler のテストの default gems と同様の状態を偽装するためのディレクトリ構造を作る処理を追加しています。

ruby-trunk-changes 2025-10-27

今日は YJIT 利用時の Ractor 間のオブジェクト移動で稀に異常終了する可能性があった不具合の修正や拡張ライブラリ openssl の OpenSSL 3.0 対応の追加修正や拡張ライブラリ json の不具合修正などがありました。

[7690309a02] Benoit Daloze 2025-10-26 12:32:00 UTC

組み込みクラスになった Pathname の標準添付ライブラリの名残りの lib/pathname.rb の rdoc 用コメントに一部メソッドが require "pathname" が必要なことを追記しています。 https://bugs.ruby-lang.org/issues/21640#note-16

[5c683bd9b3] Burdette Lamar 2025-10-26 19:04:16 UTC

String#succ の rdoc 用コメントを独立したファイル doc/string/succ.rdoc に分離してサンプルを少し増やしています。

[9e49ee7937] BurdetteLamar 2025-10-24 22:24:17 UTC

String#succ! の rdoc 用コメントにリンクを追加しています。

[b66fbd59ae] Peter Zhu 2025-10-26 14:36:24 UTC

vm_method.c の rb_vm_ccs_invalidate_and_free() に static 修飾子を追加しています。

[52ea222027] Joshua Young 2025-10-25 04:40:06 UTC

Ractor 間のオブジェクトの移動で YJIT 利用時に GC のタイミングによって異常終了する可能性があった不具合を修正しています。オブジェクトの参照を辿って移動する際に移動先のオブジェクトの slot の初期化が漏れていたようです。

[947e5baa8c] Burdette Lamar 2025-10-27 01:01:08 UTC

拡張ライブラリ stringio の StringIO#closed_write? の rdoc 用コメントにサンプルコードを追加しています。 https://github.com/ruby/stringio/pull/153

[daaa09bcc2] Burdette Lamar 2025-10-27 01:01:33 UTC

拡張ライブラリ stringio の StringIO#closed_read? の rdoc 用コメントにサンプルコードを追加しています。 https://github.com/ruby/stringio/pull/152

[fcf8b10b3c] Burdette Lamar 2025-10-27 01:02:02 UTC

拡張ライブラリ stringio の StringIO#close_read の rdoc 用コメントにもサンプルコードを追加しています。 https://github.com/ruby/stringio/pull/149

[4bd9cbd3eb] Hiroshi SHIBATA 2025-10-27 01:14:33 UTC

標準添付ライブラリ resolv のテストに macOS の 26.1 向けの skip を追加しています。環境依存でタイムアウトが発生しているようです。

[342dfd780b] fukunori03 2025-02-12 14:57:28 UTC

拡張ライブラリ win32 の wi32/resolv の Win32::Resolv.get_info で誤ってインスタンス変数を参照していて意図しない挙動になっていた不具合を修正しています。

[a1a3857ccd] Nobuyoshi Nakada 2025-10-23 00:31:45 UTC

拡張ライブラリ win32 の win32-registry の gemspec ファイルで spec.files から除外するファイルリストの .gitignore などの git 関係のファイルの追加と除外方法を git ls-files のオプションを使う方式に変更しています。

[2dd01c8f5c] Burdette Lamar 2025-10-27 04:22:53 UTC

拡張ライブラリ stringio の StringIO#close_write の rdoc 用コメントにサンプルコードを追加しています。 https://github.com/ruby/stringio/pull/150

[e221a4b73e] Burdette Lamar 2025-10-27 04:24:00 UTC

拡張ライブラリ stringio の StringIO#each_line の rdoc 用コメントに説明やサンプルを多めに追加しています。 https://github.com/ruby/stringio/pull/154

[f6d2aef3ec] Tobias Haar 2025-10-21 09:23:33 UTC

拡張ライブラリ openssl の rdoc 用コメントの参照 URL のリンク切れを修正しています。

[db59619ce5] Hiroshi SHIBATA 2025-10-27 01:41:05 UTC

bundler のテストの spec 名の typo 修正。

[b839deec49] Stan Hu 2025-10-21 21:10:40 UTC

拡張ライブラリ openssl の OpenSSL::PKey の各種鍵の実装の EVP_PKEY_get0_XXX() という関数群の戻り値チェックを追加しています。 OpenSSL 3.0 から NULL がかえってくる可能性ができたので追加のチェックが必要になったようです。

[ecf5aa18ca] Kazuki Yamaguchi 2025-10-27 06:16:20 UTC

拡張ライブラリ openssl の History.md ファイルに抜けていたバージョンのセクションを追記しています。

[e5ac2b8956] Kazuki Yamaguchi 2025-10-14 09:19:52 UTC

拡張ライブラリ openssl の OpenSSL::Cipher まわりの rdoc 用コメントを修正しています。

[1c709970f4] Kazuki Yamaguchi 2025-07-24 17:45:26 UTC

拡張ライブラリ openssl のテストで利用する OpenSSL::PKey の鍵長を意識しない変数名にしたりモダンな種類の鍵を利用するように変更しています。

[bf244356ea] Kazuki Yamaguchi 2025-10-17 16:52:15 UTC

1c709970f4e29b58cc45703d3596555767fcea2f と同様に拡張ライブラリ openssl のテストで変数名を特定の鍵長を意識した名前をやめるようにしています。

[709aa7284b] Kazuki Yamaguchi 2025-10-17 16:52:43 UTC

1c709970f4e29b58cc45703d3596555767fcea2f と同様に拡張ライブラリ openssl のテストで変数名を特定の鍵長を意識した名前をやめるようにしています。

[f90ca1a0b1] Kazuki Yamaguchi 2025-10-17 16:53:09 UTC

1c709970f4e29b58cc45703d3596555767fcea2f と同様に拡張ライブラリ openssl のテストで変数名を特定の鍵長を意識した名前をやめるようにしています。

[a9ba78e4c2] Kazuki Yamaguchi 2025-07-25 11:12:37 UTC

1c709970f4e29b58cc45703d3596555767fcea2f と同様に拡張ライブラリ openssl のテストで変数名を特定の鍵長を意識した名前をやめるようにしています。

[d0ea9c0cea] Kazuki Yamaguchi 2025-07-25 12:25:43 UTC

1c709970f4e29b58cc45703d3596555767fcea2f と同様に拡張ライブラリ openssl のテストで変数名を特定の鍵長を意識した名前をやめるようにしています。

[1b57e5574d] Kazuki Yamaguchi 2025-07-25 20:59:14 UTC

拡張ライブラリ openssl のテストで使う鍵の PEM ファイルを含めていたのがここまでのテストの変更で不要になったので削除しています。

[504a1ba7ee] Hiroshi SHIBATA 2025-10-27 06:04:14 UTC

bundler のテストで bundle lock のテストのサンプルの Gemfile に uri.gem を使ってたのが default gems の uri のバージョン更新でエラーになる? みたいで foo というダミーの gem を使うように修正しています。

[6a1644ddca] Hiroshi SHIBATA 2025-10-27 06:05:33 UTC

bundler のテストで環境変数 GEM_HOME の影響でテストが失敗する場合があったそうで spec_helper.rb に gem "diff-lcs" を追加しています。うーん、なんだろうこれ。

[79684cea9f] Hiroshi SHIBATA 2025-10-27 06:17:29 UTC

bundler の major version 更新に伴ない不要になった分岐を削除しています。

[d17d49d4aa] Hiroshi SHIBATA 2025-10-27 06:18:58 UTC

bundler の major version 更新により不要になった if 文の条件を削除しています。

[d0a6780d1e] Nobuyoshi Nakada 2025-10-27 07:52:28 UTC

拡張ライブラリ stringio の StringIO クラスの rdoc 用コメントを独立したファイル doc/stringio/stringio.md に分離しています。

[14cbe0de8b] Jean Boussier 2025-10-27 08:52:58 UTC

拡張ライブラリ json の実装で isalpha(3) を呼び出していたところを locale の設定の影響を受けないように ruby 独自の実装の rb_isalpha() を利用するように修正しています。

[2a9d15b969] Jean Boussier 2025-10-27 09:22:04 UTC

拡張ライブラリ json の C 実装のインデントの修正のみ。

ruby-trunk-changes 2025-10-26

今日は主に Namespace 関連のクラス削除時の不具合修正などがありました。

[377aa2a336] tompng 2025-09-09 12:21:22 UTC

Unicode の normalize のためのモジュール UnicodeNormalize を定義した lib/unicode_normalize/normalize.rb のソートのアルゴリズムを改善して最適化しています。

[af8c448129] Nobuyoshi Nakada 2025-10-25 12:08:20 UTC

Process のテスト test/ruby/test_process.rb で Linux の環境で環境変数 LD_PRELOAD を子プロセスに伝播させる変数として明示的に指定してたのをやめています。 RbConfig::CONFIG['PRELOADENV'] の設定を使うところがあってここでカバーされるので冗長だったようです。

[8e3957cc76] Nobuyoshi Nakada 2025-10-25 12:11:23 UTC

af8c448129f07faf55248e583a7e5a1b8d55600f からの続きで Process のテスト test/ruby/test_process.rb で macOS の時に伝播させる環境変数に TMPDIR を追加しています。 GitHub Actions の macOS の環境で自動的に TMPDIR が設定されるのでそれを上書きするためみたいです。

[0a924d4615] Nobuyoshi Nakada 2025-10-25 02:57:25 UTC

T_TYPEDDATA 型オブジェクトの wrap している構造体ポインタを得るための RTYPEDDATA_GET_DATA() で embed されている時のアドレス計算をメンバーの参照に置き換えています。

[c6d1458421] Nobuyoshi Nakada 2025-10-25 10:10:55 UTC

tool/lib/vcs.rb のコミットログから ChangeLog を生成する処理で ruby/foo#100 みたいな表記を GitHub へのリンクに置換するようにしています。

[e3a717512e] Burdette Lamar 2025-10-26 07:04:40 UTC

拡張ライブラリ stringio の StringIO#closed? の rdoc 用コメントにサンプルを追記して close_read, close_write との関係を明示しています。

[efe9a3cda9] Satoshi Tagomori 2025-10-25 04:31:36 UTC

Namespace のテストに root namespace に Namespace#eval でファイルを load させた時のテストを追加しています。

[be118cf946] Satoshi Tagomori 2025-10-25 04:35:15 UTC

Namespace 利用時に rb_classext_t の既存の構造体を上書きすることは T_ICLASS でしか発生しないはずということでそのような状態になったら異常終了するようにしています。

[1c81bbf035] Satoshi Tagomori 2025-10-25 04:35:47 UTC

Class の解放時にサブクラスを管理しているテーブルから削除する処理で Namespace 利用時の rb_classext_t 管理テーブルから rb_classext_t を削除する時に free() 後に参照が発生する可能性があった不具合を修正しています。

[f53b8194cd] Satoshi Tagomori 2025-10-25 04:36:20 UTC

1c81bbf03533eb44f3c8f25a872ec85b6563c65f からの続きでクラスの回収時に Namespace 利用時に個別の rb_classext_t 構造体を解放する時に親クラスからの参照が残るケースで解放してはいけない rb_classext_t を解放してしまう不具合があったのを修正しています。