[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Proposed comments and changes to P754 draft (by Bob Davis)



(2) dropping the distinction between storage and basic formats.

The suggested rewrite of clause 3.1 does not achieve this, as it
still distinguishes between formats available for arithmetic and
formats available only for assignment and conversions.  The trouble
is that there is now no guideline as to which interchange formats
are available for arithmetic.   This is a step away from arguments
in favour of reproducibility.

Non-interchange formats must clearly be available for arithmetic, but
the proposal would now give languages a choice of which interchange
formats are available for arithmetic.  It would perhaps be silly to
support arithmetic on narrow formats but not wide ones, but basically
the threshold between "storage" and "basic" now becomes a choice:

  -- interchange formats are formats with encodings defined in this
     standard.  They are widely available for arithmetic, storage, ...

I note that "widely available" does not mean "always available",
which is what the plain "available" of draft 1.5.0 means.

Some environments may choose to support arithmetic directly on what
are now storage formats (Bin16 and Dec32); the current standard
requires that such arithmetic, when specifiable in the language,
be carried out in the narrowest basic format of the same radix.

Some environments may choose to avoid arithmetic in what are now
basic formats, and carry out all arithmetic in a wider format.
This is what is now permitted in "widenTo" modes for intermediate
results -- but the current draft also requires that arithmetic
results be obtainable with a single rounding to Bin32 or to Dec64.

By fixing the boundary between "storage" and "basic" interchange
formats the current draft achieves a level of reproducibility that
was not present in the 1985 version.  Why give this up?

Michel.

Sent: 2007-11-06 18:34:28 UTC


754 | revision | FAQ | references | list archive