ruby-trunk-changes r64927 - r64939

今日は MJIT 関連の修正や AppVeyor でのテストの対応などがありました。

nobu: r64927 2018-10-07 00:14:19 +0900

r64925 の make のテスト系ターゲットの順番の調整を order only prerequisite を使った書きかたにしてたのを revert しています。やはり古い make とかで動かないとかがあったのかな。

svn: r64928 2018-10-07 00:14:20 +0900

version.h の日付更新。

k0kubun: r64929 2018-10-07 13:17:59 +0900

MJIT の JIT コンパイルしたコードを関数ポインタとして返す mjit_get_iseq_func() を mjit_wait_call() と改名して、その中で関数呼び出しまでするようにして、mjit_exec() から --jit-wait オプションが指定されていて JIT コンパイルを待って同期的に呼び出しする場合にこれを呼ぶようにしています。これまで意図せず JIT コンパイル直後にそのコードが呼ばれないようになっていたそうです。

kazu: r64930 2018-10-07 13:21:32 +0900

r64921 の Array#difference の rdoc 用コメントで生成されたドキュメントのインデントをそろえるためにスペースの数を調整しています。

k0kubun: r64931 2018-10-07 13:29:00 +0900

mjit.c の mjit_wait_call() という関数のコメントには JIT コンパイルで生成した関数を呼ばないって書いてあったけど r64929 の変更で呼ばれるようになったのでコメントの内容を追随させています。

k0kubun: r64932 2018-10-07 14:54:04 +0900

r64929 の変更で MinGW で MJIT のテストが通らなくなったそうなので一旦 skip させてます。

k0kubun: r64933 2018-10-07 15:08:54 +0900

これは多分別件だと思いますが rubyspec で ThreadGroup のテストが MinGW でときどき失敗するとのことで platform_is_not で guard を追加しています。

k0kubun: r64934 2018-10-07 17:03:36 +0900

MJIT でコンパイラで object file を生成する時に mswin 環境でカレントディレクトリに作って残しっぱなしになってたそうなので、一時ディレクトリに生成させるためにコンパイラに -Fo オプションをつけるようにしています。

k0kubun: r64935 2018-10-07 17:15:48 +0900

r64934 の変更で mswin 環境で MJIT の object file を一時ディレクトリに生成するようにしたためだと思いますが、appveyor.yml で make test-all 時に環境変数 TMPDIR を指定してローカルディレクトリの tmp サブディレクトリを指定するようにしています。AppVeyor だとグローバルな一時ディレクトリが書き込み権限がなかったみたい(?)です。

nobu: r64936 2018-10-07 18:17:59 +0900

ext/readline/readline.c に macOS 10.14 (多分 Mojave)で readline.h で宣言されなくなった? 関数のプロトタイプ宣言を明示的に追加しています。

k0kubun: r64937 2018-10-07 20:46:26 +0900

r64935 の appveyor.yml の一時ディレクトリ指定を revert しています。

k0kubun: r64938 2018-10-07 21:03:49 +0900

WIN32OLE と Queue のテストの一部が AppVeyor で不安定なので test-all から除外して、別途 TEST_EXCLUDES の指定を空にしたコマンドで -j オプションなしで並列テストを無効化して実行するように分離しています。

k0kubun: r64939 2018-10-07 21:28:46 +0900

mjit_worker.c で Windows 版で dlclose() マクロ(FreeLibrary())が失敗した時に mjit_warning() で警告を出力するようにしています。AppVeyor でのテストの失敗の調査のためみたいですね。