ruby-trunk-changes r65727 - r65743

今日は Travis-CI の ccache 対応でのビルド高速化や整数の overflow 対策や未定義挙動対策などがありました。

nobu: r65727 2018-11-14 23:12:30 +0900

rationa.c の nurat_div() で Rational を Float に変換するのに、一旦 double にしてから変換してたのを nurat_to_f() を呼ぶようにリファクタリングしています。

k0kubun: r65729 2018-11-15 06:04:57 +0900

Binding#irb の rdoc 用コメントのマークアップ修正と typo 修正。 https://github.com/ruby/ruby/pull/2016

svn: r65730 2018-11-15 06:04:59 +0900

version.h の日付更新。

shyouhei: r65731 2018-11-15 11:25:25 +0900

.travis.yml に ccache を有効にしてビルド高速化を図っています。 https://github.com/ruby/ruby/pull/2013

kazu: r65732 2018-11-15 12:01:20 +0900

r65731 の .travis.yml の ccache 対応で MJIT_CC は元のコンパイラをセットするようにしています。

kazu: r65733 2018-11-15 12:45:34 +0900

r65732 を revert しています。 CI でエラーがあったそうで。

shyouhei: r65734 2018-11-15 14:10:40 +0900

Bignum の乗算で内部的に使う関数 bigdivrem_mulsub() で unsigned と signed の整数の型をそろえるための明示的キャスト追加。

nobu: r65735 2018-11-15 14:22:44 +0900

mjit_config.h の生成のための Makefile.in の shell 関数部分を tool/mjit_archflag.sh というファイルに分離しています。

svn: r65736 2018-11-15 14:22:45 +0900

r65735 の新規追加ファイルの svn property 設定。

shyouhei: r65737 2018-11-15 15:17:53 +0900

rb_ident_hash() で flonum のdouble を st_data_t にキャストしているところがありましたが、これは未定義挙動なので共用体を使ってバイナリ表現をそのまま利用するように変更しています。たぶん hash 値が変わるんだと思いますが ruby レベルに見えるものではないと思うので非互換はないかな、たぶん……。

nobu: r65738 2018-11-15 15:22:17 +0900

r65735 で shell の "." (source の別名。builtin command?) でスクリプトファイルを読み込む時に引数を渡してましたが、一部の shell はこれをサポートしていないので、読み込み後に明示的に関数起動するように書き換えています。

shyouhei: r65739 2018-11-15 16:34:01 +0900

さらに r65688 と同様に bignum.c, marshal.c, until.c などで unsignd の整数のオーバーフロー警告除去のためのリファクタリングや NO_SANITIZE() でのチェック抑制。

svn: r65740 2018-11-15 16:34:06 +0900

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

shyouhei: r65741 2018-11-15 16:37:05 +0900

Travis-CI で ccache を導入したので .travis.yml で -j オプションに CPU コア数を元にした並列ジョブ数を設定するようにしています。

shyouhei: r65742 2018-11-15 17:33:38 +0900

.travis.yml で macOSuniversal binary のビルドを消しています。

shyouhei: r65743 2018-11-15 18:03:03 +0900

eval_error.c の print_backtrace() でバックトレースのフレーム数に応じて通し番号の表示桁を得るために log10(3) を通すところで 0 や負数を渡すことがないように修正しています。