ruby-trunk-changes 2020-05-04

今日は MJIT の JIT コンパイルを一旦オブジェクトファイルを生成するビルド方法への再変更や GCC 10 の警告抑制、Bison 3.5.91 対応などがありました。

[5b28f01d77] Nobuyoshi Nakada 2020-05-03 15:00:27 UTC

random.c 内の int_pair_to_real_exclusive() という 2つの 32bit 整数を double に変換して返す関数を double の表現 (IEEE 754) に依存しないように? しています。

[dfbbd94ec1] git 2020-05-03 15:00:54 UTC

version.h の日付更新

[41e547e60c] Nobuyoshi Nakada 2020-05-03 15:27:14 UTC

5b28f01d77aaf02dc3717c986b8b90f8e99b7f5a の追加修正。 2つめの整数のシフト量を保持する static 変数の初期化に変数を使ってしまっていたのをやめています。 Visual Studio だと使っている変数が static const でも初期化子には使えなかったそうです。

[f72bec2cea] Takashi Kokubun 2020-05-03 20:58:54 UTC

Travis CI での s390-linux のテストをエラー時に通知しないようにしています。

[0776198486] Takashi Kokubun 2020-05-03 22:49:48 UTC

Solaris の Sun C Compiler の時に MJIT の JIT コンパイル時に -Winvalid-pch というオプションを追加するようにしています。これにより MJIT のテストを Solaris で skip するのをやめています。

[9aa5fe1bf8] Takashi Kokubun 2020-05-03 23:15:45 UTC

MJIT で JIT コンパイル時に C のソースコードから直接共有ライブラリをビルドしていたのが MinGW ではうまくいかないようなので、一旦 .o ファイルにコンパイルしてからリンクするようにしています。これにより MinGW での MJIT テストの skip をやめています。

[a8d39a051c] Takashi Kokubun 2020-05-03 23:49:30 UTC

9aa5fe1bf89db8cd215b24d8ddfb668714681b83 の一旦 .o ファイルにコンパイルするようにしたために e0c023d1c8a22533b6cd3a5fa4bbcd4145f635b5 で対応していた macOS で MJIT のオプションに --jit-debug をつけると .dSYM が生成されるのでゴミ掃除ができないのを許容するための assertion の skip が不要になったので一部 revert しています。

[39bd1244b4] Takashi Kokubun 2020-05-04 00:39:57 UTC

077619848623e9c7f8d6d8041596199115b7fc68Solaris での MJIT のテストのため -Winvalid-pch オプションを追加していたのを revert しています。このオプションをつけなくてもエラーにならなかったそうなので、様子をみるみたいです。

[b7e1eda932] Nobuyoshi Nakada 2020-05-04 03:10:04 UTC

拡張ライブラリ ripper で独自に定義しているトークンの enum の型を enum yytokentype に明示的にキャストするマクロ経由で使うようにしています。 GCC 10 で警告になるようになったみたいです。 また enc/unicode.c の onigenc_unicode_get_case_fold_codes_by_str() で通らないはずのパスで未初期化の変数参照をする可能性についての警告が出てしまうということで明示的に if 文を追加して UNREACHABLE_RETURN() で return させるようにしています。

[d6389224da] Kazuki Tsujimoto 2020-05-04 04:17:45 UTC

3893a8dd42fb3bbd71750648c3c0de118955a6ea の命令列へのコンパイルの最適化にコメントに書かれている疑似コードも追随させています。

[6ed7bc83ec] Kazuki Tsujimoto 2020-05-04 04:24:53 UTC

node.h と ext/objspace/objspace.c のインデント修正。

[47720e2255] Nobuyoshi Nakada 2020-05-04 04:35:38 UTC

y.tab.c を変換する tool/ytab.sed で yydestruct を変換する時のルールに行末にカンマのある行を消す処理を追加しています。 Bison 3.5.91 の出力する y.tab.c の変化に対応するためみたいです。

[5c2508060b] Nobuyoshi Nakada 2020-05-04 09:10:02 UTC

同じく Bison 3.5.91 対応のため明示的な %define parse.error verbose によるエラーメッセージのログレベルの設定を追加しています。デフォルトが変わったみたいです。