>>>>> "Robert" == Robert Dodier <robert.dodier at gmail.com> writes:
Robert> hello david,
>> With 5.9.2 and CVS maxima with clisp on cygwin I see
>>
>> (%i1) float(0.0b0);
>> Floating point overflow in converting 0.0B0 to flonum
>> -- an error. Quitting. To debug this try debugmode(true);
>>
>> I don't see this with 5.9.2 on windows (gcl)
Robert> a few more data --
Robert> clisp 2.34 / maxima 5.9.2cvs / linux => same error
Robert> gcl 2.6.7 / maxima 5.9.2cvs / linux => OK
Neat. cmucl and cvs HEAD produce the correct answer.
The problem is in fp2flo in float.lisp and can be seen to be caused by
clisp:
(/ 0 (expt 2d0 53)) => 0 instead of 0d0.
The error message that is produced is wrong because it thinks if
scale-float signals an error, it's because of overflow. In this case
scale-float signals an error because the first arg is not a float.
This result is independent of *floating-point-contagion-ansi*.
Sounds like a bug in clisp. An easy workaround is just cl:float the
arg to scale-float.
Ray