[Top][All Lists]

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

Re: strtod bugs

From: Eric Blake
Subject: Re: strtod bugs
Date: Sun, 30 Mar 2008 15:00:59 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20080213 Thunderbird/ Mnenhy/

Hash: SHA1

According to Bruno Haible on 3/30/2008 2:44 PM:
| Hi Eric,
|> Of all the
|> systems I tried, I did not find a single one that was fully C99 compliant.
| I'd like to document the flaws across more platforms. Do you have a set of
| test programs, one snippet for each bug you found so far, that I could run
| on a variety of systems? I could try to extract them from the unit test that
| you committed, but you probably already went through this process, I assume?

test-strtod.c is all I had; but I intentionally made it catch all errors
rather than aborting on the first; then correlated the line number
failures to the platform bugs.  The only machines I had access to were
glibc 2.3.4, cygwin 1.5.25-7 through -11 (-11 contains several of my
patches for bugs caught in -7), mingw, OpenBSD 4.0, and Solaris 8.

And there are probably still bugs out there that my unit test did not
catch - for example, several years ago, I found that I could put Sun's
javac compiler in an infinite loop when parsing a thousand-character
decimal that was just barely less than the smallest normalized number
minus .5 ULP; and I have suspicions that the decimal-to-float algorithm in
Sun's compiler is shared among many other platforms (many such algorithms
are based on David M. Gay's open source implementation).

test-strtod.c is big, but it could certainly be made bigger as we find
more bugs (and more importantly, as gnulib's replacement is beefed up to
be more accurate).

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
Version: GnuPG v1.4.8 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


reply via email to

[Prev in Thread] Current Thread [Next in Thread]