ruby-trunk-changes r55686 - r55693

今日は文字列バッファの最小サイズの調整、Time オブジェクト作成時のGC保護の強化、浮動小数点数リテラルの対数表現の時の解釈の修正などがありました。

normal: r55686 2016-07-15 08:30:29 +0900

文字列のデフォルトの最小単位のバッファサイズ STR_BUF_MIN_SIZE を 128 から 127 にして、また rb_str_cat() で capa を伸長する時に 2倍しているところで +1 して奇数になるようにしています。文字列のバッファは実際には終端文字のぶんを考慮して拡張され得るので、そのぶんを含めて 2のべき数になるように、ということみたいです。 [ruby-core:76371] [Feature #12025]

nobu: r55687 2016-07-15 09:53:50 +0900

tool/enc-unicode.rb で enc/unicode/casefold.h を生成する時に ONIG_UNICODE_VERSION_XXX とのバージョンのずれがないかチェックする preprocesor directive を出力するようにしています。また tool/enc-unicode.rb でも同様のチェックを出力するようにして enc/unicode/name2ctype.h も更新しています。

usa: r55688 2016-07-15 15:35:37 +0900

Time.utc や Time.local などの Time オブジェクトを生成するメソッドの引数処理をする time_arg() で vtm->subsecx というメンバを RB_GC_GUARD() で最適化による mark 漏れから保護するようにしています。 mswin の CI で時々発生している SEGV の対策みたいです。

nobu: r55689 2016-07-15 17:08:59 +0900

浮動小数点数の対数表記で、e の前の数値が非常に長い 0 の小数点以下の桁を持っていた時に、誤って残りを捨ててしまっていたのを修正しています。 0x000(0が99個くらい続く)1e100 みたいな浮動小数点数リテラルを解釈した時に 0 になってしまっていたのを修正しています。 http://twitter.com/kazuho/status/753829998767714305

hsbt: r55690 2016-07-15 18:13:20 +0900

bundled gem の test-unit(3.2.0), rake(11.2.2), did_you_mean(1.0.2) のバージョンをそれぞれ更新しています。

ngoto: r55691 2016-07-15 21:35:52 +0900

r55547 の文字列バッファの終端サイズの考慮の修正で embed 時の capa を再計算しているところで誤って (termlen-1) を足してしまっていたところを引くように修正しています。 [ruby-dev:49699] [Bug #12536]

ngoto: r55692 2016-07-15 22:08:54 +0900

r55686 の文字列バッファの capa の調整で rb_buf_cat() で +1 しているところを termlen ぶん増やすようにしています。またその前のオーバフローチェックの部分でも termlen のぶんを考慮するようにしています。

nobu: r55693 2016-07-15 23:08:20 +0900

enc/trans/ や .extout($EXTOUT) などのディレクトリ自体の依存関係解決のために作るタイムスタンプファイルを、そのディレクトリの .time というファイルを作るのではなくて $(EXTOUT)/.timestamp という専用のディレクトリを掘ってその下にまとめて置くようにしています。