ruby-trunk-changes 2024-03-15

今日は主に irb の組み込みコマンド disable_irb の追加や VM 命令コンパイル時の最適化の不具合修正などがありました。

[83618f2cfa] Peter Zhu 2024-02-26 20:07:28 UTC

MSAN のメモリリーク検出対応のためにプロセス終了時に可能なかぎりメモリ解放を徹底することを指示するフラグの値をチェックする C API ruby_free_at_exit_p() というのを追加しています。うーむ、これを使ってまでメモリ解放してくれる拡張ライブラリがどのくらいあるかという問題はあると思いますが……。 [ruby-core:116963] [Feature #20306]

[3822ca9884] hogelog 2024-03-14 15:40:21 UTC

irb の組み込みコマンドの disable_irb というのを追加しています。どういうこと? と思いましたが Binding#irb をなにもしないように再定義することで binding.irbデバッグ用のブレイクポイントみたいにしていたところを次から素通りさせるようにするためのものみたいです。なるほど。 https://github.com/ruby/irb/pull/898

[d10afe0357] Go 2024-03-14 15:40:59 UTC

irb の補完処理の Class#name の呼び出しで例外が発生した時に捕捉する修正。 https://github.com/ruby/irb/pull/899

[161545d55d] Jean byroot Boussier 2024-03-14 16:09:03 UTC

標準添付ライブラリ reline で文字列リテラルに String#+@ をつけて frozen_string_literals が true になっても動くようにしています。実際に magic comment はつけてないですけどデフォルトを frozen_string_literals: true にしようというチケットがあるのでその準備ということみたいです。 [ruby-core:116382] [Feature #20205]

[8e1831406f] Peter Zhu 2024-02-14 15:52:43 UTC

互換性のために残してあった gc.c の RB_NEWOJ() マクロと rb_newobj() 関数の定義を削除しています。 [ruby-core:116760] [Feature #20265]

[ff51dc5654] Peter Zhu 2024-02-14 17:04:48 UTC

同じく RB_NEWOBJ_OF() マクロと rb_newobj_of() 関数の定義を削除しています。 [ruby-core:116760] [Feature #20265]

[09d8c99cdc] Jean Boussier 2024-03-13 11:50:11 UTC

bootstraptest/、 test/、 tool/ 配下のスクリプト群で frozen_string_literals: true がデフォルトになっても動くように dup や String#+@ を追加しています。

[b0be2961f7] Takashi Kokubun 2024-03-14 17:08:23 UTC

misc/yjit_perf.py という YJIT のプロファイリング用のスクリプトで perf の python 拡張に依存しないようにしている? みたいです。 https://github.com/ruby/ruby/pull/10246

[4559a161af] Peter Zhu 2024-03-13 17:58:03 UTC

GC の root となる rb_objspace_t::global_list というリスト構造体を rb_vm_t::gloabl_object_list に移動しています。 mark_object_ary は rb_vm_t に所属しているのでそれにあわせるためとのこと。

[c2170e5c2b] Peter Zhu 2024-03-14 17:52:20 UTC

4559a161af5cc57c129e3b2806ae7c0cd989b8b7 の再修正で rb_vm_t に追加したメンバー名を gloabl_object_list から global_object_list に修正しています。

[1d9f99144b] Benoit Daloze 2024-03-14 20:44:52 UTC

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

[ed2f685253] Benoit Daloze 2024-03-14 20:44:53 UTC

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

[c388784943] Jeremy Evans 2024-03-14 21:45:13 UTC

VM 命令へのコンパイル時の peephole optimization で引数処理のための splatarray による中間配列抑制の最適化でチェックすべき命令の位置を間違えていたのを修正しています。

[193ebc3c3a] toshimaru 2023-12-13 19:46:20 UTC

標準添付ライブラリ rdoc のテストに RDoc::TokenStream のテストをいくつか追加しています。

[3fcab3cddf] Adam Daniels 2022-01-13 15:06:18 UTC

標準添付ライブラリ rdoc で ri のインタラクティブモードを使う時に Readline.readline でヒストリが有効になるようにしています。

[a1ced60692] Nobuyoshi Nakada 2022-06-30 15:57:15 UTC

拡張ライブラリ stringio で StringIO.new に明示的に nil を渡した時に内部のバッファに nil が設定されてしまってエラーになる不具合を修正しています。

[f082605735] Nobuyoshi Nakada 2024-03-15 04:55:47 UTC

make outdate-bundled-gems のためのツール tool/outdate-bundled-gems.rb で --help オプションを受付けてヘルプメッセージ出力するようにしています。 optionparser を使ってるわけじゃなくて自分自身を File.foreach で読んでコメントを切り抜いて表示するという簡易な実装です。

[eceb36c7b9] Nobuyoshi Nakada 2024-03-15 05:11:16 UTC

f0826057350555f802d5e27a26b6b91510182ccb と同様な簡易な実装で tool/downloader.rb に --help オプションを追加しています。

[823727538e] Nobuyoshi Nakada 2024-03-15 05:12:08 UTC

tool/downloader.rb と tool/outdate-bundled-gems.rb のオプションに --dryrun の別名として --dry-run も追加しています。 --help によるヘルプメッセージ的には --dry-run のほうを正式なオプションとしているようです。

[99024a1602] Hiroshi SHIBATA 2024-03-15 06:04:22 UTC

gems/bundled_gems の minitest のテストに使う commit hash の指定を削除しています。

[59785680dd] Peter Zhu 2024-03-14 18:07:09 UTC

gc.c の未使用のマクロ GC_NOTIFY の定義を削除しています。

[03e7b266a7] Nobuyoshi Nakada 2024-03-15 09:31:59 UTC

特殊変数 $; への代入の deprecated warning のテストを追加しています。

[1d91a1ad2d] Nobuyoshi Nakada 2024-03-15 09:32:41 UTC

警告のカテゴリに関するテストで 1ad366134ded1667745dd9fa70919051869f8d6c で追加した Warning.categories メソッドを使ってカテゴリのリストを得るようにリファクタリングしています。

[40ecad0ad7] HASUMI Hitoshi 2024-03-15 13:14:57 UTC

rubyparser.h の警告除去のため RUBYPARSER_ATTRIBUTE_FORMAT() というマクロを追加してコンパイラの __attribute__() でフォーマット文字列の指定つきの関数宣言をするようにしています。

[0dbe3af417] Xavier Noria 2024-03-09 12:58:01 UTC

Module#name の rdoc 用コメントの call-seq に nil が返る可能性があることを明記しています。また説明文でマークアップを追加。

[a26e3bf360] Xavier Noria 2024-03-09 12:58:49 UTC

remove_instance_variable や Module#set_temporary_name などの rdoc 用コメントの英文修正。

[9284fe123e] Xavier Noria 2024-03-09 12:59:24 UTC

variable.c の rb_tmp_class_path() で if ... else の分岐の if のブロックで return しているので else 節を削って if 文の外に出すリファクタリング

[077ac25ed8] Xavier Noria 2024-03-09 13:00:02 UTC

Module#const_missing の rdoc 用コメントに必ずしもメソッド内で対象の定数を定義する必要はないことを追記。また英文の修正。

[ec4333c970] Pierre Merlin 2024-03-15 13:23:50 UTC

doc/syntax/exceptions.rdoc に ensure 節の評価値は(明示的に return しないかぎり)ブロックやメソッドの評価値(戻り値)にならない旨追記しています。