ruby-trunk-changes r41683 - r41688

今日は主に bignum.c のリファクタリングと、拡張ライブラリ socket のローカルアドレス指定時の挙動の変更がありました。

akr:r41683 2013-06-28 08:07:59 +0900

bignum.c の bigand_int() に x のバッファサイズ xn と最上位ワード(BDIGIT)の値 hibitsx を渡し、負値の and 演算の時の処理を簡便にしているようです。簡単になっているのかどうかはよくわかりませんが。

svn:r41684 2013-06-28 08:08:03 +0900

version.h の日付更新。

naruse:r41685 2013-06-28 09:52:16 +0900

test/ruby/test_notimp.rb の test_call_fork で子プロセスの終了を待つタイムアウトを 5秒に延ばしています。ただの空の fork なのですが負荷からか時間がかかることがあるみたいです。

akr:r41686 2013-06-28 12:16:07 +0900

拡張ライブラリ socket で IPSocket.new でローカルアドレスの指定があった場合に、接続先のアドレスファミリーとアドレスファミリーが一致するかチェックして、一致しなかったら bind(2) しないようにしています。
この変更で RubyInstaller の CI がエラーになっているみたいですね。 [ruby-core:55683] [Bug #8574]

akr:r41687 2013-06-28 12:35:39 +0900

bignum.c の rb_big_and() で上位ワードが 0 の時に確保する Bignum のバッファサイズを引数のうち小さいほうのバッファサイズに揃えて無駄を省くようにしています。

nobu:r41688 2013-06-28 13:26:21 +0900

r41656 と同じく Enumerable#lazy が返す Enumerator::Lazy のオブジェクトの Enumerator#size メソッドが返す値を指定するコールバック関数に enum_size() を流用していたのを、きちんと適切な型の lazyenum_size() を定義して渡すようにしています。