ruby-trunk-changes 2020-03-04

今日は GC のテストがたまにエラーになる事象の対策などがありました。

[501f2c44e6] Yusuke Endoh 2020-03-03 11:54:31 UTC

c8d0bf0156878df03a71fffc97c44abf7333d5d7 で pattern match のテストに追加したパターンでまた未参照のローカル変数警告が出てたので "_" で始まる変数への代入で抑制しています。

[43ed4eb6d1] Yusuke Endoh 2020-03-03 12:00:03 UTC

1ad9364440f6685d2df3b855f5e22f644e9f1f43 で tool/lib/leakchecker.rb に追加したデバッグ用の GC.verify_internal_consistency の呼び出しを i386-solaris のみに範囲を狭めています。

[03f9e8746e] Charles Oliver Nutter 2020-02-23 20:49:26 UTC

test/ruby/test_settracefunc.rb の setup/teardown の RubyVM::InstructionSequence.compile_option の設定と復旧に defined?(RubyVM) のチェックを追加しています。このテストは JRuby も利用しているからかな。

[14dd377e51] git 2020-03-03 15:11:35 UTC

version.h の日付更新

[cf52f37cae] Koichi Sasada 2020-03-04 02:25:43 UTC

43ed4eb6d1cbbd31de2c98ae515630ee8f988c1e で対象を i386-solaris に絞った tool/lib/leakchecker.rb のデバッグ用コードをさらにテスト名に TestGem が含まれる時だけに絞っています。

[6e271e4cbb] Koichi Sasada 2020-03-04 02:31:07 UTC

というわけで(?) GC.start(full_mark: false) のテストでその前に一度 GC.start を明示的に実行しておくようにしています。次の GC を極力 minor GC にするためとのこと。これでも確実ではないようですけど。

[02705b27be] Koichi Sasada 2020-03-04 02:33:55 UTC

6e271e4cbbe6a8bc4d4f75dc553ce054eae7af00 と同様に GC.latest_gc_info のテストでもターゲットの GC.start の前に一度 GC.start を実行しておくようにしています。コメントないとこれうっかり重複として消してしまいそう。

[ce586107d8] Koichi Sasada 2020-03-04 02:36:34 UTC

6e271e4cbbe6a8bc4d4f75dc553ce054eae7af00 で assertion に追加してた msg はそんな変数はなかったので削っています。

[97fa6468dc] 卜部昌平 2020-03-02 02:20:50 UTC

マクロ CALC_EXACT_MALLOC_SIZE を定義してビルドした時にコンパイルエラーしていたようで preprocessor の分岐を少し修正しています。

[2325017477] 卜部昌平 2020-02-25 03:42:00 UTC

同じくマクロ USE_TRANSIENT_HEAP=0 に定義してビルドした時にコンパイルエラーしていたようで preprocessor の分岐を追加しています。

[f12b9a3338] 卜部昌平 2020-02-26 02:45:29 UTC

fprintf(3) の "%p" フォーマット指示子に渡すポインタを void* に明示的にキャストするようにしています。

[f7048f9d55] 卜部昌平 2020-03-02 06:50:22 UTC

Test::Unit が --seed オプションの指定がなかった時に子プロセスに渡すオプションに --seed を追加するのを最後ではなくて先頭に追加するようにしています。TESTS="-- -ext-" のように "-" ではじまる通常の引数を渡すため "--" を使った時に --seed もオプションにならなくなってしまうのを避けるためとのこと。

[aa44b29030] 卜部昌平 2020-02-20 05:02:01 UTC

bignum.c と vm_method.c の変数の初期化を追加しています。 GCC7 で警告が出るようになった(おそらく誤検出?)そうです。

[16415fefc1] Yusuke Endoh 2020-03-04 03:31:11 UTC

test/lib/jit_support.rb の未サポートのコンパイラリストの icc のパスが変化したみたいなので正規表現の先頭部分のパターンを削っています。

[87f6154bb4] Yusuke Endoh 2020-03-04 06:46:26 UTC

efd641ffab34e433a8d8a7d78914576f2425aa90 の ce6caade7c57a505f73086ccd7b33c14f7715f22 で fiddle で常に ffi_prep_closure() を使うようにしたのを revert したのを revert しています。CI のエラーだったと思われるけどこの変更で Ubuntu でビルド時の警告が出るのでリトライしてみるみたいです。

[d732bc51bd] Yusuke Endoh 2020-03-04 08:28:21 UTC

efd641ffab34e433a8d8a7d78914576f2425aa90 で efd641ffab34e433a8d8a7d78914576f2425aa90 の ce6caade7c57a505f73086ccd7b33c14f7715f22 で fiddle で常に ffi_prep_closure() を使うようにしたのを revert したのを revert したのを revert しています。やっぱり macOS 上の CI でエラーになったみたいです。

[633a1f15d8] Nobuyoshi Nakada 2020-03-04 09:13:03 UTC

拡張ライブラリ fiddle で USE_FFI_CLOSURE_ALLOC の指定に libffi のバージョンやアーキテクチャなどいろいろ条件が書いてありましたが、シンプルに HAVE_FFI_CLOSURE_ALLOC の有無だけで分岐するように変更しています。

[95f387f61a] Nobuyoshi Nakada 2020-03-04 09:41:47 UTC

拡張ライブラリ fiddle の execonf.rb でバンドルされている libffi を使う場合は ffi_closure_free() が定義されていることはわかっているので have_func() を使わずに直接 -DUSE_FFI_CLOSURE_ALLOC=1 をコンパイラオプションに追加するようにしています。