[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

754 | revision | FAQ | references | list archive