From: Yukihiro Matsumoto Date: 2007-07-18T23:53:50+09:00 Subject: [ruby-dev:31255] Re: p(65536**(1<<29)) stalls まつもと ゆきひろです In message "Re: [ruby-dev:31242] p(65536**(1<<29)) stalls" on Tue, 17 Jul 2007 22:30:38 +0900, "Yusuke ENDOH" writes: |1024*1024 が即値で埋め込まれているのが気持ち悪いんですが、 |bignum の最大値ってちゃんと決まってないんでしょうか。 中田さんからもありましたが、メモリが許す限りの大きさの数値を 許すというのが一応の仕様です。べき乗の計算の場合、ある程度以 上大きい数は浮動小数点演算で近似するという手を使っています。 すぐにInfinityになっちゃいますが。 |ついでに、重箱の隅ですが、以下の仕様変更は意図されたものでしょうか。 | |$ ./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 はい。まずいケースがあれば教えてください。