ruby-trunk-changes r64983 - r64992

今日は Array の RGenGC の WB-unprotected 化を防ぐための書き換えや MinGW のテスト(CI)の安定のための skip 追加などがありました。

odaira: r64983 2018-10-10 05:06:36 +0900

configure で ppc64 版の Linux という環境では ___builtin_longjmp() に不具合があるらしく、MJIT でビルドした共有ライブラリ内で問題があるそうで ___builtin_setjmp() を使わないように強制的にセットしています。

svn: r64984 2018-10-10 05:06:42 +0900

version.h の日付更新。

ko1: r64985 2018-10-10 12:52:20 +0900

array.c の rb_ary_rotate() で RARRAY_PTR() で配列オブジェクトのポインタを取り出して処理していたところを RARRAY_PTR_USE() マクロを利用して RGenGC の WB-unprotected 化を防ぐようにしています。

ko1: r64986 2018-10-10 13:17:01 +0900

さらに array.c、enum.c、proc.c などで RARRAY_PTR() を使ってたところを RARRAY_AREF() や RARRAY_ASET()、RARRAY_PTR_USE() などのマクロを使って書きかえています。

ko1: r64987 2018-10-10 13:20:17 +0900

さらに process.c の check_exec_redirect() でも RARRAY_PTR() を使って単に dereference していたところを RARRAY_AREF() に書き直しています。

svn: r64988 2018-10-10 13:20:21 +0900

r64987 のインデントのタブを空白に展開しています。

ko1: r64989 2018-10-10 13:24:10 +0900

同じく拡張ライブラリ fiddle で RARRAY_PTR() したポインタを単に添字で参照してたのを RARRAY_AREF() に書き直しています。

svn: r64990 2018-10-10 13:24:11 +0900

r64989 のインデントのタブを空白に展開。

k0kubun: r64991 2018-10-10 20:35:58 +0900

rubyspec の Thread#terminate のテストが MinGW で不安定だとのことで platform_is_not で除外するようにしています。

k0kubun: r64992 2018-10-10 20:39:46 +0900

r64991 で MinGW で除外するようにした rubyspec の Thread#terminate や r64933 で除外した ThreadGroup のテストですが、除外した理由と TODO コメントを追加して戻すのを忘れないようにしています。