ruby-trunk-changes r54965 - r54970

今日は random.c のリファクタリングや class 文の superclass に明示的に Object を指定した時の不具合修正などがありました。

nobu: r54965 2016-05-10 01:25:53 +0900

Random#== で seed の比較を rb_funcall2() で "==" メソッドを呼び出していたのを rb_equal() を直接呼び出すようにしています。 また seed の比較を最後にもってきています。

svn: r54966 2016-05-10 01:25:54 +0900

version.h の日付更新。

naruse: r54967 2016-05-10 13:36:33 +0900

r54895 でコンパイラオプションの -std=iso9899:1999 を -std=gnu99 に変更しましたが、この時 -fexcess-precision=standard というオプションの効果がなくなってたようなので明示的にコンパイラオプションに追加するようにしています。 参考URL: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

nobu: r54968 2016-05-10 14:57:11 +0900

random.c の obj_random_int32() で引数のオブジェクトの rand メソッドを呼び出していたのを obj_random_bytes() と改名して bytes メソッドを呼び出すようにして任意のサイズの乱数を生成できるようにしています。またこれに対応するために SecureRandom.bytes メソッドを gen_random の alias として追加しています。

nobu: r54969 2016-05-10 15:46:09 +0900

r54968 の続きで random.c の random_ulong_limited() で limit までで不要な部分の obj_random_bytes() の呼び出しを抑制するようにしています。

eregon: r54970 2016-05-10 21:46:43 +0900

class 文による Class 定義で superclass が明示的に指定されている時に superclass が異なっていたら例外が発生するのに class A < Object; end のように superclass が Object で明示的に指定されていた場合はチェックをスルーしていた(superclass の省略時と同じ)のを修正しています。 [ruby-core:75446] [Bug #12367]