Support in GCC 4.2 for decimal floating types is based on drafts of
ISO/IEC WDTR 23732, which continues to change.  There are some
differences between the most recent draft N1176 and what GCC implements,
and some other things that should probably change or at least be
documented.  I'd appreciate some guidance on these.

1. The draft TR specifies that an implementation define __STDC_DEC_FP__
   as 1 to indicate conformance to the technical report.  GCC currently
   defines this, but there are a couple of issues here.  First is that
   GCC is only one piece of the implementation and the macro shouldn't
   be defined unless the C library also implements the library portion.
   The other issue is that the TR continues to change, and the macro
   shouldn't be defined until GCC and the relevant C library support the
   final version of the TR.  I'd like to remove this from GCC, if it's
   OK to do that at this late stage.

2. There was a change a few months ago that disallowed operations
   between decimal floating types and generic floating types.  A patch
   to change that was first submitted in December and has been pinged
   several times.  If it's not approved for mainline then I'll document
   the difference.

3. Earlier drafts specified that a new header file <decfloat.h> define
   various macros for characteristics of decimal floating types.  The
   latest draft puts these in <float.h> instead.  I'm inclined to leave
   them in <decfloat.h> until the TR is approved, or at least more
   stable, and document that difference.

4. The latest draft has some changes to what happens when a decimal
   floating type value is converted to an integer type and cannot be
   represented; I plan to just document this difference for now.

5. The draft TR defines unsuffixed floating constants supported by
   translation time data types.  This is not implemented in GCC because
   it affects generic floating types float, double, and long double.
   We have no plans to deal with this until the TR is approved and there
   is community support for adding this functionality to GCC.  This
   affects whether we can claim that GCC supports the TR, but that's
   something to deal with later.

I've been waiting to update the documentation in the GCC Manual until
the latest draft is available online, but it's still not there.  I'll
submit something soon anyway.

Janis

Reply via email to