ruby-trunk-changes r44909 - r44919

今日は拡張ライブラリ openssl の不具合修正、psych に同梱されている libyaml の不具合修正などがありました。

akr: r44909 2014-02-11 23:06:51 +0900

拡張ライブラリ openssl の OpenSSL::BN.new(1 << (2**34)) で SEGV する不具合修正。大きすぎる数値ははじくようにしています。ついでに(?) Bignum 関連の実装で使っている rb_integer_pack() を利用するようにしています。

akr: r44910 2014-02-11 23:43:23 +0900

Bignum の比較の実装 rb_big_cmp() で比較対象の y が 0 の時は符号や 0 かどうかだけチェックすればよいので、y == 0 の時の特別処理を追加しています。 また拡張ライブラリ bigdecimal の is_negative() で Bignum の時の実装を RBIGNUM_NEGATIVE_P() マクロから rb_bit_cmp() を利用するように実装を変更しています。 RBIGNUM_NEGATIVE_P() のほうがオブジェクトのフラグチェックだけなので軽そうな気がしますが、フラグが有効じゃないケースがあるんでしょうか。

akr: r44912 2014-02-11 23:55:37 +0900

拡張ライブラリ bigdecimal の BigMath.log の実装でも数値の 0 か負かを判定するところで RBIGNUM_ZERO_P() と RBIGNUM_NEGATIVE_P() を使うかわりに rb_big_cmp() を利用するようにしています。

akr: r44913 2014-02-12 01:40:41 +0900

Fixnum#bit_length と Bignum#bit_length の rdoc コメントに bit_length を使って Array#pack で整数を pack する時にオーバフロー検出につかえるということの追記しています。

svn: r44914 2014-02-12 01:40:45 +0900

version.h の日付更新。

nobu: r44915 2014-02-12 11:25:28 +0900

拡張ライブラリ bigdecimal で VpSetZero() と VpSetInf() というマクロで未使用の式の警告除去のため (void) を付加しています。 gcc 4.9 で警告になるそうです。

nobu: r44916 2014-02-12 11:25:30 +0900

rb_bug() で異常終了した時のメッセージに Mac OS X の時は別途ファイルに出力される crash log も添付するようにというメッセージを追加するようにしています。

nobu: r44917 2014-02-12 11:36:20 +0900

rb_bugs() で $LOADED_FEATURES を出力する時に String 以外のオブジェクトがあった時に to_str で文字列化しないようにする修正のテスト(r38041 あたりの変更)でメッセージにオブジェクトのクラス名が含まれていることをチェックしていたのを削っています。CI のエラー抑制のためでしょうか。

nobu: r44918 2014-02-12 18:01:28 +0900

拡張ライブラリ psych に同梱されている libyaml の変数名の typo を修正しています。

nobu: r44919 2014-02-12 18:01:30 +0900

標準添付ライブラリ webrickWEBrick::HTTPServlet::FileHandler でファイルリストを表示するページを作る時に、サブディレクトリへのリンクに現在のクエリパラメータを付加するようにしています。パラメータにはファイル名の表示文字数とかソート順の指定などが渡せるようです。