今日は 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 で macOS の universal binary のビルドを消しています。
shyouhei: r65743 2018-11-15 18:03:03 +0900
eval_error.c の print_backtrace() でバックトレースのフレーム数に応じて通し番号の表示桁を得るために log10(3) を通すところで 0 や負数を渡すことがないように修正しています。