Motion P1788/M0059: YES
I vote YES on Motion 59, but some clarification is needed.
See my comments below.
§14.1, first item of the list: for the set of integer values and the
set of strings (which are entities not specific to P1788), shouldn't
the relation between Level 2 and Level 3 be implementation- or
language-defined, even though there is a one-to-one correspondence
in general?
For the integers, the reason is that there may be signed zeros (e.g.
allowed in ISO C, including the latest version C11, though I wonder
whether there exist still such implementations nowadays).
For the strings, in order to allow Unicode subtleties for instance.
IMHO, the property given in §14.2 should also apply to the integers
and strings.
§14.2: The end of the example is not clear: "there is an unique NaN."
then "there are many NaNs". Also note that in IEEE 754's Level 3, NaN
has only 2 representatives: qNaN and sNaN, the payload being taken at
Level 4 only. However, for numbers, P1788's Level 3 could correspond
either to 754's Level 3 or to 754's Level 4. This should be clarified
in the text.
It should also be made clear that if x_d = (x,d) is a decorated datum,
then there may not be a relation between the representations of x and
d and the representation of x_d (so that the third paragraph of §14.4,
where the representatives of the bare interval component of Empty_trv
and of NaI = (Empty,ill) differ, makes sense).
§14.3, first two paragraphs: I fear that requiring y' to be a function
of the x'_i (as it seems) may contradict some allowed behavior of the
language. For instance, a language may allow optimizations that change
the representative. Now, similar to my remark above, P1788's Level 3
could correspond either to what could be Level 3 or Level 4 in a
language, i.e. the language could decide that there is always one
representative of some datum, but several encodings (in C, there are
only 2 levels anyway: the objects and their memory representation).
The above remark could make the third paragraph pointless as a
specification, but with the example, the implementer would probably
understand the intent.
§14.4, paragraph 1: "The purpose of interchange formats is to allow
the loss-free exchange of Level 2 interval data between 754-conforming
implementations." somewhat contradicts the following of this section
(choice of the format width, DPD vs BID, integer size, endianness).
Instead of "allow" I would say "ease".
§14.4, paragraph 2, about the representative of Empty: "For example,
the only representative of Empty is the pair (+oo,-oo)."
Is this only an example or a requirement? In the latter case,
"For example" should be removed or replaced, by e.g. "In particular".
And in either case, it should be added: "except for NaI", because a
decorated interval is regarded as a pair (bare interval, decoration)
as said in §14.1.
§14.4, last line of page 65: in "is not 754 interchange format", a "a"
is missing. -> "is not a 754 interchange format".
§14.4, after the list: spurious period before "An implementation shall
document the above choices."
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)