On Sat, Sep 15, 2007 at 05:59:06PM -0400, Kamaraju S Kusumanchi wrote:

>     I am trying to understand why guile 1.8.2 FTBFS on alpha architecture.
> The corresponding build log is at
> http://buildd.debian.org/fetch.cgi?&pkg=guile-1.8&ver=1.8.2%2B1-2&arch=alpha&stamp=1188100514&file=log

> I looked at the source guile-1.8-1.8.2+1/test-suite/standalone/test-round.c

> and the lines where the build fails is 

>       /* 2^DBL_MANT_DIG-1
>          In the past scm_c_round had incorrectly incremented this value, due
>          to the way that x+0.5 would round upwards (in the usual default
>          nearest-even mode on most systems).  */
>       x = ldexp (1.0, DBL_MANT_DIG) - 1.0;
>       assert (x == floor (x));      /* should be an integer already */
>       assert (scm_c_round (x) == x);  /* scm_c_round should return it
> unchanged */

> I do not have access to an alpha machine, so the only way I can debug the
> problem is by looking at the source code. I gather that the above test
> should not fail provided IEEE 745 standard is followed for performing
> floating point arithmetic. What is the status of this on various
> architectures (especially on alpha)?

Here's the problem:

value: 9007199254740991.000000, floor: 9007199254740990.000000

This is evidently a bug in glibc, calculating the floor() value wrong on
alpha.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to