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