On Monday 12 November 2007 16:49:18 chromatic wrote:

> > After poking around quite a bit, the following patch fixes it:
> >
> > --- parrot-current/src/ops/experimental.ops Wed Oct 17 19:15:15 2007
> > +++ parrot-andy/src/ops/experimental.ops    Mon Nov 12 15:13:43 2007
> > @@ -91,7 +91,7 @@
> >    FLOATVAL temp2 = fabs($2);
> >    FLOATVAL temp3 = fabs($3);
> >
> > -  while (!FLOAT_IS_ZERO(temp3)) {
> > +  while (temp3 != 0.0) {
> >      q     = floor((FLOATVAL)temp2/temp3);
> >      c     = temp2 - temp3*q;
> >      temp2 = temp3;
> >
> > It may well be there's an issue with gcc's optimizer, since the problem
> > goes away without optimization, but I think it's also fair to say that
> > the definition of FLOAT_IS_ZERO in include/parrot/misc.h is
> > perhaps not optimal here.  I'd prefer the simpler definition:
> >
> >     #define FLOAT_IS_ZER0(f) ((f) == 0.0)
> >
> > but I didn't get anywhere last time I proposed that.  I don't know
> > what else to do.

Applied as r22820, thanks!

-- c

Reply via email to