[Cfp-interest] WG14 IEEE 754-C binding meeting minutes 2016/12/01

Rajan Bhakta rbhakta at us.ibm.com
Thu Dec 1 14:08:28 PST 2016


2016/12/01, 12:00 EST:
  Attendees: Rajan, Jim, Fred, Mike, David C., David H.

  New agenda items:
    Discussion of email from WG14 reflector message 14561

  Last meeting action items:
    Jim: Check one of the files from the EDG backup for testing the off 
site backup. - Done.
    Jim: DR Set 3: Change positive-signed to non-negative. - Done 
(discussed later).

  New action items:
    Jim: Call David Keaton and ask for advice on how and when to present 
proposals for Parts 3-5.
    Jim: Write up a proposed TC for DR501 to make the DECIMAL_DIG macro 
obsolescent.
    All: Make sure we're OK with DDR9/DR11's change.
    Jim: Ask the IEEE-754 revision mailing list if the payload for NaN's 
must be non-negative (0 and up allowed).
    Jim: Reflector message 14561: Fix up "macro argument" to something 
along the lines of 7.25#3.

  Next Meeting:
    Tuesday January 24th, 2017, 12:00 EDT, 9:00 PST
    Same teleconference number.

  Discussion:
    IEEE 754 revision:
      Fred: There was discussion about -0/0 on the IEEE chain. Is this 
something that we need to bring into the C standard.
      David C: fmax/fmin (C) issues (maxNum, minNum in IEEE): Looking for 
insights into what to do.
        David H: Was it a mistake in IEEE 2008? If so, we can remove the 
item, or add a new item that does what we want (as a recommendation) so 
both ways don't break anyone.
      David H: augmented/twoSum are added and settled down now.
        Still issues with multiple exceptions, like signalling NaNs. Needs 
to be clarified.
        Sub-exceptions bring up other issues.
      Jim: The fmax/fmin in C adhere to the IEEE-754 operation right now. 
If it is removed from IEEE, we'd have to change the binding table.
      Mike: Does anyone claim conformance to the IEEE-754:2008 standard?
        David C: Never saw anyone.
        Fred: No compiler I've seen defines the conformance macro.
        Jim: HP did for Annex F (but that's the IEEE 754:1985 standard).

    C++ liaison:
      No update.
 
    What should be proposed for the C standard (C2X):
      Current status:
        Part 1 and 2 are intended to be included.
 
      Proposals for the other 3 parts:
        Next C meeting mailing deadline is March 6th, 2017.
        We need to decide what to do by the February meeting.
        David H: How do the other C members feel about the other parts?
          Part 3: Seemed to be not wanting to be implemented by some 
members, but not real resistance.
          Part 4: Neutral opinion. Library so more likely to be accepted.
          Part 5: Negative opinion with regards to exception handling 
(try/catch).
        Jim: Since they will all be optional, others not implementing it 
should not be too much of a roadblock.
          Part 3 is a wide ranging type so would prefer to see 
implementation experience.
        Fred: A possible objection to Part 4 is if there is no 
implementation experience, do we have all the corner cases handled?
          Jim: tanpi may have an argument (ones we added since it seemed 
to be omissions). The other two functions we added were added to the new 
IEEE-754 revision, but not this one.
        Rajan: We can propose part 4 as is with the caveat of removing 
tanpi if desired.
        Jim: For part 5, seems like a regularization of things 
implementations already do. This would provide portability. Perhaps 
separate out try/catch, and possibly the other parts that change flow 
control.
        Fred: We can propose part 5 without try/catch.
          Jim: How about break?
        Fred: For part 4, should they functions go in the main body or an 
annex?
        Jim: Like the TS, some in both the main body or in Annex F. As 
stated now, they will stay an optional feature.
        Fred: Some compiler implementers may not have enough knowledge to 
do the alternate exception handling.
          The hardware does not support everything. The compiler would 
have to do the mapping.
          David H: Same issue with anything else for a compiler as it 
always maps from language to hardware.
          Fred: One case is having a user requesting denorms flushed to 
zero, can be much slower than expected.
          David H: At some point you have to know what your hardware is 
capable of.
          Jim: The optimization pragma allows flush to zero, doesn't 
require it. For alternate exception handling, it has to be done, so it 
could require a lot of work.
        Jim: Sub-exceptions is another complexity we need to talk about.
          David H: Perhaps don't suggest this in the first round to the C 
committee?
            Supporting sub-exceptions does require a lot of library and 
compiler support since the hardware normally does not support them all.
        Jim: Note that part 5 is optional. Alternate exception handling is 
an optional part of part 5, and sub-exceptions are a "should" so triply 
optional.
        *Jim: Call David Keaton and ask for advice on how and when to 
present these.
          Present part 3 as is, but not pushed, and make clear the extent 
of the change, and have a fallback of referencing it if not accepted
          Present part 4 with tanpi as a possible removal
          Present part 5 without try/catch
 
    DRs:
      Set 2:
              DR501 (DECIMAL_DIG):
                For types wider than long double, like the types in Part 
3, allowing DECIMAL_DIG to be larger can handle that.
                Jim: Even a committee response saying it can be larger 
without a textual change in the standard would be good enough.
                Since we have type specific ones (including part 3) maybe 
we don't need this.
                Fred: The current wording says largest floating type. So 
it should be fine.
                  Jim: You should be able to have wording that supports 
Part 3 and C11 without part 3.
                    If you have a type that is wider than long double then 
DECIMAL_DIG would be larger. But C11 as it is only has the largest 
floating type as long double so it doesn't conform.
                    A footnote would be better.
                *Jim: We can make it obsolescent since there are type 
specific macros already.
              DDR9/DR11 (%a formatting):
                Need to watch this to make sure the late paper gets in and 
doesn't get missed.
                *All: Make sure we're OK with DDR9/DR11's change.
 
      Set 3:
        DDR1 (November 1 email from Jim re payload with positive floating 
point integer)/Last meeting action item:
          Precluded the payload from being zero.
          Part 1 says 60559 says the payload is an integer value encoding 
in the significand.
            754 says for decimal that the maximum is a certain value which 
implicitly says positive integers?
          Fred: Isn't a payload of 0 for one type of NaN an infinity?
          Jim: Maybe get confirmation of this from 754 before we decide on 
this here?

    Other:
      WG14 reflector message 14561 (Joseph Myers):
        Jim sent an email discussing this issue (2016/12/01).
        First change parallels DDR7.
        Rajan: Second change: Does macro argument type make sense? Macro 
arguments don't have types since they are substituted during preprocessing 
and before we have types.
          Need to match what we say in 7.25#3.
        Jim: This does give the implementation a choice of functions to 
use (anything that is wide enough to produce the given result type). Since 
these are correctly rounded functions, it doesn't matter which one we 
pick.

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/20161201/fbcd4ff0/attachment.html 


More information about the Cfp-interest mailing list