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