ruby-trunk-changes 2022-12-24

今日は rubygems/bundler の更新や NEWS の更新、ドキュメントの修正などがありました。

[97280faf28] Peter Zhu 2022-12-21 16:32:09 UTC

NEWS の Variable Width Allocation についてのエントリに Shopify のブログへのリンクを追加しています。25日に公開するのでまた今は 404 とのこと。

[65920cfc40] Yusuke Endoh 2022-12-19 08:15:31 UTC

addr2line.c の backtrace のアドレス取得時に Apple Silicon 版の時に下位 47bits だけ取得するようビットマスクをかけるようにしています。上位には authentication bits というのがあって実際のアドレスの数値と違ってしまってたようです。

[91076b2c59] zverok 2022-12-21 19:22:38 UTC

SyntaxError や LoadError の path メソッドを rb_attr() で定義する時に rdoc によるドキュメント化でプロパティ名に変数名がそのまま使われるみたいなので path という変数を定義してそれに idPath を代入してから渡すようにしています。

[b3d57fdd64] zverok 2022-12-21 19:23:14 UTC

Struct の rdoc 用コメントの Struct.new のキーワード引数 keyword_init についての記述のサンプルを追加しています。

[64cdf1936a] zverok 2022-12-21 19:51:08 UTC

メソッド定義の実体(C の関数)は Method#== と同じものを使っている UnboundMethod#== メソッドの rdoc 用コメントを Method#== とは別にドキュメント化するために、unbound_method_eq というマクロを定義してこのマクロ定義のところに UnboundMethod#== の rdoc 用コメントを付けるようにしています。なるほど。

[5c04ff944e] zverok 2022-12-21 19:52:55 UTC

GC.latest_gc_info の rdoc 用コメントの call-seq のインデント修正のみ。

[c621c6140a] zverok 2022-12-21 20:10:21 UTC

Fiber の rdoc 用コメントの call-seq の記法修正やクロスリファレンスのための記述修正など。

[d61a4cec61] zverok 2022-12-21 20:33:48 UTC

IO の rdoc 用コメントに IO.new の新たなキーワード引数 path の記述を追記しています。

[7891f94071] Peter Zhu 2022-12-23 14:33:51 UTC

T_ARRAY 型オブジェクトでバッファを slot に埋め込みにできるかどうかを判定する rb_ary_embeddable_p() で freeze された配列は embed できないように条件を追加しています。 freeze されているというのがバッファの共有元になる条件として使われているのでバッファを移動できないためとのこと。ARY_SHARED_ROOT_P() の判定とは別に必要なのかな?

[1876cda972] Peter Zhu 2022-12-23 14:42:18 UTC

GC のテストに共有バッファを持つ Array オブジェクトの compaction のテストケースを追加しています。

[ee60756495] "NARUSE, Yui" 2022-12-23 17:24:55 UTC

65920cfc40b47e9e037e0536b2b7de8f0cf30fc3 の addr2line.c で Apple Silicon でのアドレスの上位ビットを消す変更を revert して vm_dump.c の backtrace() 関数内の signal trampoline の処理のほうに ARM64 用の時の preprocessor 分岐を追加して、アドレスの上位ビットクリアもここに追加しています。 https://github.com/ruby/ruby/pull/7015

[1d3bfd804c] Takashi Kokubun 2022-12-23 18:18:57 UTC

shape.h で JIT 用に export していた関数のうち不要なものを export 対象からはずすようにしています。 https://github.com/ruby/ruby/pull/7007

[e8b0180974] Yusuke Endoh 2022-12-19 13:12:34 UTC

TRICK 2022 の受賞作品を sample/trick2022/ に追加しています。

[a8485291bb] Yusuke Endoh 2022-12-19 13:32:48 UTC

test/test_trick.rb に e8b0180974a1f51ae3894d3e055461a1037c778d で追加した TRICK 2022 の作品のテストを追加しています。

[af4cd997a1] Yusuke Endoh 2022-12-19 16:20:21 UTC

e8b0180974a1f51ae3894d3e055461a1037c778d で追加した TRICK 2022 の作品の行末の空白を除去しています。

[11ad9a42d7] Samuel Williams 2022-12-23 18:52:10 UTC

IO::Buffer#pread と IO::Buffer#pwrite で offset 引数が利用されていない部分があった不具合を修正しています。 https://github.com/ruby/ruby/pull/7012

[c3c116f6a6] Victor Shepelev 2022-12-23 22:48:58 UTC

non-blocking fiber 用の Scheduler のインターフェースの rdoc 用コメントをドキュメント化するためのダミーの rb_define_method() に #io_write, #io_pread, #io_pwrite, #io_select などのメソッド定義と rdoc 用コメント自体が抜けてたのを追加。また IO::Buffer にもいくつかのメソッドの rdoc 用コメントを追加しています。 https://github.com/ruby/ruby/pull/7016

[640dca9ae7] zverok 2022-12-22 21:29:44 UTC

RubyVM::AbstractSyntaxTree.parse の rdoc 用コメントの call-seq にキーワード引数の記述が抜けてたので追加。また説明も追記しています。

[d5635dfe36] Nobuyoshi Nakada 2022-12-24 02:27:35 UTC

Dir のテストでテストメソッド内での HOME と LOGDIR という環境変数を消す処理をヘルパーメソッド化して、復旧処理を teardown に移動するリファクタリング

[f6620037ba] Hiroshi SHIBATA 2022-12-21 23:20:23 UTC

rubygems と bundler を upstream からマージしてバージョンをそれぞれ 3.4.0, 2.4.0 に更新しています。

[03e030d463] git 2022-12-24 07:57:38 UTC

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

[8263feaa22] Hiroshi SHIBATA 2022-12-24 08:20:09 UTC

NEWS に rubygems と bundler の変更点を Rust 製拡張ライブラリのサポートについて追記しています。

[d521c9e5a7] Hiroshi SHIBATA 2022-12-24 08:54:21 UTC

NEWS のリンクの表示の修正。

[b9332ac8e7] Takashi Kokubun 2022-12-24 09:13:40 UTC

MJIT のためのメソッドの ruby 実装にしたことの影響? かどうかわかりませんが Integer#<< が再定義されていると MJIT がうまく機能しなくなっていたのでそのような状況では常に JIT コンパイルをあきらめるように対応を追加しているそうです。また RubyVM::MJIT::Hooks というモジュールを追加してこの特異メソッドでいくつかのメソッドの再定義や Ractor の起動などのイベントのフックを追加してこれを再定義することで処理を差し込めるようにしています。今回と同様の JIT をやめるための処理を入れるポイントを作っておいたという感じみたいです。 https://github.com/ruby/ruby/pull/7019

[3fb1d49a1f] "NARUSE, Yui" 2022-12-24 09:59:45 UTC

c5eefb7f37db2865891298dd1a1e60dff09560ad で configure で macOS の時にリンカオプションに -flat_namespace を追加したのを revert しています。 C 拡張ライブラリが他のライブラリと衝突する C の関数名などの symbol を持っていた時にエラーになってしまうという副作用があったため。この変更は --enable-shared と --disable-shared の指定が異なる ruby 本体と拡張ライブラリでうまくロードできないという問題の解決のためだったので、symbol の衝突のほうが影響が広範に渡るという判断でしょう。

[18c1ca8f4c] Nobuyoshi Nakada 2022-12-24 11:18:10 UTC

cae53842735237ccf71a13873fd0d1ae7f165582 で make check に test-syntax-suggest の実行も追加したものを test-syntax-suggest-prepare を test-syntax-suggest の前に実行するようにしています。