ruby-trunk-changes 2022-12-09

今日は default gems や bundler の upstream からのマージや拡張ライブラリ objspace での Object Shapes の情報のダンプ対応の追加、irb の組み込みコマンド show_cmds の追加、拡張ライブラリ strscan の StringScanner#named_captures メソッドの新規追加 などがありました。

[6081fd4564] Jean Boussier 2022-12-08 08:44:58 UTC

標準添付ライブラリ net/protocol のテストに 8547f61dafa1ea1a18b6f823320e3fcf97e1a156 で修正した不具合に対応するテストを追加しています。コミットログには失敗するテストを追加とありますがたぶん upstream とこちらでコミットの順序が違うのかと。

[e9f6d6b3fb] Jean Boussier 2022-12-08 09:15:06 UTC

.gitignore に *.o.tmp という拡張子を追加しています。

[5738ae70d9] Jimmy Bourassa 2022-12-08 15:38:23 UTC

関数 rb_gc_mark_locations() の Doxygen 用コメントに引数の start と end がそれぞれ始点は範囲に含み終点は含まないというのを明記しています。

[b19490f75d] Nobuyoshi Nakada 2022-12-07 12:41:36 UTC

test/runner.rb でテスト実行時の GEM_HOME、GEM_PATH を設定して展開した bundled gems をテスト中に参照できるようにしているようです。

[73771e4b19] Jean Boussier 2022-12-06 11:56:51 UTC

拡張ライブラリ objspace の ObjectSpace.dump_all に shapes というキーワード引数を追加して Object Shapes の情報もダンプできるようにしています。さらに Shapes の情報をダンプする専用のメソッド ObjectSpace.dump_shapes も新規追加しています。 [NEWS] への追記が必要そうですね。というかこのレベルの変更をチケットなしで入れるのはいいのか? https://github.com/ruby/ruby/pull/6868

[2cea8e014d] Takashi Kokubun 2022-12-08 18:31:45 UTC

mjit.c の内部的なクラスを保持する static 変数 rb_cMJITCompiler と rb_cMJITIseqPtr を rb_gc_register_mark_object() で mark 時の root として登録していたのを mjit_mark() 関数内で mark するように変更しています。 mjit_mark() は rb_vm_mark() から呼ばれていて、実質常に呼ばれるのでまあ効果としては同じと思ってよさそう。

[3956bb859c] Stan Lo 2022-12-08 19:10:19 UTC

irb の組み込みコマンドに show_cmds というのを追加して組み込みコマンドの一覧を表示できるようにしているようです。 これも [NEWS] に追記が必要そう。 https://github.com/ruby/irb/pull/463

[a87f802f1e] Stan Lo 2022-12-08 19:11:47 UTC

irb の組み込みコマンド debug のテストで子プロセスが leak しないよう停止させる処理を追加しています。

[2ae26554de] Alan Wu 2022-12-08 18:23:46 UTC

GitHub Actions の YJIT のテストの workflow の check-yjit-bindings というテストの step に hint: という設定を追加しています。エラー時に表示されるメッセージとかかな?

[47a5b34aba] Alan Wu 2022-12-08 20:02:21 UTC

yjit/yjit.mk の make のターゲット check-yjit-bindings を削除しています。2ae26554de200adc0d557776e2d2c3eb91c6ec90 で hint を追加した GitHub Actions でのテストも yjit-bindgen に変更しています。

[bb8afd7265] Alan Wu 2022-12-06 17:06:25 UTC

あるオブジェクトの特異クラスに Module#prepend を利用していた時に元のオブジェクトを freeze すると通常は特異クラスも freeze されるところが prepend による T_ICLASS が影響して freeze されなくなっていたという不具合を修正しています。 [ruby-core:111138] [Bug #19169]

[8bbf4e5d8d] Sutou Kouhei 2022-12-08 20:58:40 UTC

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

[234c3a056e] git 2022-12-08 21:00:41 UTC

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

[12b7c129bf] Stan Lo 2022-12-08 21:05:33 UTC

irb の組み込みコマンドの引数が不足していた時に ArgumentError 例外を発生させていたのを CommandArgumentError という例外に変更して、irb で捕捉してバックトレースを表示せずにメッセージだけ出すようにしています。

[c9076d546a] Stan Lo 2022-12-08 21:46:51 UTC

irb の組み込みコマンド irb_help の別名に show_doc を追加しています。 https://github.com/ruby/irb/pull/475

[b26c9ce5e9] Maxime Chevalier-Boisvert 2022-12-08 22:31:33 UTC

YJIT で VM の命令 opt_newarray の JIT コンパイル対応を追加しています。 rb_vm_opt_newarray_min() 関数を呼ぶコードを生成しているような感じですね。 https://github.com/ruby/ruby/pull/6888

[51ef991d8d] Takashi Kokubun 2022-12-08 22:33:18 UTC

YJIT の Rust 実装の Context 構造体の Copy trait を削除して明示的な clone() の呼び出しを書くようにしています。 https://github.com/ruby/ruby/pull/6889

[e714907d82] Alan Wu 2022-12-08 20:03:47 UTC

YJIT の Rust 実装で利用しているパッケージ群のバージョンを更新しています。主に C の binding を扱うパッケージを更新しているみたいです。

[6ea3edbdad] Janosch Müller 2022-12-08 21:14:08 UTC

Kernel#loop の rdoc 用コメントのサンプルコードのちょっとした変更。

[95b423f93a] Takashi Kokubun 2022-12-09 04:35:31 UTC

irb のバージョンを 1.6.0 に更新しています。

[54a6bd2f00] git 2022-12-09 04:36:27 UTC

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

[ec184077bc] Takashi Kokubun 2022-12-09 05:42:15 UTC

mjit.c の未使用になっていた rb_nativethread_cond_t の変数群を削除しています。

[d7baa17b49] Hiroshi SHIBATA 2022-12-09 05:57:29 UTC

拡張ライブラリ etc のバージョンを 1.4.2 に更新しています。 a0deb649098979ec1c7349080a32415be6185de1 で 1.4.1 にしてから特に変更はないけど、upstream でなにか変更があってリリースされたんですかね。

[db09ddf862] git 2022-12-09 05:58:23 UTC

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

[fa64889abb] Takashi Kokubun 2022-12-09 06:36:35 UTC

標準添付ライブラリ erb の gemspec ファイルの spec.email の kokubun さんのメールアドレスを変更しています。

[b749bc05d0] Nobuyoshi Nakada 2022-11-30 13:44:04 UTC

99cad3fccdb9e7a66ff4c8231d43dafa336b2687 で標準添付ライブラリ rdoc の rd 記法の parser 部分で一部コメントアウトしていたのとその後の f0c9d2a0c801569725459420acefc8d983bbf307 の修正 を revert しています。コミットログ(Use Tempfile)との関係がよくわからないですが……。

[33aa06e3e6] Takashi Kokubun 2022-12-09 06:38:55 UTC

MJIT のソースコードのヘッダ部分の Copyright に kokubun さんの名前を追記したり、元からあったエントリのメールアドレスを ruby-lang.org のドメインのものに変更したりしています。doc/ChangeLog-2.3.0 に記載されていたメールアドレスも変更しています。

[bfc225764e] Takashi Kokubun 2022-12-09 06:40:34 UTC

mjit.c と mjit.h のヘッダコメントの説明文を修正しています。

[0dc5c117a5] Takashi Kokubun 2022-12-09 06:53:27 UTC

MJIT の構造体 struct rb_mjit_unit のメンバー compact_p を削除してかわりに type というメンバーを追加、create_unit() の引数を rb_iseq_t * から struct rb_mjit_unit の type の定数に変更して NULL を渡した時に struct rb_mjit_unit::compact_p フラグを立てるという制御をしていたのを type を指定して作成するように変更しています。従来の iseq を設定した rb_mjit_unit を作るのにはそのための関数 create_iseq_unit() を追加してここで設定するようにしています。他の type を追加したくなったのでそのための変更とのこと。

[97ed056274] Takashi Kokubun 2022-12-09 06:58:39 UTC

mjit.h の定数 MJIT_FUNC_NOT_QUEUED の名前を MJIT_FUNC_NOT_COMPILED に変更しています。

[4885aa9a7c] Takashi Kokubun 2022-12-09 07:06:20 UTC

mjit.c の custom オプションを判定しているところにコメントを追記しています。

[260a00d80e] Takashi Kokubun 2022-12-09 07:08:34 UTC

MJIT のコンパイラによるコンパイル失敗時に子プロセスを待つ処理を追加しています。

[643918ecfe] Hiroshi SHIBATA 2022-12-08 23:46:14 UTC

標準添付ライブラリ csv に upstream から 3.2.6 をマージしています。

[bcf01b18cf] Hiroshi SHIBATA 2022-12-08 23:51:13 UTC

標準添付ライブラリ csv に upstream からテストの修正をマージしています。

[4e31fea77d] Hiroshi SHIBATA 2022-12-09 04:03:33 UTC

拡張ライブラリ strscan に upstream から 3.0.5 をマージしています。 StringScanner#named_captures という新規メソッド追加があるみたいですね。これも [NEWS] に追記が必要そう。

[286812bcf3] Hiroshi SHIBATA 2022-12-09 04:43:01 UTC

拡張ライブラリ fiddle に upstream から 1.1.1 をマージ。 Fiddle の定数に C の同名の定数の数値を得る Fiddle::Qtrue, Fiddle::Qfalse, Fiddle::Qnil, Fiddle::Qundef が追加されています。これも [NEWS] が必要かな。

[7d04cddfef] Hiroshi SHIBATA 2022-12-09 05:03:43 UTC

8bbf4e5d8dccba3adf07fb56a38c062477653aec で一旦 3.0.5 に上げた拡張ライブラリ stringio のバージョンを 3.0.4 に戻しています。また upstream から変更をマージしているようです。内容は rdoc 用コメントの修正だけみたいですけど。

[3b45498d3e] Hiroshi SHIBATA 2022-12-09 05:18:20 UTC

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

[98e33aa992] Hiroshi SHIBATA 2022-12-09 05:19:59 UTC

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

[d928ebacb2] Hiroshi SHIBATA 2022-12-09 05:36:54 UTC

拡張ライブラリ psych に upstream からマージ。テストの JRuby でのスキップの追加だけのようです。

[a4e14b9d9d] Hiroshi SHIBATA 2022-12-09 05:45:51 UTC

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

[4cbd3e1944] Hiroshi SHIBATA 2022-12-09 05:54:10 UTC

標準添付ライブラリ rdoc に upstream から markdown 記法の parser の変更をマージしています。

[9557c8edf2] Hiroshi SHIBATA 2022-12-09 06:00:11 UTC

標準添付ライブラリ net/protocol の BufferedIO の initialize でインスタンス変数 @rbuf_empty を初期化しておくようにしています。

[0677bbe3ff] Hiroshi SHIBATA 2022-12-09 06:12:51 UTC

標準添付ライブラリ syntax_suggest の SyntaxError#path がない環境をサポートするための workaround まわりを変更しています。

[93ac1503be] Hiroshi SHIBATA 2022-12-09 06:13:23 UTC

標準添付ライブラリ syntax_suggest のテストで ruby 本体内でテストするために spec_helper.rb の lib_dir というメソッド内で分岐して lib/ ディレクトリの相対パスを切り換えるようにしています。

[c668eaff1e] git 2022-12-09 07:37:03 UTC

643918ecfe9c980f251247de6acd3be6280da24c からの一連の変更に対応して NEWS の default gems のバージョンリストも更新しています。

[8893913ae6] Takashi Kokubun 2022-12-09 07:41:12 UTC

構造体 struct rb_iseq_constant_body の jit_unit メンバーの名前を mjit_unit と変更して、MJIT 専用の項目であることがわかりうやすいようにしています。逆に jit_func と total_calls という項目は YJIT でも使うので USE_MJIT が偽で USE_YJIT が有効な時にも定義するようにしています。

[f25e76fddd] Takashi Kokubun 2022-12-09 07:48:30 UTC

8893913ae6da33662201d0a0e6ba2d37f50630ca で YJIT 有効時にも定義するようにした構造体 struct rb_iseq_constant_body のメンバー jit_func や total_calls のコメントを整形し、改名した mjit_unit にもコメントを追加しています。

[e96b64f5e7] Charles Oliver Nutter 2022-12-09 04:43:46 UTC

拡張ライブラリ date の gemspec ファイルに JRuby 向けの分岐を追加して spec.files や spec.extensions の設定をしないようにしています。

[01cf3ab3b8] Hiroshi SHIBATA 2022-12-09 07:56:36 UTC

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

[7c438328d5] git 2022-12-09 07:59:57 UTC

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