|
[ruby-list:43012] Bignum * Float: msg#00073lang.ruby.japanese
伊東と申します。 Ruby 1.8.5 で下記のように Bignum * Float の計算を行なうと Segmentation fault で終了してしまいます。 $ ruby --version ruby 1.8.5 (2006-08-25) [i486-linux] $ ruby -e '2**30 * 1.0' -e:1: [BUG] Segmentation fault ruby 1.8.5 (2006-08-25) [i486-linux] zsh: abort ruby -e '2**30 * 1.0' 調べてみると[ruby-dev:28369]で修正されており、1.9 では正常に計算できま すが、下記の安定版スナップショットには反映されていないようです。 ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz 問題がなければ、安定版スナップショットや (リリースされる場合は) 1.8 の 次期バージョンでは修正していただけないでしょうか。 なお 1.9 のソースを参考にすると下記の修正で正常に計算できるようになります。 --- bignum.c~ 2006-11-16 21:24:29.000000000 +0900 +++ bignum.c 2006-11-17 00:05:59.000000000 +0900 @@ -99,7 +99,10 @@ bignorm(x) VALUE x; { - if (!FIXNUM_P(x)) { + if (FIXNUM_P(x)) { + return x; + } + else if (TYPE(x) == T_BIGNUM) { long len = RBIGNUM(x)->len; BDIGIT *ds = BDIGITS(x); よろしくお願いします。
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:43011] Re: Enumerable#empty? が欲しい, Yukihiro Matsumoto |
|---|---|
| Next by Date: | [ruby-list:43013] [ANN] Rubyist Magazine 0017, SASADA Koichi |
| Previous by Thread: | [ruby-list:43010] Enumerable#empty? が欲しい, aka |
| Next by Thread: | [ruby-list:43013] [ANN] Rubyist Magazine 0017, SASADA Koichi |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |