ruby-trunk-changes r65157 - r65168

今日は引き続き .travis.yml のチューニングや、昨日追加した pedantic なコンパイラのチェックで検出した不具合の修正などがありました。

nobu: r65157 2018-10-19 08:58:21 +0900

tool/insns2vm.rb で .inc ファイルを生成する時にフルパスが埋め込まれることがあったのを修正しています。

svn: r65158 2018-10-19 08:58:23 +0900

version.h の日付更新。

shyouhei: r65159 2018-10-19 09:35:42 +0900

昨日 .travis.yml に追加した pedantic なコンパイラのチェックのビルドで addr2line.c は大量に検出されるみたいなので #pragma を使って -Wpedantic オプションを局所的に無効化させています。

shyouhei: r65160 2018-10-19 11:01:46 +0900

addr2line.c で C++ スタイルの行コメントがあったので /* */ によるコメントに置き換えています。

shyouhei: r65161 2018-10-19 12:33:48 +0900

vm_core.h の signal の種類の数のマクロ NSIG は標準化されていないそうなので NSIG_MAX, _SIG_MAXSIG, _SIGMAX などのマクロをチェックして使うようにしています。 QNX ってずいぶん久しぶりにきいた。

ko1: r65162 2018-10-19 14:26:35 +0900

vm_insnhelper.c の vm_push_frame() で prev_cfp が有効な cfp かチェックする前に VM_FRAME_RUBYFRAME_P() でタイプ判定してたので、条件分岐の後に移動しています。

shyouhei: r65163 2018-10-19 16:26:48 +0900

.travis.yml の build matrix で osxコメントアウトしてかわりに linuxgcc-8 -m32 による 32bit 版コンパイルする build を追加しています。

shyouhei: r65164 2018-10-19 16:32:28 +0900

.travis.yml の build matrix で全ての build に name で名前をつけています。

shyouhei: r65165 2018-10-19 16:36:31 +0900

.travis.yml の build matrix 内の設定で CONFIG_FLAG に --disable-install-doc を指定しているのは before_script で configure 実行時に常に付けているので冗長だったので削っています。

shyouhei: r65166 2018-10-19 16:48:45 +0900

tool/ruby_vm/views/_mjit_compile_ivar.erb で MJIT の JIT コンパイル時に生成する C のコードを生成するための C のコードで fprintf(3) のフォーマット指示子に size_t 型の数値埋め込みに %lu を使っていたのを PRIuSIZE マクロを利用するようにしています。 .travis.yml に追加した pedantic チェックの検出ですね。 https://travis-ci.org/ruby/ruby/jobs/443560810#L2263

shyouhei: r65167 2018-10-19 17:46:41 +0900

これも pedantic チェックで報告されたものですが compile.c の iseq_build_kw() で default_len という変数が負の場合に overflow するという警告が出たそうですが、コードをよくよむとここで default_len は正になるはず、なのですが警告抑制するため else if の分岐を追加して UNREACHABLE を body として入れています。 https://travis-ci.org/ruby/ruby/jobs/443568193#L2227

k0kubun: r65168 2018-10-19 20:30:32 +0900

.travis.yml の allow_failures から osx を削っています。最近安定してきたからとのこと。