ruby-trunk-changes r64940 - r64962

今日は Time.new や Time#getlocal の引数に timezone を指定するオブジェクトを受け付けるようにする変更や、MJIT の mswin プラットフォーム対応などがありました。

k0kubun: r64940 2018-10-07 22:11:27 +0900

mswin 版での MJIT のために MJIT_STATIC および MJIT_FUNC_EXPORTED というマクロを導入して、MJIT の JIT 用ヘッダファイル経由の時だけ static にするようにして、MJIT で利用する関数の宣言にこれを使うようにしています。そして r64932 での mswin での MJIT のテストの skip を revert しています。

k0kubun: r64941 2018-10-07 22:34:59 +0900

r64940 で導入した MJIT_STATIC の宣言を include/ruby/intern.h に移動して、MJIT_STATIC をつけた関数の prototype 宣言にも同じマクロを利用するようにしています。

k0kubun: r64942 2018-10-07 23:00:04 +0900

r64940 で導入した MJIT_FUNC_EXPORTED というマクロは元から定義されていたものなので mswin 版でのみ再定義するように修正しています。

k0kubun: r64943 2018-10-07 23:05:56 +0900

r64938 で AppVeyor で -j オプションなしで別途走らせるようにしたテストのうち Queue のテストはそれでもパスしなかったようなので当面 skip するようにしています。

k0kubun: r64944 2018-10-07 23:51:53 +0900

mjit_worker.c の TODO コメントにあった mswin 版で cl.exe の出力を null デバイスにリダイレクトして抑制するのを --jit-verbose が 1以下の時のみにする変更を行なっています。

k0kubun: r64945 2018-10-08 00:09:58 +0900

mswin 版の MJIT で .obj 以外にも --jit-save-temps オプションが指定されてなかったら生成されるファイルを削除するようにしています。これで残りのテストも通るとのことで skip が revert されています。

svn: r64946 2018-10-08 00:10:00 +0900

version.h の日付更新。

k0kubun: r64947 2018-10-08 00:38:06 +0900

mswin 版の MJIT 用の precompiled header 生成の make のルールにインストール先へのリンク生成も追加しています。これって make install 時にコピーしないのかな。

k0kubun: r64948 2018-10-08 01:45:16 +0900

r64938 で -j なしのテストをするように AppVeyor でのみ exclude するようにした WIN32OLE のテストですが、Queue のほうは r64943 であきらめたので、もう AppVeyor でのみ exclude する設定は削除して明示的に make test-all 時に --exclude オプションを渡して除外するようにしています。

k0kubun: r64949 2018-10-08 01:52:21 +0900

r64947 の追加修正。precompiled header 生成時点でインストール先ディレクトリがない場合もあるので先に作成しておくようにしています。

k0kubun: r64950 2018-10-08 09:12:21 +0900

r64947 と r64949 の precompiled header の事前コピーを revert しています。AppVeyor でうまくビルドできなかったとのこと。 MAKE_LINK って Windows でも ln コマンドになるんだな。

k0kubun: r64951 2018-10-08 10:08:37 +0900

mswin での MJIT のテストで一時ファイル削除に関するものが AppVeyor でのみ失敗するので APPEYOR 環境変数をみて skip するようにしています。

nobu: r64952 2018-10-08 11:35:31 +0900

Time.new や Time#getlocal の引数に timezone オブジェクトなるものを受け付けるようにして、生成される Time オブジェクトの offset の指定ができるようにしています。 また内部で利用するために Time::TM というクラスが追加されています。 [ruby-core:87507] [Feature #14850]

svn: r64953 2018-10-08 11:35:33 +0900

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

k0kubun: r64954 2018-10-08 11:55:06 +0900

r64953 で展開されたタブのうち strftime.c のぶんは除外するはずだったので戻しています。

svn: r64955 2018-10-08 11:55:07 +0900

r64954 で revert したはずの expand tabs がまた適用されてしまいました。スクリプトの修正が反映されてなかったのかな。

k0kubun: r64956 2018-10-08 12:11:36 +0900

r64955 をまた revert しています。

svn: r64957 2018-10-08 12:11:37 +0900

けどまた strftime.c のタブが展開されちゃいました。

nobu: r64958 2018-10-08 13:03:32 +0900

Time#+ や Time#- などのメソッドがタイムゾーンの情報を保存するようになりました。っていうか今まで保存されてなかったのか。たいていの場合 utc か localtime しか扱かわないから知らなかった。

k0kubun: r64959 2018-10-08 13:30:07 +0900

r64957 の expand tabs を再度 revert。 svn さんが使ってるのが別のリポジトリスクリプトだったみたいなのでそちらにマージしたそうです。

nobu: r64960 2018-10-08 17:46:50 +0900

Time のテストのテストメソッドの _with_timezone というのを削除しています。テストクラスが既に TestTimeTZ::WithTZ だから、かなぁ。

nobu: r64961 2018-10-08 17:54:35 +0900

タイムゾーン情報も指定して作った Time オブジェクトの Marshal.dump/Marshal.load のテストを追加しています。

k0kubun: r64962 2018-10-08 19:46:36 +0900

appveyor.yml で WIN32OLE のテストに追加して test/ruby/test_syntax.rb も -j オプションなしのコマンドのほうで実行するようにしています。これは NoMemoryerror が起きるからとのこと。