今日は拡張ライブラリ openssl で OpenSSL::SSL::SSLSocket のメソッド群の仕様や挙動を IO のものに揃える変更や、prism の大規模なリファクタリングなどでたくさんの変更がありました。 100 commits もの変更がありました。
[c31e15064b] Kazuhiro NISHIYAMA 2026-10-13 11:16:01 UTC
tool/run-lcov.rb というツールが prism を bundled gems 化した樋にエラーになってたので除外対象に .bindle/* を追加しています。
[34cc07dfd1] Kazuki Yamaguchi 2026-10-13 15:23:23 UTC
拡張ライブラリ openssl で sysread や syswrite からの Errno::EAGAIN 例外を捕捉して retry していたのがもう不要になってたため削除しています。
[fc929c894d] Kazuki Yamaguchi 2025-12-23 16:12:46 UTC
拡張ライブラリ openssl の OpenSSL::Buffering で String のサブクラスを定義していたのをやめて Refinements を利用するように変更しています。おお、標準添付ライブラリでの Refinements の利用。
[ee5f592185] Kazuki Yamaguchi 2026-09-21 17:17:18 UTC
拡張ライブラリ openssl で frozen_string_literal 対応のため "" を返してたところを String.new で freeze されてない文字列を返すようにしています。
[6750e8f01a] Kazuki Yamaguchi 2025-12-17 05:34:41 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#ungetc の引数に 2文字以上の文字列を渡した時に 1文字目だけでなく全体を書き戻すように IO#ungetc に揃えています。また OpenSSL::SSL::SSLSocket#ungetbyte も追加しています。
[6c87bfb282] Kazuki Yamaguchi 2025-12-17 05:53:38 UTC
拡張ライブラリ openssl に OpenSSL::SSL::SSLSocket#each_char メソッドを新規追加しています。また OpenSSL::SSL::SSLSocket#each_byte にブロックを渡さず呼んだ時に Enumerator を返すようにしています。
[f4a0d53e28] Kazuki Yamaguchi 2025-12-15 18:31:00 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket の行指向読み込みのメソッド群に IO の同名メソッドと引数や挙動をそろえるように変更しています。
[ce8da0cfc0] Kazuki Yamaguchi 2025-12-28 17:07:57 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#write で引数に to_s メソッドを呼んで String に変換するよう IO に合わせています。
[497f987ca5] Kazuki Yamaguchi 2026-01-08 10:48:03 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#syswrite, #syswrite_nonblock でも StringValue() マクロで(to_str メソッドによる変換を試すようにしてたのを to_s メソッドによる明示的変換を行うように変更しています。
[15467f68cf] Kazuki Yamaguchi 2025-12-23 18:15:17 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#puts でも IO#puts にそえろえて配列でネストした引数も受け付けて flatten で展開するようにしています。
[1ec5306dc5] Kazuki Yamaguchi 2025-12-23 18:43:50 UTC
拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#putc を新規追加しています。
[09d278a9c7] Kazuki Yamaguchi 2025-12-30 09:08:57 UTC
拡張ライブラリ openssl のテストで IO との挙動の違いが検出されるように同じテストを IO でも実行するようにしています。
[dfbcdda939] Yusuke Endoh 2026-10-11 09:12:31 UTC
parser としての prism の組み込み化の Ruby::Box 対応。 autoload を設定した定数 Ruby::Prism が最初に参照した box からのみ見えるというのを、参照した box にではなくて autoload 設定した box で読み込むようにして共有されるように? しています。 [ruby-core:126653] [Bug #22305]
[6d68304c38] Yusuke Endoh 2026-10-11 11:29:03 UTC
dfbcdda93952f7ed18131a14e1010d403e7f5c02 の Ruby::Box の autoload 対応の再修正。詳細よくわかってませんが二重管理になっていた autoload のエントリを一本化しているようです。 [ruby-core:126653] [Bug #22305]
[dbd0e0174c] Yusuke Endoh 2026-10-11 11:29:04 UTC
variable.c の autoload_data() を autoload_entry() に改名するリファクタリング。
[bac98d1454] Yusuke Endoh 2026-10-11 11:35:47 UTC
Ruby::Prism の rdoc 用コメントに require "ruby/prism" は不要なことを明記しています。
[8b630aad6a] Yusuke Endoh 2026-10-13 15:39:10 UTC
variable.c のコメントの変更のみ。
[cb08906bfa] Yusuke Endoh 2026-10-13 15:24:13 UTC
variable.c の説明コメントの追記。
[0cb32950e4] Yusuke Endoh 2026-10-13 15:41:38 UTC
variable.c の冗長な条件分岐を消して VM_ASSERT() によるデバッグビルド時のチェックに変更しています。
[1907cd84b4] Yusuke Endoh 2026-10-13 16:02:34 UTC
bac98d1454ca3018cecba2fd284eb33164d2f28c の続きで Ruby::Prism の rdoc 用コメントに require "ruby/prism" するべきでない理由を追記しています。 [ruby-core:126653] [Bug #22305]
[976b89be4a] Kevin Newton 2026-10-13 13:36:22 UTC
prism で Regexp#=~ メソッドの receiver の正規表現にローカル変数への capture があった時に正規表現を2度コンパイルするのでエラー時のメッセージも二重に出ていたのを修正しています。
[104e0ca8c9] Kevin Newton 2026-10-13 14:13:56 UTC
ここから prism の parse_expression_prefix() という巨大な関数を細かい関数に切り出すリファクタリングが大量に続きます。
[0a2f024c1e] Kevin Newton 2026-10-13 14:16:31 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[e8baec457e] Kevin Newton 2026-10-13 14:18:25 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[8e4d6018d6] Kevin Newton 2026-10-13 14:21:11 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[faa781f78d] Kevin Newton 2026-10-13 14:22:59 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[9bb259e01b] Kevin Newton 2026-10-13 14:24:33 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[13a5abf323] Kevin Newton 2026-10-13 14:28:27 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[55fb2890e4] Kevin Newton 2026-10-13 14:31:13 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[a7f2aa5ec5] Kevin Newton 2026-10-13 14:33:46 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[d03b0d923f] Kevin Newton 2026-10-13 14:36:27 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[6cc44439e3] Kevin Newton 2026-10-13 14:38:09 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[41f814200e] Kevin Newton 2026-10-13 14:41:20 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[3de3f7e659] Kevin Newton 2026-10-13 14:44:25 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[404cefa4ea] Kevin Newton 2026-10-13 14:46:55 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[f283106ec6] Kevin Newton 2026-10-13 14:49:17 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[1603c441ea] Kevin Newton 2026-10-13 14:51:39 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[0cae2de088] Kevin Newton 2026-10-13 14:55:53 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[5d52c6f81a] Kevin Newton 2026-10-13 15:00:19 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[0c61f22342] Kevin Newton 2026-10-13 15:03:19 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[e1414377bc] Kevin Newton 2026-10-13 15:07:13 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[021b6231ff] Kevin Newton 2026-10-13 15:09:48 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[345c6f21c3] Kevin Newton 2026-10-13 15:12:29 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[8eb7292e62] Kevin Newton 2026-10-13 15:13:31 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[1be355b9e1] Kevin Newton 2026-10-13 16:04:10 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[a8d4b0dbc8] Kevin Newton 2026-10-13 16:07:47 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[d923df2bcb] Kevin Newton 2026-10-13 16:11:12 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[9a17b30f71] Kevin Newton 2026-10-13 16:13:16 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[6a6d7ace65] Kevin Newton 2026-10-13 16:15:34 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[1a198d3ca5] Kevin Newton 2026-10-13 16:18:11 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[bb42b9a77b] Kevin Newton 2026-10-13 16:20:13 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[72bca58770] Kevin Newton 2026-10-13 16:26:20 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[f4a1b92a6d] Kevin Newton 2026-10-13 16:30:12 UTC
prism の関数名を改名するリファクタリング。
[559dd240e3] Kevin Newton 2026-10-13 16:38:19 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[75d3464670] Kevin Newton 2026-10-13 16:40:41 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[e7f6ab0ee0] Kevin Newton 2026-10-13 16:44:36 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[0ed4ee6602] Kevin Newton 2026-10-13 16:51:04 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[d3d04c19ca] Kevin Newton 2026-10-13 16:58:54 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[1c7dba3df4] Kevin Newton 2026-10-13 17:02:18 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[6227730b95] Kevin Newton 2026-10-13 17:05:15 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[68e7541cfa] Kevin Newton 2026-10-13 17:16:24 UTC
104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。
[7dab22936b] Kevin Newton 2026-10-13 17:23:02 UTC
prism の切り出した関数 parse_pattern() の再帰の深さに上限をつけています。
[1b19b75b9c] Kevin Newton 2026-10-13 17:44:53 UTC
prism の parse の version 指定のデフォルト値を "latest" から "nearest" に変更しています。
[817e940d8c] Luke Gruber 2026-10-05 17:37:09 UTC
eval 系メソッドで生成する ISeq のコードの位置情報で内部的にファイルのパスの realpath とのペアを配列で持ってたのを 1つの文字列だけで保持するようにしてオブジェクト確保数を減らすように修正しています。
[a4ccceacf0] Earlopain 2026-09-26 17:19:19 UTC
prism の自動生成する .rb ファイルの rdoc 用コメントのマークアップの修正。
[fa8df43bd1] Kazuki Yamaguchi 2026-05-29 12:39:48 UTC
Process.spawn に長いコマンドラインを渡した時のテストをリファクタリングしてちょっとずつ長くして限界を探るのをやめてとても長い文字列を呼ぶだけにしています。
[67abedae69] Kevin Newton 2026-10-13 19:54:15 UTC
prism のファイルパスの変換に File.path メソッドを利用するようにしています。
[12217a2fe3] Mau Magnaguagno 2022-06-14 00:41:02 UTC
標準添付ライブラリ un.rb の mkmf コマンドのリファクタリング。
[70061f0e93] Mau Magnaguagno 2022-06-20 18:24:43 UTC
標準添付ライブラリ un.rb の gemspec ファイルでサポート ruby バージョンを 2.6.0 に引き上げています。
[56e8d2dd9a] Kevin Newton 2026-10-13 22:02:56 UTC
prism の EUC-JP の判定の不具合修正。
[2f4c707a8b] Kevin Newton 2026-10-13 22:04:57 UTC
prism の浮動小数点数の parse が非効率だったのを修正しています。
[6d167eb483] Kevin Newton 2026-10-13 22:07:36 UTC
prism のヒアドキュメントの終端判定の不具合修正。
[523d4fa59b] Kevin Newton 2026-10-13 22:09:37 UTC
prism の xmalloc() でのメモリ確保失敗時に abort(3) で即座に異常終了するようにしています。いいのかなこれ。
[f568167f89] dak2 2026-10-04 14:44:44 UTC
ZJIT で eval や Binding#local_variable_set によるローカル変数の代入をすると更新後の値が参照できない場合がある不具合を修正しています。
[540eaae321] dak2 2026-10-08 16:18:27 UTC
f568167f899f22fccc057b1131f6d5d90dfc6d57 の再修正。ローカル変数の参照の管理方法を根本的に変更しているみたいです。
[0adee861cb] John Hawthorn 2026-09-22 16:58:58 UTC
Class.allocate で initialize で初期化していない Class の問題の根本解決のため Class.allocate をそもそもエラーにしています。ただ Class#initialize メソッドも削除され Class.new メソッドを直接定義するようにしています。
[f6963df7eb] John Hawthorn 2026-09-22 18:52:40 UTC
0adee861cb586a011fc4c77eb00758cb3f2cfd93 の続きで Class の allocator 廃止により Class の初期化チェックが不要になったので削除しています。
[2de8f78db7] Hiroshi SHIBATA 2026-10-13 11:42:43 UTC
標準添付ライブラリ find の gemspec ファイルで ruby の最小サポートバージョンを 2.5 に引き上げています。
[0511c698a0] Hiroshi SHIBATA 2026-10-13 11:47:27 UTC
標準添付ライブラリ un.rb で --help オプションによるヘルプメッセージ出力がされなくなっていた不具合を修正しています。
[198b42b706] Hiroshi SHIBATA 2026-10-09 06:44:23 UTC
Windows での YJIT/ZJIT のコード領域の protect をかける処理が遅いのを対策しています。
[8c823c61af] Hiroshi SHIBATA 2026-10-10 09:01:48 UTC
198b42b706ff70d3ceccf320f07197e988145d31 の続きでコード領域の protect の Windows 向け最適化実装の説明コメントを追加しています。
[01ac07e5cc] Hiroshi SHIBATA 2026-10-13 22:00:44 UTC
標準添付ライブラリ un.rb の mkmf サブコマンドの -v オプションがグローバルな -v オプションに競合して認識されてなかった不具合を修正しています。
[2cdfc0d20e] ksss 2026-10-09 03:53:11 UTC
tool/rbinstall.rb の load_gemspec でファイルパス処理の不具合修正。default gems のロード失敗の対策みたいです。 [ruby-core:127021] [Bug #22420]
[6b32bb45c7] ksss 2026-10-13 05:33:14 UTC
tool/rbinstall.rb の load_gemspec で gemspec 内のローカル変数が上書きできてしまうのを空のメソッド内の Binding を生成してそこで eval するようにして回避しています。
[6e55b106d8] BurdetteLamar 2026-10-13 16:10:40 UTC
File.mtime、File::Stat#mtime および Pathname#mtime の rdoc 用コメントの手直し。
[5f1806fcaf] BurdetteLamar 2026-10-13 17:27:20 UTC
File::Stat#nlink の rdoc 用コメントの手直し。
[8bc1b731dd] BurdetteLamar 2026-10-13 18:46:53 UTC
File.owned?、File::Stat#owned? および Pathname#owned? の rdoc 用コメントを手直し。
[a827b6af70] BurdetteLamar 2026-10-13 19:18:38 UTC
File.pipe?、File::Stat#pipe? および Pathname#pipe? の rdoc 用コメントの手直し。
[f49adab2d1] BurdetteLamar 2026-10-13 21:00:30 UTC
File.readable?、File::Stat#readable? および Pathname#readable? の rdoc 用コメントの typo 修正。
[ba05130239] BurdetteLamar 2026-10-13 21:09:54 UTC
Pathname#setgid? の rdoc 用コメントのサンプルコード修正。
[186aa9afd1] BurdetteLamar 2026-10-13 21:13:20 UTC
Pathname#setuid? の rdoc 用コメントのサンプルコードの修正。
[1bf9130943] Erik Berlin 2026-10-13 00:27:52 UTC
Range の文字列を始点/終点にしている時に終点が始点より前の文字列だった時に Range#include? が誤判定する不具合を修正しています。
[332fcb9e41] Hiroshi SHIBATA 2026-10-13 21:47:52 UTC
複数 Ractor から Encoding を並行で autoload するテストが Windows でタイムアウトしたためタイムアウトを伸ばしています。
[dc420ed4b7] Hiroshi SHIBATA 2026-10-13 21:47:54 UTC
tool/fetch-bundled_gems.rb で github.com への接続をリトライするようにしています。
[6095c59c7e] Hiroshi SHIBATA 2026-10-07 11:19:09 UTC
標準添付ライブラリ net/http の resolv への依存をやめて Resolv::IPv4::Regex や Resolv::IPv6::Regex などの正規表現リテラルのみ必要だったので定義をコピーしています。
[daa307aa87] Yusuke Endoh 2026-10-14 05:23:31 UTC
標準添付ライブラリ resolv で Windows 版でのみ同じ port に bind 済みでも bind が成功してしまうので setsockopt で SO_REUSEADDR を落として設定するようにしています。
[8677671415] git 2026-10-14 07:03:17 UTC
NEWS の default gems の更新履歴を更新しています。
[d037ba85ef] Kunshan Wang 2026-10-14 05:30:15 UTC
GC の mmtk 実装の Rust パッケージ mmtk-core のバージョンを更新しています。
[44f7c6b00d] Douglas Eichelberger 2026-10-10 21:11:18 UTC
拡張ライブラリ socket の名前解決用の native thread の終了時に Kernel#fork が行われると名前解決のためのロックが取得状態のまま残り、子プロセスでその後名前解決しようとした時にデッドロック状態に陥り名前解決が終了しないという不具合を修正しています。 [ruby-core:126921] [Bug #22406]
[d71692d49f] Matt Valentine-House 2026-10-12 13:29:30 UTC
コマンドラインオプション --enable=zjit などのオプションを指定しても初期化時に ZJIT が有効化されてなかった? 不具合を修正しています。 [ruby-core:127073] [Bug #22427]