[Cfp-interest] WG14 meeting notes for Part 3

Rajan Bhakta rbhakta at ca.ibm.com
Mon May 6 10:45:50 PDT 2013


Same for this part.
Note that we have some issues we need to look at (tagged with *AI* below 
for context):
1) Rename the "generic" floating types to something else like "classic"
2) Jim's slide examples need to be added to the TS
3) The word "interchange" should be replaced by something else


n1691: (Floating point TS Part 3) 
  Benito: C++ is working on some typedefs for extended types as well. Bill 
Seymour will make sure they (C++) know that we have an ISO work item for 
this already while they are still in a study group so we don't get out of 
sync. 
  Issue 1: 
    Blaine: What is the technical reason for having part 1 or part 2 
binding? 
    Jim: The types requires arithmetic for use. We could have the data 
interchange types without any binding to the previous parts. 
    Douglas: What is the point of the issue? 
    Jim: It is a distributed specification. How hard will this be for 
implementers to follow these? 
    Benito: The downside started when we asked for Part 1 and Part 2 to be 
independent. 
    Blaine: Why weren't the extended types put into part 1 and part 2 
themselves originally? 
    Jim: These are optional from the IEEE spec. Parts 1 and 2 are 
mandatory from the IEEE spec. 
  Type structure additions: 
    Blaine: Why do you want to have the distinction between data 
interchange types and interchange floating types? 
    Jim: An example is _Float16. Most implementations will want this as a 
data interchange type. A particular may want to have arithmetic operations 
on it as well making it an interchange floating type. 
    Clark: Representation is different from type. A type implies 
representation and operations. It seems confusing to talk about 
interchange types. It may be better to only have interchange 
representations. 
    Jim: How do you get the representation? 
    Clark: You can convert the representation to a type to handle it. 
Maybe say transcribe instead of convert? 
    Tom: You do in fact define the data interchange types including 
operations on the types. Which is being proposed? 
    Jim: It will come later in the presentation. These are the types you 
can put the representation into. You can do conversion, comparison macros, 
etc. but not arithmetic. 
    Jim: This is the type binding from IEEE to C. 
    Clark: You are renaming real floating types into generic floating 
types. 
    Douglas: The paper changes all uses of real floating type to generic 
floating type. 
    Clark: Why do this? 
    Jim: Due to the decimal TR (now Part 2). The reason is to keep real 
floating type wherever it is in the standard. 
    Clark: I don't like the connetations of "generic" (Blaine also). 
    Jim: We can look at renaming this (*AI*) to maybe something like 
"classic"? 
  Issues not labelled as issues (first so labelled slide): 
    No comments. 
  Example 2: 
    Blaine: Is there some macro to know if _Float16 can also be 
arithmetic? 
    Jim: Yes. 
    Douglas: Why would you have _Float32x be 128 and not _Float64x? 
    Jim: It can be like the slide before. 
    Jim: The types are distinct. 
    Barry: Should these tables (from the examples) be in the TS? 
    Jim: We can add them. (*AI*) 
  Issues not labelled as issues (second so labelled slide): 
    Seymour: How does float + Float64 work? 
    Jim: Promoted to Float64 since to do + Float64 must be an arithmetic 
type 
    Clark: I would prefer a world where this hierarchy or considerations 
didn't apply. I would prefer the interchange stuff be in terms of 
representations not types. 
    Jim: That would not get rid of any of this. These are all arithmetic 
types. 
    Clark: I would banish the concept of interchange type. 
    Jim: What would float256 be? 
    Clark: I would not have one. No types. 
    Jim: That is required by the IEEE standard. 
    Douglas: Can't you have all data types being arithmetic types? 
    Jim: That wouldn't help Clark. 
    Clark: The extended types are fine. The interchange types is the 
issue. 
    Seymour: I've got a bunch of bits coming in my modem. I have to put 
them in an object before I do anything with it. 
    Clark: I think of interchange as working on a buffer. 
    Jim: I think you are tripping up on the name. 
    Clark: Yes, that and other things. 
    Blaine: You can make a typedef of a char array for those types. You 
could have functions that work on those. And not have arithmetic versions 
of the interchange types. 
    Jim: The terminology is not being used right. The IEEE spec allows 
data interchange types to be arithmetic. 
    Blaine: Is it possible to separate the arithmetic float16 to be 
distinct from the data only float16 (different names)? Would this work 
with IEEE? 
    Jim: We could then have the data only version handled differently. 
    Roberto: Is it possible to deliver the IEEE spec without data only 
interchange types. 
    Jim: This is a full specification of optional features of the 
standard. 
    Martin: Are you opposed to the types being introduced as fundamental 
types or even for "user defined" types (typedefs)? 
    Clark: To talk about an interchange floating point type mixes up ideas 
that do not help the world. The floating point standard says binary16 is 
an interchange type. That is a special case. I don't think the world would 
thank us for this. People would want arrays of binary16 and operate on 
them without pain. 
    Jim: Suppose your implementation doesn't do computation in float128 
but wants to be able to handle it (for example, by converting to float64x 
like 80-bit floats) to do actions on it. 
    Blaine: The interchange types should be distinct non-arithmetic types 
with the exception of float16. The other interchange types should never be 
arithmetic. 
    Jim: The problem is terminology. The floating point spec refers to all 
non-extended types as interchange types. (*Issue still*) 
  Issues not labelled as issues (third so labelled slide): 
    Blaine: Does the conversions include runtime code? 
    Jim: It could. 
    Martin: Do these types have to be fundamental types. 
    Jim: These are scalar types. They cannot be structs. If we want to 
respecify them we'd have to come up with new ways to do conversions and 
classification macros etc. to make them functions. 
    Martin: Would doing those changes resolve Blaine and Clark's 
objections? 
    Blaine: No, I don't want data only to be the same as arithmetic types 
ever. 
  Issues not labelled as issues (fourth so labelled slide): 
    No comments. 
  Jim: Sensing reaction to the interchange terminology. We can go back and 
change the terms we used for this. 
  Benito: Follows IEEE terminology. 
  Blaine: I want a reference to the IEEE description in this document. 
  Benito: It requires reading IEEE in the TS. 
  Jim: We can look at adding or paraphasing the definition from the IEEE 
spec for interchange terms. 
  Blaine: I need to understand the IEEE terminology and so I'll pull back 
until I understand it. 
  Willem: I feel that interchange types are like jpeg. This is not a 
concern for the language. Do we need to have them at all for C? Is it 
appropriate for us? 
  Blaine: Interchange is nailed down. A specific number of bits for 
mantissa, etc. so it can be used anywhere that follows the standard. 
  Jim: If you think of it as data, it is interchangable data whether or 
not you can do arithmetic. Email follow up on this item. 
  Jim: The other concern is for the items that are not arithmetic not be 
types. 
  Blaine: They need to be types, no question. Just don't put floating in 
the name. 
  Clark: You can think of them as struct types or model them as such. 
  Jim: Conversions make it interesting. 

Regards,

Rajan Bhakta
z/OS XL C/C++ Compiler Technical Architect
ISO C Standards Representative for Canada
C Compiler Development
Contact: rbhakta at ca.ibm.com, Rajan Bhakta/Toronto/IBM
Telephone: (905) 413-3995 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.oakapple.net/pipermail/cfp-interest/attachments/20130506/e6326162/attachment-0001.html 


More information about the Cfp-interest mailing list