ruby-trunk-changes r65665 - r65687

今日は ERB.new の trim_mode の不正な値に警告を出すようにする変更や、C の未定義挙動を回避するための変更などがありました。

nobu: r65665 2018-11-11 20:58:38 +0900

test/resolv/test_dns.rb のコメントの typo 修正。

yui-knk: r65666 2018-11-11 21:15:15 +0900

RubyVM::AbstractSyntaxTree.of の rdoc 用コメントを追加しています。

nobu: r65667 2018-11-11 21:40:40 +0900

tool/ytab.sed で YYFPRINTF() の第1引数を置換しているところで yyo という出力先も対象にしています。bison 3.2 でビルドエラーになっていたとのこと。 [ruby-core:89722] [Bug #15284]

nobu: r65668 2018-11-12 08:22:53 +0900

win32/Makefile.sub で config.h に MJIT_BUILD_DIR の定義を出力していたのを消しています。mswin 版では LOAD_RELATIVE が真なので MJIT_BUILD_DIR は使わないため。

nobu: r65669 2018-11-12 08:22:54 +0900

win32/setup.mak で MJIT_CC のパス展開しているところでみつかった時だけ MJIT_CC の定義を出力するようにしているみたいです。

svn: r65670 2018-11-12 08:22:55 +0900

version.h の日付更新。

k0kubun: r65671 2018-11-12 09:37:15 +0900

標準添付ライブラリ erb で ERB.new の trim_mode に不正な値が渡された時に警告メッセージを出力するようにしています。 [ruby-core:89762] [Misc #15294]

hsbt: r65672 2018-11-12 09:53:15 +0900

bundler に upstream から 2.0.0.pre1 をマージしています。主に major version の更新に対応しているみたいです。

svn: r65673 2018-11-12 09:53:17 +0900

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

k0kubun: r65674 2018-11-12 09:55:34 +0900

Binding#irb の rdoc 用コメントを追加しています。 https://github.com/ruby/ruby/pull/2010

shyouhei: r65675 2018-11-12 10:08:35 +0900

C 言語の単項演算子 ~ は右辺値の整数を int に promote するとのことで unsigned char 型の変数に適用した時に再代入するとオーバーフローが発生して未定義挙動になるのを防ぐため、一旦 signed char を経由して明示的に最後 1 byte をマスクして取り出すようにしています。コミットログに詳しい解説あり。

kazu: r65676 2018-11-12 11:00:08 +0900

r65674 の Binding#irb の rdoc 用コメントの typo 修正。

shyouhei: r65677 2018-11-12 11:39:24 +0900

re.c の unescape_escaped_nonascii() でバッファ chbuf は signed char として宣言されてましたが一部 unsigned char としてアクセスしないといけない部分があったので unsigned char の配列として確保して char* のポインタでも参照できるようにして場所によって使いわけるようにしています。

shyouhei: r65678 2018-11-12 12:26:39 +0900

r65642 の flo_div() の 0除算の回避のための分岐を double_div_double() という関数に切り出して、その wrapper 関数 rb_flo_div_flo() を追加して vm_insnhelper.c の vm_opt_div() からも利用するようにしています。

svn: r65679 2018-11-12 12:26:44 +0900

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

shyouhei: r65680 2018-11-12 13:09:24 +0900

r65678 で追加した rb_flo_div_flo() で変換した double の変数を使わないといけないのに元の VALUE を使ってたのを修正しています。

nobu: r65681 2018-11-12 15:56:52 +0900

common.mk で拡張ライブラリのソースファイルの依存関係として ext/ripper/eventids2table.c の生成を追加しています。

nobu: r65682 2018-11-12 16:14:43 +0900

r65678 で追加した rb_flo_div_flo() が MJIT の JIT コンパイル時にシンボルが必要ということで MJIT_FUNC_EXPORTED をつけて宣言するようにしています。

nobu: r65683 2018-11-12 16:32:21 +0900

r65671 で標準添付ライブラリ erb で不正な trim_mode に警告を出力するようにしましたが、rubyspec の対応するテストで空文字列 "" を渡していたところがあったので警告が出ることを確認するテストに変更しています。 [ruby-core:89762] [Misc #15294]

k0kubun: r65684 2018-11-12 16:58:29 +0900

r65683 で追加した ERB.new の trim_mode に "" を渡した時のテストで一時的に $VERBOSE を設定するようにしています。

shyouhei: r65685 2018-11-12 17:14:09 +0900

vm_insnhelper.c の vm_expandarray() でオペランドの num が 0 で splat フラグも off の時に配列の先頭より前のアドレスへのポインタを変数に入れてしまっていたので(その後実際にはアクセスはしないけど)、事前に分岐して不要な処理をしないようにしています。

shyouhei: r65686 2018-11-12 17:18:35 +0900

.travis.yml でビルド時に -j オプションをつけるようにしています。test-all の時は削るけど make all では付けるように。また test-spec でオプションを -fs から -ff に変更しています。ff?

nobu: r65687 2018-11-12 19:19:04 +0900

r65681 の common.mk の依存関係の追加が race condition? があるということで revert されています。