ruby-trunk-changes 2024-04-10

今日は標準添付ライブラリ reline のバージョン更新、ipaddr の IPAddr#wildcard_mask メソッドの新規追加などがありました。

[6846b98576] Mari Imaizumi 2024-04-09 13:47:19 UTC

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

[88355da673] git 2024-04-09 13:48:19 UTC

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

[0bc71828b5] Nobuyoshi Nakada 2024-04-08 02:55:26 UTC

拡張ライブラリ pty の関数 chfunc() の内容をいくつかの関数に分解するリファクタリング

[13f04e5beb] Nobuyoshi Nakada 2024-04-10 09:03:12 UTC

拡張ライブラリ io/console のテストで子プロセスのコマンドにわたす -I オプションを定数に切り出して daemon 状態(端末に紐付かない状態)で実行するコマンドのテストの時にもそれを渡すようにしています。テスト対象のライブラリじゃないものをロードしてテストしてる状態だったみたいです。

[f9f25d0ed0] Taketo Takashima 2022-08-08 15:50:44 UTC

標準添付ライブラリ ipaddr に IPAddr#wildcard_mask というメソッドを新規追加しています。アドレスファミリーに応じた mask の文字列化した表現を返すメソッドのようです。

ruby-trunk-changes 2024-04-09

今日は主に rubygems のテストで使う Rust のプロジェクトのパッケージ更新や GitHub Actions のメンテナンスなどがありました。

[00cbdb5a8b] Nobuyoshi Nakada 2024-04-08 12:26:11 UTC

GitHub Actions でコミットログに "Documentation" が含まれていた時にビルドを skip していたのを "Document" だけでも skip するようにしています。

[478b4ef9de] Alan Wu 2024-04-08 16:31:33 UTC

bootstraptest/runner.rb で String#match のかわりに String#[] を利用するように変更しています。1.8 というかなり古いバージョンとの互換性のためだったみたいです。

[186374279e] "dependabot[bot]" 2024-04-08 15:11:59 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのテストのためのプロジェクトの rb-sys パッケージのバージョンを更新しています。

[c924322162] "dependabot[bot]" 2024-04-08 15:07:50 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのテストのためのプロジェクトの rb-sys パッケージのバージョンを更新しています。

[3d73cd752f] Nobuyoshi Nakada 2024-04-05 09:53:15 UTC

bundled gems のバージョンの更新を監視して gems/bundled_gems や NEWS を更新するための GitHub Actions の workflow で bundler のテストの rake バージョンも更新するため spec/bundler/support/builders.rb を編集するようにしています。

[4dbd9c7fec] yui-knk 2024-04-08 23:13:19 UTC

Universal Parser のための構造体 rb_parser_config_t の関数ポインタのメンバー ary_new2 が未使用になっていたので削除しています。

ruby-trunk-changes 2024-04-08

今日は Enumerator が内部で作成する Fiber を non-blocking Fiber にする変更や標準添付ライブラリ tmpdir の例外メッセージの強化などがありました。

[5d1702e01a] Samuel Williams 2024-04-07 12:49:01 UTC

余分な変更が混ざってしまったため一度 revert した dfa0897de89251a631a67460b941cd24a14c9b55 の Enumerator 用の Fiber の作成時に non-blocking Fiber にする変更を再度入れています。 https://github.com/ruby/ruby/pull/10481

[4dd9e5cf74] Nobuyoshi Nakada 2024-04-06 08:45:58 UTC

オブジェクトの型をチェックして RUBY_ASSERT() で異常終了させるのをまとめたマクロ RUBY_ASSERT_BUILTIN_TYPE() を定義して使うようにリファクタリングしています。

[6f7e8e278f] yui-knk 2024-04-06 09:51:20 UTC

node.c の rb_node_init() にて NODE の struct RNode::flags に T_NODE をセットしていたのをやめています。NODE はもうオブジェクトの一種として扱われなくなったため?

[2e153fd037] "dependabot[bot]" 2024-04-08 02:59:44 UTC

GitHub Actions の workflows で利用している github/codeql-action アクションのバージョンを更新しています。

[19f4b06b9d] Reznov 2024-04-08 03:51:32 UTC

整数オブジェクトの指定した基数での表記した時の文字数を計算する rb_fix_digits() のループで基数より小さい数になったらもうループを打ち切っていいので 1つループを回る回数を減らすちょっとした最適化(?)。

[76914d474d] Masataka Pocke Kuwabara 2024-04-08 03:41:29 UTC

rubygems の再定義する require での default gems/bundled gems の警告のための lib/bundled_gems.rb で呼び元の特定のために caller_locations を呼び出してバックトレースを検索する処理で nil が返ってきた時の対応を追加しています。 -r オプションで暗黙的に require した場合に発生しうるみたいです。

[76efed65bd] Hiroshi SHIBATA 2024-04-08 07:20:15 UTC

76914d474d93b7485973c3bca4fa43b59f5bd383 の require の警告の修正に対応したテストを追加しています。

[8217fbf4bd] Nobuyoshi Nakada 2024-04-08 09:29:13 UTC

標準添付ライブラリ tmpdir でディレクトリに誰でも書き込みができる権限がついていた時の例外メッセージに問題になったパスを埋め込むようにしています。

[49b31c7680] Étienne Barrié 2024-04-08 10:41:55 UTC

struct RString 構造体のコメントのフラグの説明に chilled string 用のビットフラグ STR_CHILLED の項目を追記しています。 [ruby-core:116382] [Feature #20205]

ruby-trunk-changes 2024-04-07

今日はコマンドラインオプション --dump の引数の指定のしかたの拡張や拡張ライブラリ pty の不具合修正などがありました。

[9b5d4274a2] Nobuyoshi Nakada 2024-03-08 04:57:05 UTC

コマンドラインオプションの --dump の insns_without_opt や parsetree_with_comment のような他のオプションに suffix をつけたものを parsetree+with_comment のように "+" で連結するように変更? しています。 [ruby-core:117088] [Feature #20329]

[df8f1f78f0] Nobuyoshi Nakada 2024-03-18 14:22:30 UTC

9b5d4274a247567c583667f4c8442872d8765d39 の続き。コマンドラインオプション --dump の引数の + で繋げる suffix を別の --dump オプションで渡したりする指定方法も受付けるようにしているようです。 [ruby-core:117088] [Feature #20329]

[977672731f] yui-knk 2024-04-06 10:12:39 UTC

parse.y の WARN_SPACE_CHAR() マクロでの参照する引数名の間違いを修正。

[02f5e627a4] yui-knk 2024-04-06 10:05:53 UTC

parse.y の WARN_IVAL() というマクロが呼び元で INT2NUM() で変換したものを NUM2INT() で戻すよう引数を変換していたので両方削っています。

[0b4db711dd] yui-knk 2024-04-06 10:09:36 UTC

02f5e627a49c28beb421c869e4e1d4525d59d8ac で Universal Parser 用の構造体の関数ポインタのメンバー num2int が不要になったようなので削除しています。

[ad90fdd24c] Jeremy Evans 2024-04-05 02:32:30 UTC

添字つき代入メソッド #[]= にブロック引数を渡せなくしたために不要になった compile.c の処理を削除しています。

[7767db2379] yui-knk 2024-04-06 15:42:17 UTC

parse.y の RIPPER マクロでの preprocessor 分岐で case 文の when 節の重複警告関係の処理を除外するようにしていたのをやめています。また rb_parser_check_literal_when() という関数は check_literal_when() に解明して static 関数にしています。 ripper から呼ぶ必要がなくなったということかな。

[70a0dd4162] yui-knk 2024-04-07 00:46:11 UTC

7767db237935135e14cb0f9ca70aa3a8dea03faa で parse.y の WANR_IVAL() マクロが未使用になったので定義を削除しています。

[6bfabd076b] yui-knk 2024-04-07 00:56:47 UTC

internal/parse.h の存在しなくなった rb_parser_node_case_when_optimizable_literal() 関数の prototype 宣言を削除しています。

[eaa6e4b228] Nobuyoshi Nakada 2024-04-07 04:35:20 UTC

doc/pty/README.ja および doc/pty/README.expect.ja のマークアップを修正しています。

[dfa0897de8] Samuel Williams 2024-04-07 07:18:09 UTC

rb_fiber_new() で Fiber 作成時のデフォルトを non-blocking Fiber を作るように変更しています。コミットログによると Enumerator のためみたいで、確かにこの関数を呼ぶのは Enumerator の作成時だけみたいです。関数名からすると意外。 https://github.com/ruby/ruby/pull/10478
しかしなぜか 6bfabd076b99bd47ee10277b8de24aaa791be69b の internal/parse.h の変更がいっしょに巻き戻ってしまっているようです。

[b5b54c19f6] Nobuyoshi Nakada 2024-04-07 06:28:07 UTC

process.c の ERRMSG1()、ERRMSG2() といった format 文字列で整形する変数の数ごとに定義していたマクロを可変長引数を受け付けるマクロ定義を使って ERRMSG_FMT() として定義するようにリファクタリングしています。しかし使っているところの変更がないので ERRMSG1()/ERRMSG2() は未使用だったみたいです。

[ed4d03ea41] Nobuyoshi Nakada 2023-08-07 23:06:08 UTC

b5b54c19f65a42c9229eff5e978937222d46ca41 と同様に dln_find.c の dln_warning() マクロの定義に可変長引数を受付ける機能を利用するようにしています。

[bdb1fc1e5b] Samuel Williams 2024-04-07 07:57:15 UTC

non-blocking Fiber のテストのための Scheduler の実装で Fiber#resume でなく Fiber#transfer を利用するように変更しています。 https://github.com/ruby/ruby/pull/10479

[0620f006c2] Nobuyoshi Nakada 2023-08-07 23:06:18 UTC

ruby.c のスクリプトファイル名のパスのデリミタを DOSISH というマクロで分岐していたのをやめています。 Windows 以外の環境で DOSISH が定義される環境がないので実質使われないパスだったようです。

[0d93fd0f69] Nobuyoshi Nakada 2023-08-07 23:06:40 UTC

ruby.c の push_include() という関数を削除して呼び元の push_include_cygwin() に展開しています。

[b88e0d6653] Nobuyoshi Nakada 2023-08-08 02:29:50 UTC

0d93fd0f69cf6b8f60d76948b2e7d1144c1cd843 の続きのリファクタリングruby.c の push_include() という関数を唯一の呼び元の ruby_push_include() に展開しています。

[b473d304d4] Samuel Williams 2024-04-07 10:20:22 UTC

dfa0897de89251a631a67460b941cd24a14c9b55 で internal/parser.h の変更が意図せず revert されてしまったので全体をまとめて revert しています。元の変更もあらためて後で入れなおすということみたいです。 https://github.com/ruby/ruby/pull/10478 https://github.com/ruby/ruby/pull/10480

[c4dadfbd47] Nobuyoshi Nakada 2024-04-07 11:54:00 UTC

拡張ライブラリ pty で setpgrp(3) の呼び出し部分を SETGRP_VOID というマクロのチェックで分岐していたのを SETPGRP_VOID をチェックするように修正しています。

[cccffeff2f] Nobuyoshi Nakada 2024-04-07 12:16:26 UTC

拡張ライブラリ pty で setsid(3) がない環境で使われる関数で変数の宣言が足りてなくてビルドできなかったのを修正しています。

ruby-trunk-changes 2024-04-06

今日は主に parser の不要な処理削除や標準添付ライブラリ reline の不具合修正などがありました。

[dbe8886f4d] Peter Zhu 2024-03-21 18:24:06 UTC

deprecated にしていた rb_gc_force_recycle() という C API を削除しています。

[f87e60f1f4] Joshua Broughton 2024-04-05 16:25:45 UTC

irb の例外のバックトレースから不要な部分を削る処理を前のほうに移動しています。よくわかってませんが rails のバックトレース除去の処理などとの衝突を避けるためみたいです。

[46ebc48e62] Peter Zhu 2024-04-05 17:45:12 UTC

GC.add_stress_to_class の rdoc 用コメントに :nodoc: タグを追加してドキュメント生成を抑制しています。デバッグ用のビルド時のみ定義されるメソッドなのでとのこと。

[1f84e1099e] Peter Zhu 2024-04-05 17:46:47 UTC

46ebc48e62e80426da78cdec6d2fbcf267b0ddcf と同様のデバッグ用のメソッド GC.remove_stress_to_class の rdoc 用コメントに :nodoc: タグを追加してドキュメント生成を抑制しています。

[e50590a541] Peter Zhu 2024-04-05 20:13:57 UTC

Symbol#inspect の実装で戻り値が T_STRING 型オブジェクトになっていることをチェックする RUBY_ASSERT() を追加しています。

[37490474c4] Peter Zhu 2024-04-05 20:14:24 UTC

関数 rb_sym2str() でも同様に戻り値が T_STRING 型オブジェクトまたは 0 (Qfalse) になっていることをチェックする RUBY_ASSERT() を追加しています。なにかデバッグ中のようですね。

[a80e8ba1c4] Peter Zhu 2024-04-05 20:14:35 UTC

同様に symbol.c の set_id_entry() でデバッグのためと思われる引数のオブジェクトのタイプをチェックする RUBY_ASSERT() を追加しています。

[43dcf4d1a6] Peter Zhu 2024-04-05 20:14:45 UTC

symbol.c の get_id_serial_entry() でもデバッグのためか引数の enum id_entry_type の値に対応して期待した戻り値のオブジェクトタイプになっているかのチェックをする RUBY_ASSERT() を追加しています。

[c6c75f3399] git 2024-04-05 21:44:54 UTC

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

Universal Parser 用の構造体 rb_parser_config_t の不要になった関数ポインタのメンバー fixnum_p、symbol_p、ary_clear、undef_p を削除しています。

[f022a700bf] yui-knk 2024-04-06 00:39:45 UTC

ISeq へのコンパイル時の関数 rb_iseq_compile_node() で引数の T_IMEMO 型オブジェクトのサブタイプのチェックをしていたのをやめています。

[c2d02a6ac2] Mari Imaizumi 2024-04-06 09:24:47 UTC

標準添付ライブラリ reline のカーソル表示の制御処理で端末情報が terminfo のデータベースから得られない時に例外発生させないで処理をスキップさせるようにしているようです。 https://github.com/ruby/reline/issues/447 https://github.com/ruby/reline/issues/543 https://github.com/ruby/reline/pull/673

[b006919200] Nobuyoshi Nakada 2024-04-06 09:00:56 UTC

gc.c の objspace_each_pages() という関数は GC_CAN_COMPILE_COMPACTION マクロが定義されている時だけコンパイルするように preprocessor 分岐を追加しています。

ruby-trunk-changes 2024-04-05

今日は Kernel#load の第2引数に true を渡してロードしたスクリプト内のトップレベルのメソッドに影響するメソッド群(public, private など)の不具合修正や parser まわりの不要コード削除などの変更がありました。

[3ac6a03b2e] Nobuyoshi Nakada 2024-04-03 14:31:23 UTC

SIGCHLD の処理に待ちリストを独自に管理するみたいな実装をした 054a412d540e7ed2de63d68da753f585ea6616c3 はその後の変更でほぼ無用になっていたみたいで残っていたコードを revert しています。

[ef19234b10] Matt Valentine-House 2024-04-03 19:46:30 UTC

gc.c の rb_objspace_alloc() と Init_heap() の内容を1つの関数にマージして Init_BareVM() から呼び出すようにリファクタリングしています。

[58918788ab] Nobuyoshi Nakada 2024-03-16 10:29:57 UTC

トップレベルでの public/private/protected や ruby2_keywords が Kernel#load の第2引数に true を渡して無名 Module 内で実行するスクリプトではエラーになっていた不具合を修正しています。 [ruby-core:117200] [Bug #20342]

[39afab6083] yui-knk 2024-04-04 15:04:01 UTC

node.c から Universal Parser 向けの未使用になってたマクロ定義を削除しています。

[3a674c9c65] Jeremy Evans 2024-03-18 17:54:27 UTC

compile.c で df5ef282337764508a1e1d93459d7a280e46647c0d5b16599a4ad606619228623299b931c48b597b で文法的に禁止された []= メソッドでのキーワード引数やブロック引数のための処理が残っていたのを削除しています。

[fc8fe78c07] yui-knk 2024-04-04 14:19:31 UTC

node.h の構造体 struct node_buffer_struct のメンバー unmarkable と markable というリストはマージして1つのメンバーでまとめて持つようにリファクタリングしているようです。

[cebbe18eed] yui-knk 2024-04-04 14:53:47 UTC

node.c の rb_ast_node_type_change() という assertion するための関数は既に常に異常終了しないようになっていて不要だったので削除しています。

[4cbe4e49c7] tomoya ishida 2024-04-04 16:15:50 UTC

標準添付ライブラリ reline の Reline::LineEditor#finalize を呼ぶために全例外を rescue していたのを ensure 節にまとめています。 https://github.com/ruby/reline/pull/668

[4e48d2724e] tomoya ishida 2024-04-04 16:38:41 UTC

標準添付ライブラリ reline の readline の呼び出しを Mutex で排他処理するようにしています。 https://github.com/ruby/reline/pull/669

[58d03c3458] David Rodriguez 2024-04-04 10:39:23 UTC

bundler のテストのエラー修正。

[bd728a625a] yui-knk 2024-04-04 23:12:09 UTC

parse.y の未使用の関数の削除。

[f890070fd3] "dependabot[bot]" 2024-04-05 02:29:59 UTC

GitHub Actions の workflows で利用する lewagon/wait-on-check-action アクションのバージョンを更新しています。

[9d1d2de2fe] yui-knk 2024-04-05 00:20:59 UTC

NODE の NODE_ARGS_AUX 型のための構造体 rb_node_args_aux_t のメンバー nd_plen の型を long から int に変更しています。参照するたびに rb_long2int() で変換していたので元から int にする変更。

[b60bf35cc7] git 2024-04-05 06:59:50 UTC

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

[16c5e34c74] Hiroshi SHIBATA 2024-04-05 08:04:00 UTC

bundler のテストで利用する rake のバージョン指定を 13.2.1 に更新しています。

ruby-trunk-changes 2024-04-04

今日は parse.y の CRuby 依存の実装を除去する活動の一環の変更や拡張ライブラリ json の更新などがありました。

[4960a598d6] Peter Zhu 2024-04-01 19:46:51 UTC

RubyVM::InstructionSequence を GC.compact で移動可能にした変更を revert していた 16c18eafb579cf2263c7e0057c4c81358fe62075 を revert して、つまり再度移動可能にしています。 iseqw_new() の rb_check_typeddata() の戻り値の扱いに修正がありそう。

[f928e60d41] Nobuyoshi Nakada 2024-04-03 14:14:52 UTC

signal.c の CHECK_STACK_OVERFLOW() マクロで siginfo_t::si_code をチェックしてシグナルの送信元がカーネルからかどうか確認してから stack overflow のチェックに入るようにしています。

[8388604a4c] Takashi Kokubun 2024-04-03 17:38:00 UTC

GitHub Actions での pull request の自動 reviewer 設定をやめて .github/CODEOWNERS ファイルを置くようにしていたのをまた revert して necojackarc/auto-request-review アクションの利用に戻しています。

[c7cda1ae9b] Takashi Kokubun 2024-04-03 19:49:36 UTC

YJIT のスタックからオペランドの情報を取得する Context.sp_opnd メソッドの引数をバイト数から VALUE 型の slot 数での指定にリファクタリングしています。 https://github.com/ruby/ruby/pull/10442

[571bfc7402] Maxime Chevalier-Boisvert 2024-04-03 21:28:01 UTC

doc/yjit/yjit.md の YJIT を使う時のパフォーマンスのための実装方針についての記述を更新しています。 https://github.com/ruby/ruby/pull/10445

[6056773105] yui-knk 2024-04-03 10:28:55 UTC

Ractor のための magic comment shareable_constant_value の処理を parse.y から compile.c に移動しています。 parse.y の CRuby 依存を減らすための一環でしょう。

[41e9d6641b] Yusuke Endoh 2024-04-04 01:30:29 UTC

Object#method_missing を public にしてから require した時の GC のテスト? で子プロセスのタイムアウトを設定しています。

[0be7133b7f] Hiroshi SHIBATA 2024-03-29 09:23:27 UTC

rubygems の設定ファイルから読み込んだ内容をインスタンス変数にセットするところの順序の入れ替え。

[0930231361] Hiroshi SHIBATA 2024-03-29 09:41:09 UTC

rubygems の設定ファイルのキーに Symbol ではなく文字列を使っても同じように読み取れるようにしているようです。

[066bd28cff] tompng 2024-04-03 09:43:24 UTC

拡張ライブラリ jsonjson/generic_object の読み込みを autoload を使って遅延するようにしています。3.4 から ostruct の警告が出るのでそれを実際に利用する時だけにするためみたいです。

[514b415d90] Hiroshi SHIBATA 2024-04-04 02:36:47 UTC

拡張ライブラリ jsonjson/generic_object.rb で require "ostruct" が LoadError を発生させた時に独自に警告メッセージを出力するようにしています。

[ab65148c78] Hiroshi SHIBATA 2024-04-04 03:29:00 UTC

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

[bdfbeb90c9] git 2024-04-04 03:48:12 UTC

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

[f057741c5d] yui-knk 2024-04-03 22:46:28 UTC

parse.や compile.c でリテラルのための NODE の種別 NODE_LIT はもう未使用になったので enum の定義や分岐を削除しています。

[fc67091fc8] Yusuke Endoh 2024-04-04 04:23:52 UTC

テストで assertion メソッドの第1引数に単項演算子メソッドの String#@+ が使われている時に警告を抑制するために明示的なかっこを追加しています。

[cb30c3d2b3] Yusuke Endoh 2024-04-04 04:24:09 UTC

テストで未使用の変数の警告抑制のために "_" 変数への代入を追加しています。

[d910d64ed9] Yusuke Endoh 2024-04-04 04:29:11 UTC

テストでメソッドの再定義の警告抑制のため再定義前に Module#remove_method を追加しています。

[295f2a3305] Yusuke Endoh 2024-04-04 04:30:27 UTC

enc/make_encmake.rb で文字列リテラルに対して破壊的メソッドを利用していたのを chilled string の警告抑制のため非破壊的メソッドで書き直しています。

[8aa8fce320] HASUMI Hitoshi 2024-04-04 02:06:15 UTC

compile.c の compile_shareable_constant_value() で switch 文の default 節を追加して rb_bug() で異常終了するようにしています。警告抑制のため。

[6d82be499b] Yusuke Endoh 2024-04-04 05:10:23 UTC

ARGF.puts のテストで警告抑制のため子プロセス起動時のコマンドラインオプションに -W0 を追加しています。

[80e31663f3] tomoya ishida 2024-04-03 15:36:17 UTC

標準添付ライブラリ reline の Reline::LineEditor のエスケープシーケンスがある時のインデントの修正をしているようです。

[8088c88d01] tomoya ishida 2024-04-03 15:50:03 UTC

標準添付ライブラリ reline の割り込みで端末モードを戻すのに失敗することがあった不具合を修正。 https://github.com/ruby/reline/pull/646

[27622f3eb9] Hiroshi SHIBATA 2024-04-04 09:17:30 UTC

README から既に動かしてない AppVeyor のバッジを削除しています。

[f5e387a300] HASUMI Hitoshi 2024-03-29 07:18:14 UTC

ast.c から rb_script_lines_for() という関数の実装を ruby_parser.c に移動しています。 RubyVM::AbstractSyntaxTree.of の実装からも呼んでいましたがこれは不要ということで呼び出しを削っています。

[64b0f4303e] Nobuyoshi Nakada 2024-04-04 09:06:06 UTC

ARGF のテストで一時ファイルを作るのにヘルパーメソッドを利用するようにリファクタリングしています。

[184db1fd6a] Nobuyoshi Nakada 2024-04-04 09:22:27 UTC

ARGF.write に複数の文字列を引数に受け取れるように拡張しています。

[cfd48adb2f] yui-knk 2024-04-04 05:52:34 UTC

Universal Parser 用の rb_parser_config_t 構造体の関数ポインタのメンバー ractor_make_shareable が不要になっていたので削除しています。