[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Meeting the Scope and Purpose of P754
Begin below with your proposed solution.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1.x.y ReproducibleResults Clause
Obtaining reproducible results requires the cooperation of the
user and the provider of a conforming programming environment:
the provider, by means of control options and documentation of
idioms that can or cannot guarantee reproducibility, and the
user by programming in the subset for which reproducibility can
be guaranteed.
In general, reproducibility depends on factors not covered by
this standard, e.g. the sizes of integer types. There are also
aspects of floating-point behaviour that are not fully specified
by this standard (e.g. precise NaN propagation rules). Reasons
for incomplete specification may be historical (they were left
open in the 1985 version of this standard, and there are existing
conforming implementations that made different choices), practical
(corner cases where the choice is immaterial, but implementation
techniques may affect the most practical choice), or where a fixed
choice might have been premature (in 1985).
In general, the primitives defined by this standard are fully
specified with regard to both numerical results and exceptions.
In a few cases, results are fully specified but some exceptions
may be optional in certain well-defined corner cases (e.g.
underflow for a result rounded up to the smallest normal value).
Finally, some operations are fully specified in only a subset of
their domain, but with tightly bounded variability outside that
domain, and with a specified minimum correctly-rounded domain
(e.g. conversions to or from an excessive number of significant
digits).
A full list of these aspects is given in section xxx. Requirements
on language control options to promote reproducibility are given in
section yyy.
*---------*
The definition of reproducibility given above accomodates the draft
standard as it now stands, as well as several of the changes that are
still under discussion. Those changes would affect sections xxx and
yyy mentioned above. Several people have already proposed what should
go into those sections; we need to pull this material together into a
coherent form.
I'd like to say one more thing with respect to "language control
options to promote reproducibility". The current text implies that
this can be achieved by attaching reproducibility constraints to a
"block", implying that anything within such a block would be covered.
Two things are wrong with this: (a) the notion of a static block may
not be applicable to the language, and (b) the constraint would still
cover only certain aspects of program reproducibility. I am not ready
at this point to offer an appropriate replacement. David Hough's
Clause 10 is a good start, but several objections have already been
raised, mostly that it accomodates only certain styles of language.
(For example, it does not make sense to require WidenTo control in
languages that already have well-defined type-coercion rules.)
Michel.
Sent: 2007-07-18 16:44:28 UTC