ruby-trunk-changes r42084 - r42095

今日は bignum.c のリファクタリング、Hash#flatten の引数チェックの修正などがありました。

akr:r42084 2013-07-20 22:32:11 +0900

Bignum の乗算に利用しているアルゴリズムのひとつ Toom3 のコメントで係数の数をひとつまちがえていた(?)コメントを修正しています。

zzak:r42085 2013-07-20 22:34:34 +0900

doc/regexp.rdoc のサンプルコード内の誤ったエスケープを消しています。 https://github.com/ruby/ruby/pull/365

zzak:r42087 2013-07-20 22:46:34 +0900

make help で表示するメッセージ内の test-all に特定のテストスクリプトだけ実行する方法(TESTS 変数で引数が指定できる)を示唆するようにしています。 惜しい、TEST じゃなくて TESTS なんです。 https://github.com/ruby/ruby/pull/363

eregon:r42091 2013-07-21 01:08:49 +0900

と、思ったら r42087 での環境変数名の間違いを修正(TEST -> TESTS)してくれています。

svn:r42092 2013-07-21 01:08:54 +0900

version.h の日付更新。

naruse:r42093 2013-07-21 05:44:49 +0900

Hash#flatten での引数の変換を FIX2INT() から NUM2INT() に変更しています。
しかしちょっと中をみてみると FIX2INT() も rb_fix2int() で Fixnum でなかった時は rb_num2long() で変換しようとするんですね……と思いきやこれは sizeof(int) < sizeof(long) の時で、同じ時はチェックなしでシフト演算するだけですね。これはややこしい……。

ktsj:r42094 2013-07-21 08:14:48 +0900

Proc#to_s でスクリプトファイル名の文字列オブジェクトから RSTRING_PTR() でポインタを取り出していたのを rb_sprintf() の指示子に PRIsVALUE(%i) を利用することで文字列オブジェクトのまま渡すようにしています。

akr:r42095 2013-07-21 10:01:26 +0900

bignum.c で VALUE 型で Bignum を受け取る bigmul1_toom3() を BDIGIT の配列を受け取る bary_mul_toom3() に変更して、呼び元での不要な一時オブジェクトの生成を減らしています。