ruby-trunk-changes 2022-06-18

今日は macOS で compaction がデバッガで実行する時にうまく動かない不具合の対応などがありました。

[c34a5469c8] Jean Boussier 2022-06-17 08:09:02 UTC

GVL の確保/開放のコールバック関数を登録する C API のテストで Thread#status をチェックする assertion を追加しています。

[721e012d42] Matt Valentine-House 2022-06-17 10:40:11 UTC

misc/lldb_cruby.py の lldb_inspect などで T_ARRAY 型オブジェクトの embed されている時の要素数を得るのに使う flags のビット数が Variable Width Allocation 有効時に拡張されたのに追随させています。

[9327b6f222] Burdette Lamar 2022-06-17 13:36:20 UTC

標準添付ライブラリ fileutils のセクションの移動をしています。

[2790bddda6] Peter Zhu 2022-06-17 13:44:17 UTC

compile.c で未使用になっていた iseq_alloc() の宣言を削除しています。

[7f05f7378d] Nobuyoshi Nakada 2022-06-17 14:27:16 UTC

iseq.c で "<compiled>" という fstring を rb_iseq_compile_with_option() の関数内の複数の箇所で初期化していのを関数の先頭で変数に格納して使いまわすようにリファクタリングしています。

[05ffc037ad] KJ Tsanaktsidis 2022-05-22 23:30:26 UTC

Compaction のために移動したオブジェクトへの参照を検出するための write memory barrier が macOS で debugger を使っている状態では発生するシグナルの違いでうまく働かないという問題があるらしく、macOS では compaction 実行時に EXC_BAD_ACCESS のエラーハンドラを一時的に無効化するという対処を入れています。

[b184cdfd74] git 2022-06-17 15:10:38 UTC

version.h の日付更新

[566c5447ae] John Hawthorn 2022-06-17 18:26:51 UTC

yjit.rb の YJIT.dump_exit_locations メソッドで File.write を使っていたところを File.binwrite を使うように修正しています。

[41a024f2b9] Alan Wu 2022-06-17 22:12:55 UTC

yjit.c のコメントの ruby 実装の関数名などのシンボルの rb_ prefix についてのコメントを削ったりしています。

[4b7c4bb92e] Alan Wu 2022-06-17 22:13:19 UTC

tool/extlibs.rb で例外を Exception#full_message を使って警告メッセージとして出力してたのは BASERUBY が古い時に NoMethodError になるので defined? でチェックして分岐するようにしています。

[cab10a2c50] Nobuyoshi Nakada 2022-06-18 01:20:46 UTC

gc.c の lock_page_body()/unlock_page_body() から共通部分を protect_page_body() という関数に切り出すリファクタリングWindows 版とそれ以外とで if 文の条件部だけを preprocessor 分岐で分けていたのでブロックの開始 brace の対応がおかしくなってエディタなどが混乱するのを避けるためみたいです。

[e77d2c296e] Nobuyoshi Nakada 2022-06-17 14:33:23 UTC

configure で GCC の 5 でのみ -Wno-maybe-uninitialized オプションを指定して警告抑制していたのを GCC 4 でも抑制するようにしています。

[e711711539] Nobuyoshi Nakada 2022-06-18 04:40:46 UTC

configure で GCC 利用時にバージョンが古すぎるとエラーにする処理を移動して、エラー時にその GCC バージョン番号も表示するようにしています。