ruby-trunk-changes 2019-12-12

今日は GC.compact のデバッグ関連の変更やデバッグ用ビルドでの修正や表示情報追加などの変更がありました。

[cae657c324] Yusuke Endoh 2019-12-11 12:54:18 UTC

47a365dd580f2dfe0f0d56155587dfdf2fc7afb7 の再修正。 allow_failures への入れかたをまちがえてたのを修正。 [ruby-core:95910] [Misc #16360]

[0f90630983] Aaron Patterson 2019-12-11 18:12:14 UTC

6f27fa4f7d52bfaea4fd1bd7605bda28e302e74c で T_CLASS の class_serial と mtbl の位置を classext 内に入れるかどうかをプラットフォームによって変えるようにした影響で gc_update_object_references() で RCLASS_M_TBL() を触るのに struct RClass::class_ext の存在チェックの後にするように移動しています。無条件で移動してもいいものかな。SIZEOF_SERIAL_T == SIZEOF_VALUE の条件で変化すると思うけど。

[fe45023366] git 2019-12-11 18:13:32 UTC

version.h の日付更新

[51cc5a26df] aycabta 2019-12-11 18:18:44 UTC

標準添付ライブラリ readline の completion のテストでリンクする Readline が 6.0 以降でないと Windows で成功しないテストをこの条件で skip するようにしています。

[79eb5e1aca] Koichi Sasada 2019-12-11 18:31:13 UTC

環境変数 RUBY_TEST_GC_COMPACT を設定して make test-all すると各テストメソッドの teardown 処理時に GC.compact を実行するようにしています。

[7dbbba38a0] Aaron Patterson 2019-10-12 00:13:02 UTC

VM 命令の実装で VM stack に値を push する時にそのオブジェクトの型が T_NONE や T_MOVED であることはありえないはずなので VM_ASSERT() によるチェックを追加しています。

[27ac034f19] Koichi Sasada 2019-12-11 19:26:03 UTC

79eb5e1acac2339c6ec71db723298bdfcd92b233 で追加した各テスト後に GC.compact するためのモジュールを parallel test の子プロセスでもロードするようにしています。

[50ae8895f3] Rei Odaira 2019-12-11 19:31:38 UTC

debug_counter.c の #include "internal.h" の位置を #include <stdio.h> の前に移動しています。 stdio.h の前に _LARGE_FILES を定義したいそうです。

[7d991a0571] aycabta 2019-12-11 23:40:44 UTC

ec54ac938104517dd61887006ef8cc324b3b1b35 の reline での Reline.completion_quote_character サポートで候補の nil guard が不完全だったのを修正しています。

[53e8589c69] Hiroshi SHIBATA 2019-12-12 00:14:09 UTC

拡張ライブラリ json の 2.3.0 を upstream からマージしています。内容的には JRuby でのテストのスキップの追加だけのようです。

[12de92a368] 卜部昌平 2019-12-12 02:11:39 UTC

make test-all オプションに --gc-compact を指定すると各テスト後に GC.compact するようにしています。

[f40143fe7c] 卜部昌平 2019-12-12 03:37:58 UTC

bc3e7924bc66d3ef77b219c72f3e59cc154550a3 のメソッド定義の関数ポインタの型をちゃんとしようシリーズの一環で gcdebug_sentinel() に RB_BLOCK_CALL_FUNC_ARGLIST をつけ損ねていたので追加修正しています。

[35eb12c063] 卜部昌平 2019-12-12 03:39:24 UTC

ISeq のバイナリフォーマットの dump 時のデバッグメッセージ出力で %p でアドレス表示する引数を明示的に (void*) にキャストするようにしています。

[1a4a9bdb5d] 卜部昌平 2019-12-12 04:59:52 UTC

GC_DEBUG という定数を真に設定してビルドすると struct RVALUE のサイズが struct RObject より大きくなるそうで、newobj_init() での struct RVALUE の初期化を RBASIC() や RANY() 経由で各メンバーの初期化をしてたのを一旦 struct RVALUE の変数に格納してから MEMCPY でコピーするようにしています。こうしないと SEGV するそうですが、各メンバーを明示的に初期化するの問題なさそうだけどダメなのか……。

[55b7ba3686] Jeremy Evans 2019-08-21 20:59:36 UTC

Module のメソッド定義内の instance_eval 内で super を呼んだ時に TypeError 例外を発生させるため rb_classext_t::includer というのを追加して Module#include 時に生成される T_ICLASS にそのクラスに include したかを憶えておくようにしています。 [ruby-core:71274] [Bug #11636]

[54e089df9e] Koichi Sasada 2019-12-12 08:02:36 UTC

rb_bug() などで edb80dfe3e6086fb9d5d905a40cdd6ec61a2e1ee で --debug=ci が指定された時に VM スタック情報をダンプする時に cfp->self の情報もダンプするようにしています。

[c20dd2f754] Kazuhiro NISHIYAMA 2019-12-12 08:38:27 UTC

標準添付ライブラリ net/imap のテストで Solaris で Errno::EINVAL が発生することがあるそうなのでデバッグのため詳細な情報を含めた例外を上げるようにしています。