ruby-trunk-changes r66586 - r66609

今日はコンパイラオプションによって MJIT ヘッダのコンパイルエラーになる場合があることの修正や TracePoint の script_compiled イベントが -e によるスクリプト片などに対して働かないことの修正などがありました。

akr: r66586 2018-12-27 21:42:45 +0900

標準添付ライブラリ securerandom の SecureRandom の rdoc 用コメントに Random::Formatter Module によるユーティリティメソッドが利用できることについて追記しています。

nobu: r66587 2018-12-27 23:15:36 +0900

rubyspec の Object#=~ のテストで一時的に $VERBOSE を nil に設定してデフォルトで出るようになった警告を抑制するようにしています。しかしなんかいつものイディオムじゃなくておかしくなってる。

nobu: r66588 2018-12-27 23:18:16 +0900

r66587 の書きかたがおかしくて $VERBOSE を復帰できてなかったのを修正しています。

k0kubun: r66589 2018-12-27 23:32:29 +0900

MJIT の各 arch 用の minimize 化ヘッダ生成時に tool/transform_mjit_header.rb の引数に渡すコマンドに $CFLAGS も追加するようにしています。 __builtin_xxx みたいなチェックを本体と揃えるために必要とのこと。 [ruby-core:88292] [Bug #14964] https://github.com/ruby/ruby/pull/2059

k0kubun: r66590 2018-12-27 23:53:02 +0900

make test-all の MJIT のテストで MJIT がサポートされているコンパイラかどうかのチェックに icc に追加して Developer Studio を追加。 Solaris 上の Oracleコンパイラかな?

k0kubun: r66591 2018-12-28 01:24:46 +0900

assert_cpu_usage_low という CPU の利用時間をチェックするテストで変動の許容マージンを少し大きくしています。また mkmf のテストでタイムアウトを伸ばしています。 AIX でのエラー対処のためとのこと。

svn: r66592 2018-12-28 01:24:47 +0900

version.h の日付更新。

k0kubun: r66593 2018-12-28 01:28:40 +0900

rubyspec の socket の accept_nonblock のテストを Solaris も実行除外するようにしています。

k0kubun: r66594 2018-12-28 01:42:41 +0900

巨大な配列を引数に "*" で展開して渡すテストが OpenSUSE でメモリを食い潰すそうなのでとりあえず /etc/os-release をチェックして openSUSE だったら skip するようにしています。

ko1: r66595 2018-12-28 02:39:17 +0900

TracePoint の script_compiled イベントが -e オプションで渡されたスクリプト片に対して発火しないという不具合を修正しています。あれ、なんかこの対応やってたような気がしてたけどしてなかったか。 [ruby-core:90746] [Bug #15471]

svn: r66596 2018-12-28 02:39:21 +0900

r66595 の行末の空白除去。

shyouhei: r66597 2018-12-28 10:06:04 +0900

未使用になってたマクロ定義の削除や、1箇所でしか使わなくなってたマクロの展開と削除など、リファクタリングをしています。

nobu: r66598 2018-12-28 10:56:20 +0900

configure で C 言語の restrict という予約語のチェックをしてマクロ定義するようにしています。 restrict ってなんだっけ。変数の aliasing がないことを宣言するものらしい。ふーむ。

nobu: r66599 2018-12-28 11:12:34 +0900

RUBY_VERSION のマクロの定義をヘッダから version.c に移動したり、RUBY_VERSION_{MAJOR,MINOR,TEENY} などのマクロ定義に分解したりしているのですが、どういう動機なのかはちょっとわからず。

ko1: r66600 2018-12-28 12:09:29 +0900

r66599 の RUBY_VERSION の定義などの変更でビルドが失敗するのをとりあえず直したとのこと。

shyouhei: r66601 2018-12-28 12:42:11 +0900

r66597 のリファクタリングで関数化した FLONUM_2_P() で USE_FLONUM を #ifdef でチェックしてましたが #if でチェックするのが正しかったので修正しています。

nobu: r66602 2018-12-28 12:55:28 +0900

r66599 の再修正で win32/Makefile.sub で変数 RUBY_PROGRAM_VERSION の定義を追加しています。

nobu: r66603 2018-12-28 13:23:39 +0900

.travis.yml の before_script に .rbconfig.time というタイムスタンプファイルの生成を追加して reconfig 時の作りなおしを抑制するようにしています。

nobu: r66604 2018-12-28 13:28:16 +0900

.travis.yml の before_script で config.status や Makefile rbconfig.rb .rbconfig.time などのファイルを削除する rm コマンドに -f オプションを付けてファイルがなくても無視するようにしています。

k0kubun: r66605 2018-12-28 18:23:27 +0900

r66598 で restrict を定義するようにしたらなぜかいろんな環境の CI で add2dline.o のビルドでエラーになったので configure.ac で AC_PROG_CC を AC_PROG_CC99 に変更してみたと。restrict が予約語に追加されたのが C99 なのでその関連かなぁ。ただコンパイルエラーの内容をみると for 文の条件部での変数宣言がエラーになってて、むしろ古いバージョンとしてコンパイルしようとしているのか。

k0kubun: r66606 2018-12-28 18:34:51 +0900

MJIT で利用する共有ライブラリの削除のテストを AppVeyor 上の mswin 環境でのみスキップするようにしていましたが、その他でも mswin では skip するようにしています。

nobu: r66607 2018-12-28 18:44:32 +0900

多分 r66599 の追加修正で win32/Makefile.sub の config.status 生成時に RUBY_API_VERSION 変数も出力するようにしています。

nobu: r66608 2018-12-28 19:33:02 +0900

variable.c のリファクタリング。 NameError の発生処理を undefined_constant() という関数に切り出しています。

svn: r66609 2018-12-28 19:33:04 +0900

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