Igor Schein on Wed, 08 Sep 2004 17:05:45 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Alpha nightly build (test) problems


On Mon, Sep 06, 2004 at 10:35:18PM +0200, Bill Allombert wrote:
> On Mon, Sep 06, 2004 at 01:28:55AM -0700, Phil Carmody wrote:
> > Firstly, apologies for the noise at
> > http://megrez.math.u-bordeaux.fr/buildlog.html -- I found >20 gp-sta's
> > thrashing around in a swapping frenzy this morning, knee-jerk killall-ed them,
> > and their builds each proceeded with an outgoing mail before I could stop them.
> 
> No problem, if that was a real issue for me, I could remove the
> extra buildlogs and reupdate the site.
> 
> > I shall try to spoon-feed a single top-of-tree (1.996 probably) build this
> > afternoon when I get home from work this evening.
> 
> I have tested current CVS on an alpha box and it seems to work fine.
> 
> > It appears that the Itanic build wasn't too happy with 'elliptic' last night
> > either -- that was the test my gp's seemed to be stuck in, so perhaps this
> > isn't just an alpha issue, but a 64-bit one.
> 
> I think it is a ia64 specific issue. This boils down to the above program
> 
> #include <math.h>
> typedef unsigned long ulong;
> main()
> {
>     ulong a=18446744073709551431UL;
>     double beta=sqrt((double)a);
>     double p=beta*(1UL << 32);
>     ulong u = (ulong) p;
>     long l= (long) p;
>     printf("beta=%g\np=%g\nu=%lu\nl=%ld\n",beta,p,u,l);
>     return 0;
> }
> It returns:
> 
> ia64:
> beta=4.29497e+09
> p=1.84467e+19
> u=9223372036854775808
> l=-9223372036854775808
> 
> alpha:
> beta=4.29497e+09
> p=1.84467e+19
> u=0
> l=0
> 
> amd64:
> beta=4.29497e+09
> p=1.84467e+19
> u=0
> l=-9223372036854775808
> 
> Somehow, PARI is much happier with u=0.
> 
> I am not quite sure what mandate ieee754 in that situation, and how
> PARI can work around such discrepancy.

Here're 2 more outputs:

hppa64 (benches pass):
beta=4.29497e+09
p=1.84467e+19
u=18446744073709551615
l=9223372036854775807

and the one I already posted in another thread

sparc64 (benches fail):
beta=4.29497e+09
p=1.84467e+19
u=9223372036854775807
l=9223372036854775807

So u=0 is not neccessary for it to work.

Igor