[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: Comments on clause 9. Recommended operations in draft 1.6.0
Should we say something about conformance
not just in a particular radix, but also in a particular format?
In my proposal
http://754r.ucbtest.org/msc-ballots/formats.pdf
I define conformance to the standard, and a conforming implementation of a
supported
arithmetic format, and a conforming implementation of a supported interchange
format.
I have wrestled with the question of how to extend the is754version1985 and
is754version2008 predicates in a useful direction to tell more about which
language
types map to which 754R formats, but gave up as it's too complicated in general
to be inventing at this point. Different languages might have only binary,
only decimal, binary or decimal as a compile option, binary or decimal as a
run-time
option, binary and decimal simultaneously available as separate types, binary
and decimal
simultaneously available in the same types...
Perhaps the recommendation should be that languages provide a means of
determining
the mapping between a particular program variable and a supported 754R format
which might be static or dynamic according to the language. One would want
to
know whether it's arithmetic, interchange, or both. How are language-defined
extended/extensible and implementation-defined extended/extensible to be
identified?
For some languages this will all be fixed because there is only one
floating-point
type or only one type; for others it will all be implementation-defined.
What specification is both specific enough to be useful and flexible enough to
encompass all possibilities?
The more global conformance question is again at the language level, for
languages
that define conformance to 754 or 754R; then is754version2008() tells whether
conformance to a language revision that supports 2008 is enabled and similarly
for 1985.
In either case the exact meaning depends on the language and doesn't really
seem to be something that could be used in a portable way across languages.