-
Notifications
You must be signed in to change notification settings - Fork 803
Description
We have a bibliography reference to ISO/IEC 10967-1:2012 and mention it in a number of footnotes. That standard makes factually incorrect statements and is irrelevant to C and C++ following the C23 rebase. We should purge any mention of it.
Historical background
Historically, C17 had an Annex H which documented compliance with ISO/IEC 10967–1. I suppose this is why we refer to it as well. C23 no longer mentions ISO/IEC 10967–1 in any of its wording, but does contain an unused reference in its bibliography. This is most likely an editorial mistake.
C23 instead has an Annex F, G, and H that document compliance with ISO/IEC 60559. We also refer to ISO/IEC 60559, and we are based on C23 for large portions of the standard library.
The problem with referencing ISO/IEC 10967-1
ISO/IEC 10967-1:2012 is now essentially irrelevant to us. In fact, the references we have are outright wrong and misleading:
Lines 1659 to 1663 in ef2abfa
| The rounding style for the type. | |
| \begin{footnote} | |
| Equivalent to \tcode{FLT_ROUNDS}. | |
| Required by ISO/IEC 10967-1:2012. | |
| \end{footnote} |
C23 (https://cigix.me/c23#5.2.5.3.3.p23) says that an FLT_ROUNDS value of 1 indicates "to nearest, ties to even" and a value of 4 indicates "to nearest, ties away from zero"
On the contrary, ISO/IEC 10967-1 claims:
This is wrong. C no longer has any ambition of complying with ISO/IEC 10967-1, and it outright violates it, as can be seen.
Note
The "†" symbol means:
The operations or parameters marked “†” are not part of the language standard and must be provided by an implementation that wishes to conform to LIA-1.
This is also wrong in the case of C23. The language standard does provide the value 4.
Thankfully, no normative wording is affected by this, only a bunch of footnotes in [support].