ruby-trunk-changes 2022-07-29

今日は主に配列オブジェクトのバッファ共有化の Variable Width Allocation で非効率になってたところの修正や YJIT の getblockparamproxy のブロックが渡されてない時の JIT 化対応、RGenGC 用の処理の複数 Ractor 対応、標準添付ライブラリ optparse の不具合修正などがありました。

[2375afb8d6] Peter Zhu 2022-07-27 15:18:29 UTC

GC.compact で移動したオブジェクトの参照を更新する処理の T_ARRAY 型オブジェクトの処理の gc_update_object_references() 内の部分を gc_ref_update_array() の中に移動するリファクタリング。処理が分散していたため不要な分岐などもあったので関数内にまとめています。

[1c16645216] Peter Zhu 2022-07-27 15:26:31 UTC

配列オブジェクトのバッファの部分配列を切り出す配列オブジェクトを作る時に Variable Width Allocation で埋め込み可能なサイズの時にはコピーを作っていたのを、バッファをヒープから取得するようにして共有するようにしています。そのほうが高速なのでということですが 1つしか共有しないと結局ヒープに切り出す時にコピーするからかえって遅くなることもありそうだけど、まあ共有する時は 1つだけってことはないだろうってことですかね。

[229cf263df] Peter Zhu 2022-07-27 18:05:31 UTC

gc.c の rb_gc_writebarrier_unprotect() 内で RGenGC 用の write barrier の操作を複数 Ractor 利用時に保護するため RB_VM_LOCK_ENTER_NO_BARRIER()/RB_VM_LOCK_LEAVE_NO_BARRIER() で囲むように修正しています。

[c38ad2aeb5] Nobuyoshi Nakada 2022-07-27 15:25:34 UTC

vm_sync.c の RUBY_DEBUG_LOG2() マクロでのデバッグ出力に使っているフォーマット文字列の指示子を修正しています。

[94c3d528e7] Nobuyoshi Nakada 2022-07-27 15:31:47 UTC

Ractor#inspect の実装で ID を整数に変換する時のマクロを型にあわせて INT2FIX() から UINT2FIX() に修正しています。

[90cf767d15] Nobuyoshi Nakada 2022-07-28 00:10:16 UTC

ractor_core.h でも RUBY_DEBUG_LOG2() によるデバッグログに埋め込む値を明示的に void* にキャストしています。

[18b1e5e6db] Burdette Lamar 2022-07-28 14:50:37 UTC

doc/rdoc/markup_reference.rb の説明やサンプルの記法の修正。

[ab08a43ec5] Matthew Draper 2022-07-28 15:38:07 UTC

YJIT で VM 命令の getblockparamproxy のメソッドにブロックが渡されていなかった場合に JIT コードの利用をキャンセルしていたのを対応するようにしているようです。 https://github.com/ruby/ruby/pull/6191

[68655c62df] git 2022-07-28 15:38:29 UTC

version.h の日付更新

[c56e957dec] Burdette Lamar 2022-07-28 16:06:30 UTC

lib/rdoc/markup.rb の記述の一部を RDoc::MarkupReference へのクロスリファレンスに変更しています。

[c348f5a91c] Burdette Lamar 2022-07-28 21:36:54 UTC

拡張ライブラリ date の Date#<=> の rdoc 用コメントの手直し。

[0d68286be9] Takashi Kokubun 2022-07-28 23:12:46 UTC

bee5089d6789401f265f87b2f23f1bd7ec63cec8MinGW 版の GitHub Actions でのタイムアウトの調査のために rinda のテストのスキップをやめたのを revert しています。プロセス終了時にハングアップしているような挙動をしているそうです。

[f29f1d22c3] Nobuyoshi Nakada 2022-07-29 00:10:36 UTC

標準添付ライブラリ rdoc の ">>>" によるマークアップの対応を修正しているようです。 https://github.com/ruby/rdoc/pull/907#discussion_r932505816

[bfd09b1116] Hiroshi SHIBATA 2022-07-29 05:59:56 UTC

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

[def1d44aa1] Takuya Noguchi 2022-07-28 08:39:16 UTC

bundler の bundle cache サブコマンドの man ページの説明を追記。

[d1e726cce7] Takuya Noguchi 2022-07-28 01:30:02 UTC

bundler の man ページのリンクの修正。

[3725454161] Hiroshi SHIBATA 2022-07-29 06:47:02 UTC

標準添付ライブラリ fileutils の rdoc 用コメントの修正やクロスリファレンスの追加。

[419ad1e13e] konsolebox 2022-06-09 11:43:24 UTC

標準添付ライブラリ optparse が "-" だけの引数を誤ってオプションとして処理しようとしてしまう不具合を修正しています。 https://github.com/ruby/optparse/pull/35

[4bf97a8ec4] Luka Dornhecker 2022-05-22 15:47:26 UTC

標準添付ライブラリ time の Time#xmlschema の rdoc 用コメント内の typo 修正。

[66b52f046f] Jean Boussier 2021-05-20 10:40:04 UTC

拡張ライブラリ json の例外に C のソースコードの行数を __LINE__ マクロを使って埋め込んでたのをやめています。

[b2cc74a50d] Ethan 2021-10-20 20:53:18 UTC

拡張ライブラリ json のテストに文字列を \uXXXX の記法と実際に UTF-8 で書く記法の両方をひとつの文字列内に並用した時の decode のテストを追加しています。

[4e886d2ade] Hiroshi SHIBATA 2022-07-29 08:06:18 UTC

標準添付ライブラリ racc の Racc::ParseError の別名としてトップレベルの ParseError を代入しているところに rdoc の :nodoc: タグをつけてドキュメント化を抑制しています。

[62849b3379] Hiroshi SHIBATA 2022-07-29 08:07:36 UTC

tool/sync_default_gems.rb の拡張ライブラリ psych の同期処理時に ext/psych/.gitignore の変更も取り消すようにしています。