ruby-trunk-changes 2020-01-28

今日は主に make test-all に --repeat-count というオプションを渡してテストを複数回繰り返すことができるのに対応していかったテストの修正や C++ 向けのメソッド定義などのコールバック関数を受け取る関数にコールバック関数の引数の数に応じた overload をするのに template を利用するようにする変更などがありました。

[33d02e6bc7] Nobuyoshi Nakada 2020-01-28 00:18:12 UTC

tool/rbinstall.rb でコピー元の空のディレクトリに対応するディレクトリも作成させてたのをスキップするようにしています。チケット参照との関連はよくわかりませんが。 [ruby-core:97005] [Bug #16596]

[10842daeb5] Nobuyoshi Nakada 2020-01-28 01:01:22 UTC

lib/racc/.document を追加して rdoc/ サブディレクト配下の .rdoc ファイルを parse 対象に指定しています。 [ruby-core:97005] [Bug #16596]

[c9c0ae0593] git 2020-01-28 01:05:33 UTC

version.h の日付更新

[8dbd5c76a0] Koichi Sasada 2020-01-28 02:43:01 UTC

Array のテストで定数を使っていて make test-all の --repeat-count というオプションを使って複数回実行すると状態が戻ってなくてこけるようになってたのを対応しています。かわりにグローバル変数を使ってるけど、別にこれはローカル変数でも良いんじゃないだろうか。

[b17bab7472] Koichi Sasada 2020-01-28 02:58:09 UTC

同じく autoload のテストでも make test-all の --repeat-count 対応のため後始末の処理で TestAutoload から定数の削除をするようにしています。

[501e7f4959] Koichi Sasada 2020-01-28 03:01:26 UTC

同じく VM 命令についてのテストでクラス変数の初期化を明示的な setup メソッドで行うようにして make test-all の --repeat-count 対応しています。

[14759e6907] Koichi Sasada 2020-01-28 04:31:22 UTC

同じく make test-all の --repeat-count 対応のため定数のテストで定義される定数の削除(もし定義済みなら)を setup で行うようにしています。

[5f7be6243a] Koichi Sasada 2020-01-28 04:36:46 UTC

同じく make test-all の --repeat-count 対応のため Encoding#replicate のテストで複製する時の名前に時刻を含めるようにしています。 Encoding は replicate すると消せない(String に紐付いちゃうとなかなか消せないからこれはしょうがなさそう)のでかわりに名前が衝突しないようにしているようです。

[962c7abb13] Koichi Sasada 2020-01-28 04:39:50 UTC

同じく make test-all の --repeat-count の対応で eval のテストで定数の削除を後始末で行うようにしています。

[251930cea0] Koichi Sasada 2020-01-28 04:43:30 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_iseq.rb で定数の削除を行うようにしています。

[ac2b945bc0] Koichi Sasada 2020-01-28 04:48:36 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_marshal.rb で定数の削除を行うようにしています。

[cc2fe6936c] Koichi Sasada 2020-01-28 04:58:01 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_method.rb でメソッド定義と定数の削除を行うようにしています。

[1bc731cb65] Koichi Sasada 2020-01-28 05:16:06 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_module.rb で setup 時に定数の掃除をするようにしています。

[56b0300f24] Koichi Sasada 2020-01-28 05:21:44 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_proc.rb の修正……なんですが定数削除とかじゃなくて定義するメソッド名を変更しています。なんとなく潜在的不具合(別のクラスの同名のメソッドに影響が?)を匂わせる現象ですね。

[9b65bfdc9e] Koichi Sasada 2020-01-28 05:35:38 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_refinement.rb はあきらめて 2度目以降通らないテストは実行したことを定数に記憶させておいて 2度目以降は skip させるようにしています。

[0f03c1433e] Koichi Sasada 2020-01-28 05:44:12 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_primitive.rb で後始末で定数削除したりクラス変数の初期化を setup 処理内で明示的にするようにしています。

[4df0819c5d] Koichi Sasada 2020-01-28 06:15:19 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_settracefunc.rb で後始末で定数削除するようにしています。

[9552262bb2] Koichi Sasada 2020-01-28 06:21:26 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_struct.rb でテストの後始末で定数削除するようにしています。

[ab33b3d691] 卜部昌平 2020-01-27 05:34:55 UTC

C++ 用のメソッド定義系のコールバック関数を受け取る関数の宣言を overload するマクロ群の宣言を include/ruby/intern.h から include/ruby/ruby.h に移動しています。

[01825e8bff] 卜部昌平 2020-01-28 02:43:33 UTC

ab33b3d6915fe40734cdeaac5f2104fa8792c8a9 で移動した C++ 用のコールバックを受け取る関数のコールバック関数の引数の数によって overload するためのマクロを template 機能を使って代替するようにしてみています。

[31fc34c969] 卜部昌平 2020-01-28 04:29:13 UTC

include/ruby/ruby.h から不要になった(?) C++ 用の preprocessor 分岐を削除しています。

[0a2e0db483] 卜部昌平 2020-01-28 04:54:15 UTC

同じく 01825e8bffde9f4517e60878f8a829f91c361d68 の template 機能による代替で不要になったマクロ群の定義を削除しています。

[03df02e871] 卜部昌平 2020-01-28 07:49:00 UTC

01825e8bffde9f4517e60878f8a829f91c361d68 の実装で引数の型を間違えてたところを修正しています。

[7cf5d547e4] 卜部昌平 2020-01-28 07:52:56 UTC

同じく 01825e8bffde9f4517e60878f8a829f91c361d68 の実装で template 内で重複していた inline 関数定義を削除しています。

[3c3eb418f9] 卜部昌平 2020-01-28 08:02:30 UTC

C++ 向けの実装で rb_f_notimplement() を任意の引数の数のコールバック関数として与えることができるようにしています。

[16592d6b69] 卜部昌平 2020-01-28 08:05:43 UTC

C++ 向け実装の rb_define_method_id() のテスト用拡張ライブラリにテストを追加しています。

[bbe3420cce] 卜部昌平 2020-01-28 08:08:20 UTC

同じく C++ 向けの rb_define_global_function() のテストを追加しています。

[83d6487ae5] 卜部昌平 2020-01-28 08:20:16 UTC

C++ 向けの rb_define_global_function() の実装で可変長の引数を受け取るタイプの時の宣言で受け取るコールバック関数のシグネチャが間違ってたのを修正しています。

[151533e4bc] Koichi Sasada 2020-01-28 08:53:20 UTC

make test-all の --repeat-count の対応で test/ruby/test_autoload.rb でも定数の掃除をするようにしています。

[20c1c24014] Koichi Sasada 2020-01-28 09:13:58 UTC

同じく make test-all の --repeat-count の対応のために利用できるように tool/lib/minitest/unit.rb で繰り返し実行回数をクラス変数に保持しておいて Minitest::Unit.current_repeat_count で参照できるようにしています。

[dd64c34682] Koichi Sasada 2020-01-28 09:15:14 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_time.rb で 20c1c240145b7db66014020e233b23d12574efae で導入した Minitest::Unit.current_repeat_count を使って 2回目以降は skip する処理を追加しています。環境変数 TZ を変更するテストが 2回目以降うまくいかないらしいです。

[471a969311] Koichi Sasada 2020-01-28 09:20:06 UTC

同じく make test-all の --repeat-count の対応で 9b65bfdc9e5eb8a36fdd464ed7534ed2a9557ea7 で test/ruby/test_refinement.rb の 2回目以降 skip するようにしたテストで 20c1c240145b7db66014020e233b23d12574efae で導入した Minitest::Unit.current_repeat_count を利用するように書き換えています。

[4d132fa130] Koichi Sasada 2020-01-28 08:56:14 UTC

同じく make test-all の --repeat-count の対応で test/ruby/test_rand.rb で Kernel#srand のテストを子プロセスを起動して行うようにしています。けど srand 呼ばなかったことの確認に teardown で srand 呼んじゃってるけど、これはいいのかな。

[65768c80be] Koichi Sasada 2020-01-28 09:29:42 UTC

と思ったら 4d132fa130e16eeb4af4177cfaccc00e05e2f864 の teardown の追加は確認用だったみたいなので削除しています。