[MLton] Re: Hppa
Wesley W. Terpstra
terpstra@gkec.tu-darmstadt.de
Wed, 22 Dec 2004 14:58:26 +0100
On Tue, Dec 21, 2004 at 08:06:29PM -0800, Stephen Weeks wrote:
> > #define FLT_MIN 1.17549435e-38
> > I read up on this and this is the smallest unnormalized float: 2^-125.
>
> Minor quibble: 1.18e-38 is approximately 2^-126.
Err, yeah. =)
> It looks like there's a problem in the MLton basis library
> implementation too. The regresion test displays reals using Real.fmt
> StringCvt.EXACT. According to the basis spec, this is equivalent to
> IEEEReal.toString o Real.toDecimal. The spec for Real.toDecimal says
> that it "should produce only as many digits as are necessary for
> fromDecimal to convert back to the same number". Since MLton
> implements Real32.toDecimal by converting to a double, it is producing
> too many digits for most floats. The only fix I see is to change
> runtime/basis/Real/gdtoa.c to make Real32_gdtoa use the gdtoa library
> directly modeled on g_ffmt, just as Real64_gdtoa uses the gdtoa
> library modeled on g_dfmt. If we're in agreement, I'll do that after
> applying your c99 patch.
Sounds fine to me.
> With that fix, we still may have regression problems with the last
> digit. If so, I think the right thing is to tweak the regression to
> simply drop the last digit.
If the goal is to make regressions only produce output on actual failure
conditions, then I agree. For a normal application, printing them all would
be the right thing to do.
--
Wesley W. Terpstra