ruby-trunk-changes 2025-06-26

今日は主に bundler の更新や標準添付ライブラリ urischeme 部のエスケープ処理追加、拡張ライブラリ openssl の OpenSSL3 の新しい API 対応などがありました。

[9e43e123c2] Nobuyoshi Nakada 2025-06-25 12:41:06 UTC

tool/rbinstall.rb で bundled gems の gemspec の spec.files と実際にパッケージに入っているファイルが食い違う場合に実際のファイルのほうを使うようにしているそうです。

[fb2f89d867] MSP-Greg 2025-06-23 23:19:33 UTC

rubygems で FileUtils を利用しているところで遅延して require "fileutils" するようにしています。

[c17d381d67] David Rodríguez 2025-06-24 06:00:26 UTC

bundler のテストの不要なチェックを削除。

[077dbb8d42] David Rodríguez 2025-06-24 06:14:39 UTC

bundler のテストの不要なコード削除。

[ec071c849f] Burdette Lamar 2025-06-25 14:51:45 UTC

String#byterindex の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/13485

[aed7a95f9d] Peter Zhu 2025-06-25 13:25:52 UTC

gc.c や shape.c、string.c でそれぞれ定義していた RUBY_ATOMIC_VALUE_LOAD() というマクロを ruby_atomic.h で定義して共通化するようにしています。

[ca0a315f36] Kazuki Yamaguchi 2025-04-29 07:30:31 UTC

拡張ライブラリ openssl で openssl/provider.h というヘッダの #include を ext/openssl/ossl.h で行うように移動しています。

[0c6075bd42] Kazuki Yamaguchi 2025-04-29 07:34:33 UTC

拡張ライブラリ openssl の OpenSSL::PKey#inspect などの実装で EVP_PKEY_get0_type_name() や EVP_PKEY_get0_provider() といった OpenSSL の API が利用可能なら使って得た情報も含めるようにしています。

[a1996b32a9] Kazuki Yamaguchi 2025-06-05 17:44:09 UTC

拡張ライブラリ openssl の OpenSSL::PKey の実装で EVP_PKEY_new_raw_private_key_ex() や EVP_PKEY_new_raw_public_key_ex() といった新しい? API が利用可能なら使うようにしています。

[328e3029d8] Luke Gruber 2025-06-09 21:22:33 UTC

String#crypt の実装で使う crypt(3) は MT-safe ではないがため Ractor 対応として mutex で排他するように 12f7ba5ed4a07855d6a9429aa627211db3655ca7 で変更していましたがデッドロックすることがあるとのことで、crypt() の結果のバッファを ALLOCA_N() を使ってマシンスタック上にコピーを作ってそこから文字列オブジェクト化するようにしています。 rb_str_new_cstr() を呼ぶ前に mutex 解放する必要があって、そのためにはバッファの内容をどこかに対比しておかないといけないということですね。

[3c66eb3358] Luke Gruber 2025-06-25 20:59:12 UTC

method entry に通し番号をつけるための method_serial という static 変数を rb_method_definition_create() の関数内からファイルスコープに移動して、RUBY_ATOMIC_FETCH_ADD() マクロを利用してインクリメントが atomic に行なわれるようにしています。

[6b7f56d2db] John Hawthorn 2025-06-24 22:15:02 UTC

struct RBasic::flags のフラグチェックするマクロなどから使われる RB_FL_ABLE() では T_NODE 型のオブジェクトではないかチェックする分岐が含まれていましたが、もう不要だろうということで RBIMPL_ASSERT_OR_ASSUME() による assertion に置き換えて常時有効な分岐はなくしています。

[4e74f55db7] David Rodríguez 2025-06-18 17:21:27 UTC

bundler のテストでヒアドキュメントにインデント除去つきヒアドキュメントを使うようにしています。

[a9860b6cb1] David Rodríguez 2025-06-18 17:33:22 UTC

bundler の Bundler#reset_paths! で不要なインスタンス変数の再初期化を削除しています。

[18618810a2] David Rodríguez 2025-06-18 18:37:01 UTC

bundler の Bundler.bundler_major_version で Gem::Version のメソッドを利用するようにしています。

[7e0358e04f] David Rodríguez 2025-06-18 19:01:33 UTC

bundler のテストで bundler のダミーのバージョンとして実際のバージョンと被らないように 9.0.0 というのを使うようにしています。

[782d8287c3] David Rodríguez 2025-06-18 19:57:21 UTC

bundler のテストで Bundler::VERSION に依存した分岐を書き換えています。

[54e51f1fc3] David Rodríguez 2025-06-18 20:00:26 UTC

bundler のテストでダミーの bundler のバージョンを 9.0.0 を使うようにしています。

[938ab128a4] David Rodríguez 2025-06-18 20:24:34 UTC

bundler のテストの不要な前処理削除。

[90085f62fb] David Rodríguez 2025-06-18 20:08:32 UTC

bundler のテストで Bundler のバージョンをダミーの値にするための機構を本体に入れておいてそれを使うようにしているようです。

[42f753d829] Nobuyoshi Nakada 2025-01-23 12:19:20 UTC

標準添付ライブラリ uriURIscheme 部分に ".", "+", "-" などの文字が指定された時にエスケープするようにしています。 https://github.com/ruby/uri/issues/89

[228cc794f5] Nobuyoshi Nakada 2025-01-23 13:07:04 UTC

42f753d829d564c0c787741995a2c0dd3be51fd8 の続きで標準添付ライブラリ uriURIscheme 部の文字のエスケープに使う Unicode の codepoint を変更しています。 TruffleRuby のための変更とのこと。

[4eba511c1b] Nobuyoshi Nakada 2025-06-26 01:33:05 UTC

42f753d829d564c0c787741995a2c0dd3be51fd8 からの続きで標準添付ライブラリ urischeme 部のエスケーショプ処理の例外メッセージの typo を修正しています。

[4b1de7378d] Nobuyoshi Nakada 2025-01-25 11:45:58 UTC

標準添付ライブラリ uri の Kernel#URI() の rdoc 用コメントのサンプルに require "uri" を明記するようにしています。

[5e9be99ef5] Erik Berlin 2025-06-25 23:13:54 UTC

compile.c で RARRAY_AREF() に渡すインデックスの変数の型を int から long に修正しています。

[7d01905ef1] Hiroshi SHIBATA 2025-06-26 07:12:20 UTC

GitHub Actions の workflows で test-bundled-gems でエラーを無視する gems リストから rbs, typeprof, repl_type_completor を削除しています。

[b1c09faf67] Nobuyoshi Nakada 2025-06-26 08:08:05 UTC

signal(3) の呼び出しで現在のハンドラ設定を得るために第2引数に渡す定数として SIG_GET というのも対応しています。 Windows で使うマクロみたいです。

ruby-trunk-changes 2025-06-25

今日は主に main Ractor 以外の Ractor から Kernel#fork を呼ぶのを禁止する変更や RGenGC 用の Write Barrier が不足していたりタイミングが間違っていた不具合の修正などがありました。

[5bcc639b34] Jean Boussier 2025-06-24 10:33:27 UTC

複数 Ractor 利用時に Kernel#fork を利用すると呼んだ thread 以外の native thread の残骸が残って子プロセスが異常終了してしまうという不具合があるため、main Ractor 以外では Kernel#fork を呼ぶと Ractor::IsolationError 例外を発生させて禁止するようにしています。 [ruby-core:101952] [Bug #17516]

[b284987651] Jean Boussier 2025-06-24 14:09:52 UTC

Object Shapes の shape_id_t 型の上位ビットに埋め込むビットフラグやビットマスクなどを定数マクロから enum 型で定義するようにして、説明のコメントを追加しています。

[c351c3d065] Burdette Lamar 2025-06-24 16:28:17 UTC

doc/string/bytes.rdoc のドキュメントに変換系メソッドリストへのリンクを追加しています。

[fcf2c3b4d1] John Hawthorn 2025-06-19 22:14:29 UTC

Hash の実装で要素を追加する rb_hash_add_new_element() という関数で RGenGC 用の Write Barrier を入れるタイミングを修正しています。従来 st_update() のコールバック関数の中で RB_OBJ_WRITTEN() を使っていましたが、ここではまずくて st_update() を呼び終わったところで入れるようにしています。コールバック関数内の時点ではまだ実際に st_table の bins に値が格納されておらず、挿入前にメモリ確保されるため GC が走る可能性があって異常終了してしまう可能性が僅かながらあったようです。

[4044188266] John Hawthorn 2025-06-18 20:17:24 UTC

89b3e4719209d47f223256daee4bccbe7ae92d60 からの一連の変更のうち 521b2fcba4e96898bfd237c79f17f19530b7a030 で RGenGC の Write Barrier 追加をしていたのがタイミングが間違ってたとのことで、ISeq のバイナリフォーマットからの読み込み時の例外処理用の catch table の取り込み処理の関数 ibf_load_catch_table() で関数内で確保した struct iseq_catch_table を返していたのを関数内で rb_iseq_body_t::catch_table メンバーへの代入まで行うようにしています。この後の RB_OBJ_WRITE() より前に代入しておく必要があったということでしょうか。

[3b602c952d] Benoit Daloze 2025-06-24 20:37:18 UTC

標準添付ライブラリ timeout のタイマー用 Thread の起動について Timeout.ensure_timeout_thread_created で Mutex のロックを取得済みの時に再度 Thread::Mutex#synchronize を呼ぶのを避けるようにしています。シグナルハンドラ内で使われた時に再入する可能性がありエラーになるのでということですが、シグナルハンドラ内だけでしか使われないとここでタイマー用 Thread の起動がされなくてタイムアウトできないような気も。ただこの修正は JRuby や TruffleRuby での不具合のためみたいです。 [ruby-core:112664] [Bug #19473]

[3a9c091cf3] Jeremy Evans 2025-05-31 00:55:05 UTC

組み込みクラス Set の Set#inspect メソッドで作る文字列を eval するとその Set 自身になるような文字列として整形するようにしています。うーんなるほど。非互換ではあるけど……。 [ruby-core:122355] [Feature #21389]

[7c3bbfcddb] Jeremy Evans 2025-06-05 15:29:56 UTC

3a9c091cf393e8a9c4e4b93d4216f2be3678e488 からの続きで Set#inspect の返す文字列で Set を継承した子クラスのインスタンスの場合にそのインスタンスのクラス名が反映されるようにしています。 [ruby-core:122306] [Bug #21377]

[443ed45a4e] John Hawthorn 2025-06-08 03:59:04 UTC

rb_vm_rewrite_cref() という関数を引数に代入すべき rb_cref_t のポインタのポインタを渡していたのを返り値で返して代入するようにしています。

[1e436f2274] John Hawthorn 2025-06-19 07:44:53 UTC

443ed45a4e6434e6b09a05e6d2f9c89b20aa384c で書き直した rb_vm_rewrite_cref() で RGenGC 用の Write Barrier が漏れていたのを修正しています。

[2ed4862690] John Hawthorn 2025-06-19 07:45:21 UTC

vm_cref_new0() で自動変数用に関数内で共用体を定義していましたが一方の値しか使ってなくて特に意味がなかったので通常の型で変数宣言するようにしています。

[8f44d482a3] Hiroshi SHIBATA 2025-06-25 01:52:34 UTC

GitHub Actions の Windows 用 workflow で OS が Windows 2025 の時の VC のバージョンを 2022 に更新しています。

[363239585d] John Hawthorn 2025-06-25 00:00:12 UTC

Object Shapes のインスタンス変数テーブルを wrap する T_IMEMO 型オブジェクトへの参照追加時に RGenGC 用の Write Barrier の追加が漏れていたのを修正しています。

ruby-trunk-changes 2025-06-24

今日は主に Set#divide の不具合修正、ArgumentError 例外のバックトレースの位置やメソッド名をわかりやすくする修正などがありました。

[b1ce569ffc] ywenc 2025-06-23 15:20:28 UTC

ZJIT で VM 命令 anytostring の対応を追加しています。なんだっけこの命令と思ったけど記録にないので YARV の最初期からあるやつっぽいな。

[db6f397987] BurdetteLamar 2025-06-21 16:58:50 UTC

doc/string/bytesize.rdoc の String#bytesize のドキュメントのサンプルの追加や関連メソッドリストへのリンク追加など。

[67346a7d94] tomoya ishida 2025-06-23 17:56:04 UTC

Set#divide の実装の不具合修正と最適化。ブロックに渡される要素の順序に依存してしまっていたのと、中間オブジェクトとして配列を作っていたのを ALLOCV_N() で直接バッファを確保するようにしたりしています。 https://github.com/ruby/ruby/pull/13680 [ruby-core:122580] [Bug #21449]

[3a9bf4a2ae] Max Bernstein 2025-06-23 22:41:49 UTC

ZJIT で freeze されている配列の要素の参照(Array#[])のインライン化の最適化? https://github.com/ruby/ruby/pull/13666

[74e6bddf15] Max Bernstein 2025-06-23 23:55:37 UTC

ZJIT で VM 内部の処理のためのオブジェクトを格納する変数 rb_mRubyVMFrozenCore を Rust 実装から参照できるようにして VM 命令 putspecialobject のオペランドがこのオブジェクトだった時に最適化? するようにしています。 https://github.com/ruby/ruby/pull/13683

[a18fa86351] Yusuke Endoh 2025-06-23 13:00:28 UTC

ArgumentError 例外発生時の backtrace の行番号情報が失なわれてしまうことがある不具合を修正しています。

[3546cedde3] Yusuke Endoh 2025-06-23 13:15:58 UTC

同じく ArgumentError 例外のバックトレースで最後に呼び出そうとした位置ではなくて呼び出そうとしたメソッド名を表示するようにしているようです。 [ruby-core:122576] [Misc #20968]

[0a8ed97b32] David Rodríguez 2025-06-19 15:12:28 UTC

bundler のテストのヘルパーメソッド導入。

[32a9f29cc8] David Rodríguez 2025-06-19 15:01:52 UTC

bundler の CI でのエラー対策? のためにあった環境変数 BUNDLER_SPEC_ORIGINAL_CMD をみる対応がもう不要になったようで削除しています。

[7a297ad2f9] David Rodríguez 2025-06-19 10:26:08 UTC

bundler で bundler 自身を更新する時に Kernel.exec でプロセスを上書きする時に環境変数 BUNDLER_ORIG_GEM_HOME と BUNDLER_ORIG_GEM_PATH も引き継ぐようにしています。

[b310e7b3c7] Jean Boussier 2025-06-23 15:22:06 UTC

拡張ライブラリ jsonJSON.parse の rdoc 用コメントの allow_trailing_comma や freeze オプションの説明を追記しています。

[93fc29c65c] Jean Boussier 2025-06-23 15:11:33 UTC

拡張ライブラリ jsonJSON.parse のオプションに :allow_duplicate_key というのを追加しています。将来的には明示的に true を指定しないと重複したキーを弾くようにする予定みたいです。

[7a5e46cff2] Hiroshi SHIBATA 2025-06-24 02:28:52 UTC

lib/rubygems.rb の shebang のあとの Copyright のコメントとのあいだに空行を追加しています。

[e036d4da8d] Hiroshi SHIBATA 2025-06-24 04:39:51 UTC

doc/standard_library.md から組み込みになった set のエントリを削除しています。

[ba68343d3a] Samuel Williams 2025-06-24 05:55:07 UTC

IO#close でその IO に対する blocking region に入っている Thread を待つための処理で作成する Mutex オブジェクトに割り込み可能フラグを立てておくようにしています。 https://github.com/ruby/ruby/pull/13684

[ac02bf2b72] Nobuyoshi Nakada 2025-06-24 09:06:23 UTC

拡張ライブラリ json の行末の空白除去。

[21f3ffedd4] Hiroshi SHIBATA 2025-06-24 08:05:40 UTC

doc/standard_library.md の tmpdir のエントリを拡張ライブラリから pure ruby のライブラリのセクションに移動しています。

[152cf102b7] Nobuyoshi Nakada 2025-06-24 09:30:54 UTC

tool/auto-style.rb で行末の空白を自動で削除する対象のファイルに .rs のファイルを追加しています。また ZJIT の Rust 実装で行末の空白を除去しています。

[62aa4a6010] Hiroshi SHIBATA 2025-06-24 09:32:47 UTC

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

[cf6b4e7278] git 2025-06-24 09:33:51 UTC

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

[da10b956e0] Nobuyoshi Nakada 2025-06-24 09:50:50 UTC

GitHub Actions の gems/bundled_gems の更新などを行う workflow で自動的に生成するコミットのコミットログに NEWS.md の変更のみの時に "[DOC]" タグをつけるようにしています。

[45a2c95d0f] Jean Boussier 2025-06-24 09:46:40 UTC

struct RBasic::flags のビットフラグ FL_FREEZE を操作するのを直接行なってたところを OBJ_FREEZE()、OBJ_FROZEN_RAW()、OBJ_FROZEN() といったマクロを利用するのを徹底するようにしています。オブジェクトの freeze の管理は Object Shapes の shape_id_t に埋め込まれるようになっているのでそことの整合性が壊れないようにするため。また freeze のフラグを T_CLASS/T_MODULE では Namespace ごとの fields_obj で管理するようにするための処理を関数に切り出しています。 [ruby-core:122042] [Bug #21330]

ruby-trunk-changes 2025-06-23

今日は主に Namespace 用の struct RClass 構造体のサイズ削減の最適化などがありました。

[7c115b8633] David Rodríguez 2025-06-18 09:22:54 UTC

bundler のダミーサーバーを利用する flasky なテストの修正。

[746e0d3ef4] David Rodríguez 2025-03-05 07:26:36 UTC

bundler の Bundler#SpecSet#- と Bundler::SpecSet#<< というメソッドを deprecated にして警告出力するようにしています。

[627ca420e9] David Rodríguez 2025-06-17 18:33:45 UTC

bundler の定数定義場所をまとめるために移動するリファクタリング

[c3bfce512b] David Rodríguez 2025-06-17 18:37:48 UTC

bundler で gem の取得時? に発生するネットワーク関係や HTTP プロトコルレベルのエラーのうちリトライ対象にしない例外をリストアップしているところを Module#const_get を使ってややメタプログラミング的に書いてた部分を単に配列に列挙するようにシンプルにしています。

[7fe1fc392e] David Rodríguez 2025-06-17 18:38:45 UTC

bundler で gem の取得時? に発生する HTTP プロトコルに関する例外をリストアップしている配列リテラルのスタイル変更。

[8f009601f9] David Rodríguez 2025-06-18 12:24:36 UTC

bundler で gem の取得時? に発生する HTTP プロトコルに関する例外リストに Errno::EADDRNOTAVAIL を追加しています。

[a1d62a3b1c] Nicholas La Roux 2025-06-06 11:41:41 UTC

rubygems でインストール先ディレクトリを作成する時に FileUtils.mkdir_p を利用して親ディレクトリも再帰的に作るようにしています。

[ce38cba528] Nobuyoshi Nakada 2025-06-20 09:26:41 UTC

拡張ライブラリ io/console のテストで IO.console の存在チェックしてからテストメソッドを定義しているところが同じ条件で分かれてたのでひとつのブロックにまとめています。

[393e9a5f3e] Jean Boussier 2025-06-18 08:56:22 UTC

Namespace が有効になっているか環境変数 RUBY_NAMESPACE をチェックして判定する関数 rb_namespace_available() が最初に呼ばれた時に判定してその結果を static 変数に保持しておくようにしていましたが、プロセスの初期化時の関数 Init_enable_namespace() という関数を追加して起動時に判定してしまうようにしています。一応 rb_namespace_available() を呼ぶタイミング如何によってはその ruby スクリプト環境変数をセットすることでスクリプトから有効化できた可能性があったのかもと思いますが、起動時の処理の流れで必ず呼ばれるのであればこれで良さそう。

[96a0c2065a] Jean Boussier 2025-06-18 09:55:05 UTC

struct RBasic::flags のビットフラグに T_CLASS/T_ICLASS/T_MODULE 型オブジェクトの時に環境変数 RUBY_NAMESPACE をチェックして Namespace が有効かどうか判定する前に作成されたコアの組み込みクラスの時にフラグを立てる RCLASS_NAMESPACEABLE というのを追加しています。結果 Namespace が有効じゃなくてもフラグは立つみたいだけどそれは意図的なのかな?

[071b9affe6] Jean Boussier 2025-06-18 10:14:05 UTC

T_CLASS の Namespace ごとに分離されている rb_classext_t を管理する ns_classext_tbl へのアクセスに RCLASS_CLASSEXT_TBL() マクロを常に利用するようにリファクタリングしています。

[ea4a53c595] Jean Boussier 2025-06-18 10:24:48 UTC

struct RClass::ns_classext_tbl にアクセスする RCLASS_CLASSEXT_TBL() をマクロから inline 関数にして 96a0c2065a95d076978de41e8bfacbd19858d0bb で導入した struct RBasic::flags のビットフラグの RCLASS_NAMESPACEABLE が立っているかのチェックをするようにしています。うーんしかしこのビットが立ってない時にはセットしないという変更も行なわれているので、フラグのチェックしなくても結果は NULL になるんじゃないのかな?

[32ee3fab0a] Jean Boussier 2025-06-18 10:31:11 UTC

struct RClass には Namespace 用に rb_classext_t を管理するテーブル ns_classext_tbl のメンバーが増えてますが、これが不要な場合(Namespace 内で新規に定義された Class/Module?)にはそのメンバーのぶんを節約するため struct RClass からは ns_classext_tbl を削り、かわりに ns_classext_tbl を追加した struct RClass_namespaceable という構造体を追加して struct RBasic::flags のビットフラグをみてどちらとして解釈するかを切り替えることで slot にインスタンス変数を埋め込める領域を増やすようにしています。なるほどここまでの変更はこのための布石だったみたいですね。

[c6dd07d66f] Jean Boussier 2025-06-20 10:23:10 UTC

特異クラスの初期化時に親クラスが Namespace によって rb_classext_t を分離する可能性のあるフラグが立ってたら自身も同じフラグを立てるようにしています。

[af6b98f7a2] Nobuyoshi Nakada 2025-04-25 02:15:37 UTC

マシンスタックのオーバーフロー検出時に復旧可能かどうかの判定をしている関数 check_stack_overflow で条件ごとの判定結果を int でマジックナンバーで表していたのを ruby_stack_overflow_critical_level という enum 型の定数を導入しています。

ruby-trunk-changes 2025-06-22

今日は Object Shapes の不具合修正やメソッド呼び出しのキーワード引数に配列リテラルを渡した時の最適化などがありました。

[edbd9ed468] Jean Boussier 2025-06-21 12:43:50 UTC

cd9f447be247478d2eb3da985295735cce20cb23 の Object Shapes でインスタンス変数の管理テーブルを T_IMEMO 型オブジェクトとしてメモリ管理するようにした変更でバッファサイズを拡張する時に capacity のぶんでなく必要とする新規の index のぶんまでだけのメモリ確保しかしていなくて不正メモリアクセスが発生してしまっていた不具合を修正しています。 [ruby-core:122557] [Bug #21445]

[ec20f7feb6] Nobuyoshi Nakada 2025-06-21 16:08:38 UTC

fork(3) が利用可能な環境でのみ使われる関数の定義を HAVE_WORKING_FORK の preprocessor 分岐内に入れるなどの未使用関数/変数の警告抑制のための修正。

[d84a811f31] Nobuyoshi Nakada 2025-06-21 17:00:56 UTC

Random のバックエンドの実装になにを使うかで試す関数の順序を変更しています。まずシステムコールの getrandom(2)/getentropy(2) などを優先し、次にライブラリ関数、最後にデバイスファイルからの読み込みとしているようです。 [ruby-core:122562] [Bug #21448]

[353fa6f0ba] Jeremy Evans 2025-06-20 00:57:20 UTC

メソッド呼び出しのキーワード引数に渡している値がリテラルのみ(副作用やメモリ確保がない)配列だった時に配列オブジェクトの生成を抑制して直接値スタックを引数渡しに使うようにコンパイルするようにしています。

ruby-trunk-changes 2025-06-21

今日は主に標準添付ライブラリ openssl の機能追加や prism の不具合修正、Random で利用する乱数取得の実装の Linux での判定の不具合修正などがありました。

[d31d62d685] Nobuyoshi Nakada 2025-06-20 11:35:50 UTC

並列テストで子プロセス worker がデッドロック? などで止まってしまった時にデバッガでバックトレースを出すための EnvUtil::Debugger クラスで一度出力したら重複して出力するのを抑制するようにしています。

[b6babd9a07] Hiroshi SHIBATA 2025-06-20 16:52:45 UTC

ZJIT の Rust 実装のコメントおよびテストのエラーメッセージの typo 修正。 https://github.com/ruby/ruby/pull/13665

[444b94c087] Kazuki Yamaguchi 2025-06-19 17:08:36 UTC

拡張ライブラリ openssl で配列のインデックスを受けるループ変数の型を int から long に修正しています。

[0d75dd1f47] Kazuki Yamaguchi 2025-06-02 17:30:28 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLContext#ciphers= および #ciphersuites= の rdoc 用コメントに TLS バージョンについての言及を追記しています。

[112ba70647] Kazuki Yamaguchi 2025-06-03 06:00:43 UTC

拡張ライブラリ openssl に OpenSSL::SSL::SSLContext#sigalgs= および OpenSSL::SSL::SSLContext#client_signals= というメソッドを新規追加しています。一瞬 signals と空目しますが sign algorithms の略でしょうかね? 署名に使うアルゴリズムを指定する文字列を指定するようです。サンプルはテストコード参照。NEWS にも追記が欲しいですね。

[1d94a9e1a4] Jeremy Evans 2025-06-20 00:27:11 UTC

prism で PM_CONSTANT_PATH_NODE という AST のノードのキーワード引数部分での処理が漏れていたのを修正しています。

[6602a08aa5] Max Bernstein 2025-06-21 00:15:05 UTC

ZJIT の asm のダンプ時のコメントの出力箇所の調整? https://github.com/ruby/ruby/pull/13662

[dbc596938a] Nobuyoshi Nakada 2025-06-21 04:14:42 UTC

gc/default/default.c で tick_t の型定義のコメントをその preprocessor 分岐の中に移動しています。

[1181a682a6] Nobuyoshi Nakada 2025-06-21 07:52:16 UTC

Random.urandom の実装でシステムコールの getentropy(2) を利用するのは getrandom(2) というシステムコールがない時だけにするよう条件を調節しています。チケットのほうをみるとややこしいことに getentropy() は OS によってシステムコールだったりライブラリ関数だったりするようで、ライブラリ関数の場合結局 getrandom(2) を呼んでたりするのでここで意図している用途ではないので使いたくないため。Linux では syscall() で渡す定数の有無でシステムコールがあるか判定できるのでそれで判定するようにしています。getentropy(2) がシステムコールなのは macOS だけ? のようです。 [ruby-core:122562] [Bug #21448]

[0cec4a14fb] Kazuki Yamaguchi 2025-06-20 10:21:55 UTC

Random.urandom の実装の再修正で arc4random_buf(3) による実装を利用する条件に BSD 系の OS であることとそのバージョンのチェックを追加しています。 Linux での対応のための修正とのことです。

ruby-trunk-changes 2025-06-20

今日は主に ZJIT の VM 命令対応の強化や GitHub Actions のメンテナンスなどがありました。

[87d33583af] Nobuyoshi Nakada 2025-06-16 05:30:55 UTC

GitHub Actions の Launchable に標準出力/標準エラー出力をアップロードするためのファイル名の取り回しを変数経由にするなどのリファクタリング?

[1b018d96d0] Nobuyoshi Nakada 2025-06-16 06:14:45 UTC

GitHub Actions 用のシェルスクリプトで Launchable へのアップロード用のコマンド実行を関数に切り出すリファクタリング

[82dfd44f93] Nobuyoshi Nakada 2025-06-16 10:14:41 UTC

GitHub Actions の Launchable 用の独自アクションでもシェル内の関数を切り出すリファクタリング

[34eaa6418e] Alan Wu 2025-06-17 15:57:01 UTC

ZJIT に VM 命令 dupn の対応の実装を追加しています。

[38d38bd5ce] ywenc 2025-06-12 22:05:04 UTC

ZJIT に VM 命令の objtostring の対応の実装を追加しています。

[2a79d7fcc7] Hiroshi SHIBATA 2025-06-20 00:16:01 UTC

GitHub Actions の dependabot の pull request を自動マージする処理で使う GitHubトークンの secret 名を変更しています。

[5468148581] Hiroshi SHIBATA 2025-06-20 01:44:02 UTC

GitHub Actions の Scorecards 用の workflow で使う ossf/scorecard-action や github/codeql-action/upload-sarif アクションの更新や typo 修正。

[9e8fa9bcd7] Hiroshi SHIBATA 2025-06-20 01:44:31 UTC

GitHub Actions の Scorecards 用の workflow でコメントアウトされていた results.sarif というファイルを artifact としてアップロードするステップを復活させています。

[fafae10d9a] Hiroshi SHIBATA 2025-06-20 02:40:05 UTC

GitHub Actions の pull request に自動で reviewer を割り当てるための workflow で利用する GitHubトークンの secret 名を別のものに変更しています。処理ごとにトークンを分けるようにしているようです。

[1e428366ae] Hiroshi SHIBATA 2025-06-20 02:07:45 UTC

GitHub Actions の Windows の WSL2 でのビルド用の workflow で利用する os を windows-2025 に固定しています。これにより winget のインストールの step が不要になるみたいです。

[e23941677c] Hiroshi SHIBATA 2025-06-20 03:45:54 UTC

GitHub Actions の bundled gems や default gems の更新確認やスタイルのチェックなど細かな作業をしている check_misc などの workflows で GitHubトークンを参照するための secret 名を新しいものに更新しています。

[8ce6546371] git 2025-06-20 04:52:53 UTC

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

[29c7f849db] Hiroshi SHIBATA 2025-06-20 06:33:31 UTC

GitHub Actions のリリース作業用の workflow でも GitHub Actions のトークンの secret 名を変更しています。

[68d6cc6bd7] Nobuyoshi Nakada 2025-06-20 07:47:31 UTC

インデントなどのスタイルを修正するためのスクリプト tool/auto-style.rb で git fetch コマンドの前に git log で fetch が不要か確認して不要ならコマンド実行を抑制するようにしています。

[7a735c4861] Nobuyoshi Nakada 2025-06-20 07:49:13 UTC

同じく tool/auto-style.rb の改行のチェックの正規表現で行末の "\" を許容するような対応をしています。マクロ定義の途中にも対応するためとのこと。

[896f9f6328] Nobuyoshi Nakada 2025-06-06 05:16:22 UTC

GitHub Actions の Launchable 用独自アクションで標準出力/標準エラー出力のアップロード用のファイル指定の方法を変更しています。

[092ea7a163] Hiroshi SHIBATA 2025-06-20 02:17:46 UTC

GitHub Actions の workflows で利用している actions/checkout、ruby/setup-ruby や actions/upload-artifact などのアクションのバージョンを一括で更新しています。

[7addde1ece] Hiroshi SHIBATA 2025-06-20 08:10:45 UTC

GitHub Actions の MinGW 向け workflow では ruby/setup-ruby の更新でビルドできなくなってしまったようなのでバージョンを戻しています。

[d9efc56c16] Nobuyoshi Nakada 2025-06-20 09:28:08 UTC

拡張ライブラリ io/console のテストで端末に Ctrl-C を送出して割り込みを発生させた時の子プロセスの出力に "^C" というのが混じることがあるので削るようにしています。