ruby-trunk-changes r56245 - r56256

今日はいくつか整数のオーバフロー検出の強化や throw false での不具合修正、Tempfile.create の第1引数を省略可能にする変更などがありました。

nobu: r56245 2016-09-26 07:29:16 +0900

Windows の DLL のロードのテスト test/-ext-/win32/test_dln.rb で File とか ENV といった定数を参照する時に明示的にトップレベルの名前空間からみるように ::File や ::ENV, ::RbConfig のように参照するようにしています。 途中のスコープの同名の定数をみてしまうのを避けるようにしています。

svn: r56246 2016-09-26 07:29:17 +0900

version.h の日付更新。

rhe: r56247 2016-09-26 11:09:50 +0900

enc_strlen() と rb_enc_strlen_cr() で rb_enc_mbminlen() 単位で丸めるための演算で整数のオーバフローの回避のために演算順序を変更しています。

rhe: r56248 2016-09-26 11:50:31 +0900

tool/rbinstall.rb で bundled gem パッケージのインストール時に拡張ライブラリのビルドに失敗していた時に gemspec ファイルもコピーしないようにしています。

nobu: r56249 2016-09-26 12:00:14 +0900

gems/bundled_gems から証明書の期限切れで r56188 で削除していた minitest の 5.9.1 がリリースされたので復活させています。

nobu: r56250 2016-09-26 14:10:56 +0900

String#lstrip に single byte 文字のみ含む文字列の場合の最適化を行なっています。rstrip のほうでは既に行なっていたようです。 [ruby-core:77392] [Feature #12788]

sonots: r56251 2016-09-26 14:45:29 +0900

標準添付ライブラリ tempfile で Tempfile.create も Tempfile.new の第1引数が省略可能になったのに追随して第1引数を省略可能にしています。 [ruby-core:72747] [Feature #11965]

rhe: r56252 2016-09-26 15:43:51 +0900

対応する catch がない throw で引数に false を渡すと [BUG] で異常終了してしまう不具合を修正しています。 TH_PUSH_TAG() で struct rb_vm_tag::tag は 0 (= Qfalse) に初期化されているので throw false は catch ではない struct rb_vm_tag にも捕捉されてしまって不正な位置に飛んでしまうみたいです。うーむなるほど。[ruby-core:77229] [Bug #12743]

rhe: r56253 2016-09-26 16:24:55 +0900

拡張ライブラリ stringio の StriongIO#seek とバッファの拡張する strio_extend() で file position やバッファサイズの計算で整数のオーバフローを避けるようにチェックを追加しています。

nobu: r56254 2016-09-26 16:33:16 +0900

r56252 の throw false のテストで発生した例外の UncaughtThrowError#tag のチェックも追加しています。 [ruby-core:77229] [Bug #12743]

knu: r56256 2016-09-26 21:39:18 +0900

man/ のファイルで Ns っていうマクロを記号? の前に使っていたのを削っています。うん、全然わからない。