History log of /freebsd-10.0-release/lib/libc/gdtoa/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


227753 20-Nov-2011 theraven

Implement xlocale APIs from Darwin, mainly for use by libc++. This adds a
load of _l suffixed versions of various standard library functions that use
the global locale, making them take an explicit locale parameter. Also
adds support for per-thread locales. This work was funded by the FreeBSD
Foundation.

Please test any code you have that uses the C standard locale functions!

Reviewed by: das (gdtoa changes)
Approved by: dim (mentor)


178154 12-Apr-2008 das

Unbreak the build for arm and powerpc.

Pointy hat to yours truly.


178140 12-Apr-2008 das

Make several changes to the way printf handles hex floating point (%a):

1. Previously, printing the number 1.0 could produce 0x1p+0, 0x2p-1,
0x4p-2, or 0x8p-3, depending on what happened to be convenient. This
meant that printing a value as a double and printing the same value
as a long double could produce different (but equivalent) results.
The change is to always make the leading digit a 1, unless the
number is 0. This solves the aforementioned problem and has
several other advantages.

2. Use the FPU to do rounding. This is far simpler and more portable
than manipulating the bits, and it fixes an obsure round-to-even
bug. It also raises the exceptions now required by IEEE 754R.
The drawbacks are that it is usually slightly slower, and it makes
printf less effective as a debugging tool when the FPU is hosed
(e.g., due to a buggy softfloat implementation).

3. On i386, twiddle the rounding precision so that (2) works properly
for long doubles.

4. Make several simplifications that are now possible due to (2).

5. Split __hldtoa() into a separate file.

Thanks to remko for access to a sparc64 box for testing.


174681 16-Dec-2007 das

Export gdtoa's __ULto{x,Q}_D2A routine in a private namespace so
libm can use it.


174488 09-Dec-2007 das

Fix handling of subnormals on i386/ia64/amd64.

PR: 85080


174204 03-Dec-2007 das

In scanf, round according to the current rounding mode.


173793 21-Nov-2007 jb

Use an intermediate pointer to avoid a strict aliasing warning.

Note that ULong in this code is actually defined as an unsigned integer across
all arches so that the gdtoa() function always processes 32 bit data
despite the unfortunate naming of "ULong".


172618 13-Oct-2007 deischen

Remove symbols that should not be exported.

Submitted by: das
MFC after re@ approval


169354 08-May-2007 das

Fix a rounding error.

Reported by: Bruno Haible


169092 29-Apr-2007 deischen

Use C comments since we now preprocess these files with CPP.


165742 03-Jan-2007 das

Fix rounding of 0xf for hex fp formats.

PR: 90333


157777 15-Apr-2006 deischen

Don't export __gdtoa. The only known ports that rely on
this or the deprecated POSIX functions {e,g,f}cvt() have
newer versions that do not (rely on them).

Requested by: marius


157350 01-Apr-2006 deischen

Add __gdtoa to the list of FreeBSD private symbols. Unfortunately,
this is used by some 3rd party applications when {e,f,g}cvt() are
not found. POSIX defines the xcvt() funtions but says they are
deprecated in favor or sprintf(). We'll import these functions
from OpenBSD and remove __gdtoa() from the exported interfaces
when libc version is bumped.


156613 13-Mar-2006 deischen

Add each directory's symbol map file to SYM_MAPS.


156608 13-Mar-2006 deischen

Add symbol maps and initial symbol version definitions to libc.

Reviewed by: davidxu


140889 27-Jan-2005 das

Don't compile the gdtoa package's strtoIg.c into libc.
I never got around to making use of it.


140430 18-Jan-2005 das

Cut out the gordian handling of subnormals by bit fiddling, and
instead use the FPU to convert subnormals to normals. (NB: Further
simplification is possible, such as using the FPU for the rounding
step.)

This fixes a bug reported by stefanf where long double subnormals in
the Intel 80-bit format would be output with one fewer digit than
necessary when the default precision was used.


140279 15-Jan-2005 das

Eliminate gdtoa.mk and move its contents to ${MACHINE_ARCH}/Makefile.inc.
The purpose of having a separate file involved an abandoned scheme that
would have kept contrib/gdtoa out of the include path for the rest of libc.


124767 21-Jan-2004 grehan

Updated manh shift constant type to 'ULL' for PPC to fix
shift-too-large compile error

reviewed by: das


124667 18-Jan-2004 das

Implement __hdtoa() and __hldtoa() and enable printf() support for %a
and %A, which print floating-point numbers in hexadecimal.


124652 18-Jan-2004 das

Fix a bug that caused long double subnormals to be printed
incorrectly on architectures without an explicit normalization
bit (sparc64, powerpc).


124374 11-Jan-2004 ru

Replaced an ugly hack to selectively disable warnings
in contributed sources with just a hack made possible
by bsd.sys.mk,v 1.33. This is better because it just
nulls out the warning flags rather than adding gcc(1)
specific -w option to CFLAGS.


124354 10-Jan-2004 obrien

Add an ulgy hack so that warnings added by non-zero WARNS values won't be
used with the contrib/ gdtoa sources as they aren't WARNS-clean.

Submitted by: ru


116652 21-Jun-2003 das

Userland spinlocks bad. Sleep locks good.
Use the latter for gdtoa.

Requested by: deischen (far too long ago)


113278 09-Apr-2003 das

/strtopx/ s/result/&result/
This is the version I *meant* to commit last week.


113145 05-Apr-2003 das

Add __ldtoa(), a wrapper around gdtoa() to make it look like dtoa().
In support of this, add some MD macros to assist in converting long
doubles to the format expected by gdtoa().

Reviewed by: silence on standards@


112202 13-Mar-2003 obrien

Clean up the way gdtoa sources are found.

OK'ed by: das


112163 12-Mar-2003 das

Replace our ancient dtoa/strtod implementation with the gdtoa
package, a more recent, generalized set of routines. Among the
changes:
- Declare strtof() and strtold() in stdlib.h.
- Add glue to libc to support these routines for all kinds
of ``long double''.
- Update printf() to reflect the fact that dtoa works slightly
differently now.

As soon as I see that nothing has blown up, I will kill
src/lib/libc/stdlib/strtod.c. Soon printf() will be able
to use the new routines to output long doubles without loss
of precision, but numerous bugs in the existing code must
be addressed first.

Reviewed by: bde (briefly), mike (mentor), obrien