なかだです。 At Tue, 17 Jul 2007 22:30:38 +0900, Yusuke ENDOH wrote in [ruby-dev:31242]: > bignum の大きさのチェックで integer overflow しているのが原因のようです。 > 1.8 での応急措置です。 ありがとうございます。ちょっと違う形ですが、チェックを直しました。 > 1024*1024 が即値で埋め込まれているのが気持ち悪いんですが、 > bignum の最大値ってちゃんと決まってないんでしょうか。 とくに決まってないです。今のところ「メモリの許す限り」という制 限だけなんですが、どこかに明示的な線引きをしたほうがいいでしょ うかねぇ。 > ついでに、重箱の隅ですが、以下の仕様変更は意図されたものでしょうか。 > > $ ./ruby -ve 'p(0**(1<<30))' > ruby 1.8.6 (2007-06-07 patchlevel 36) [i686-linux] > -e:1: warning: in a**b, b may be too big > 0.0 > > $ ./ruby -ve 'p(0**(1<<30))' > ruby 1.8.6 (2007-07-17 patchlevel 5000) [i686-linux] > 0 0**((1<<30)-1)まではFixnumが返って来ているので、同じ0が返るほう が一貫性はあると思いますが。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦