[Cfp-interest] WG14 IEEE 754-C binding meeting minutes 2015/02/18
Rajan Bhakta
rbhakta at us.ibm.com
Wed Feb 18 10:01:26 PST 2015
2015/02/17, 12:00 EST:
Attendees: Rajan, Jim, Mike, Vincent, Fred, Marius, David, Ian
New agenda items:
None.
Sticky action items:
David: Part 5: Complete exception specification with the full syntax
dealing with scope and sub-exceptions. Include a discussion document with
reasons choices and alternatives. - Partially done (more of an outline.
Sent on 2014/05/12). Keep open.
David: Part 5: SUBSTITUTEXOR -> SUBSTITUTE_XOR. Pending issue
resolution. - Leave open
Last meeting action items:
Jim: Ask Fred if the next meeting date is good for him. - Done
Jim: Check with David Keaton on where Part 2 is. - Done
David: Write up a proposal for what the FENV_REPRODUCIBLE pragma means
- Not done
David: Write up a proposal for alternate exception handling - Not done
New action items:
Jim: p4: Line 27: The STDC pragmas should be FENV_ prefixed
Jim: p5: Line 20: x * y should be x + y
Jim: p5: Line 33: x / y = x * (1 / z) --> x / y = x * (1 / y)
Jim: p6: Add a note saying that the optimizations do not have to be
consistent.
Jim: Some dash's have become hyphens throughout the document.
Jim: p6: Add a note saying 754 says synthesis where we say contract.
Jim: p7: Need example for contract operation conversion. Ex. float a =
b * c (where b, c can be double's, and allow a single rounding).
David: Write up a small description of what is required from IEEE for
reproducible results and changes to make it useful and implementable.
Next Meeting:
March 17th, 2015, 12:00 EST, 9:00 PDT
Same teleconference number.
Discussion:
Introductions - Vincent is new to the call.
Part 1: Published.
Part 2: Approved. Still waiting for edits from ISO for review.
Part 3: USA has balloted already, international is still open.
Part 4: USA has balloted already, international is still open.
Part 5:
cfp5-notes-20150211.pdf:
p vii: Supplementary attributes at bottom of page: Who is writing
it? Open.
p2: 5.3: Don't expect any new identifiers
p3: 7.6.1c: Fred: Undefined behaviour too harsh?
Consensus is that it is appropriate.
p3: 7.6.1c: Fred: Why is zero a valid value? Ex. Intel chips do
double rounding on denorms.
It is possible.
*ToDo: Jim: p4: Line 27: The STDC pragmas should be FENV_ prefixed
Issue 1: Can decouple the optimization pragma from the evaluation
method pragma. Inter-relations cause complications however. We can add a
note that -ve evaluation methods can have value changing optimizations.
Need to refer to each other to ensure interactions are considered.
*ToDo: Jim: p5: Line 20: x * y should be x + y
*ToDo: Jim: p5: Line 33: x / y = x * (1 / z) --> x / y = x * (1 /
y)
p6: Allow zero: Does it have to be always? We should say it does
not have to be consistent. Ex. It may occur only sometimes.
*ToDo: Jim: p6: Add a note saying that the optimizations do not
have to be consistent.
*ToDo: Jim: Some dash's have become hyphens throughout the
document.
Issue 2: Keep contract. Can make a note about this issue.
*ToDo: Jim: p6: Add a note saying 754 says synthesis where we say
contract.
*ToDo: Jim: p7: Need example for contract operation conversion.
Ex. float a = b * c (where b, c can be double's, and allow a single
rounding).
Issue 3: Obsolesce of the older pragma would result in changing
the references to that pragma throughout the C standard. We should
explicitly say they are synonyms. Consensus is to keep both with the note
about saying they are synonyms.
Note: Contract can be for anything, not just FMA, as long as there
is a single rounding.
Reproducible results:
David: Is there anything in C that specifies how to do a+b+c?
Yes: Left to right unless parenthesized.
Using the correctly rounded transcendental functions by default
when you have them. When not correctly rounded by default, this is where a
lot of time is spent.
More to say regarding Complex arithmetic reproducibility.
There is an example in the standard for divide and multiply. Gives
requirements for correctness.
The value changing optimizations and evaluation are handled above.
David: The default should be reproducible results.
Jim: What does this mean?
David: You should have to ask for optimizations that can affect
reproducible results.
Note that we can't make existing implementations that are not
reproducible by default fail with this TS.
From the IEEE spec, it must be user selectable to have
reproducible results. i.e. Not required to be default.
Required to warn/diagnose when not reproducible. Ex. Using
non-correctly rounded transcendental functions.
Ex. Using complex may not be reproducible.
The requirement that there must be a way to ensure reproducible
behaviour even for other CU's linked in and other library functions will
be hard to meet for some environments.
The large number of warning messages may not be that much if the
non-reproducible functions are not common in code.
Fred: Casts are being ignored for floats to integers 'float a =
(float)DBL_MIN;' for every compiler I've tested. It is very hard to get
reproducible results as some things are done at translation time and
others are done at run-time.
*ToDo: David: Write up a small description of what is required
from IEEE for reproducible results and changes to make it useful and
implementable.
Alternate exception handling:
Still to do.
Regards,
Rajan Bhakta
z/OS XL C/C++ Compiler Technical Architect
ISO C Standards Representative for Canada
C Compiler Development
Contact: rbhakta at us.ibm.com, Rajan Bhakta/Houston/IBM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.oakapple.net/pipermail/cfp-interest/attachments/20150218/aa8ac6a8/attachment.html
More information about the Cfp-interest
mailing list