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

Rebuttal to incorrect statement of portability definition



L> Date: Tue, 28 Jan 86 15:12:49 est
L> From: Lab Manager(Brad Miller)  <lab@rochester.arpa>
L> It would be nice if a program working on one machine also worked on
L> another. Surely that is what portability is supposed to insure, not
L> that the language is so general that any floating point result is OK.

The contrapositive is that if it fails on another then it also fails
on the one. I.e. nobody is allowed to make any improvements beyond the
minimal implementation. Nobody is allowed to make private enhancements
to the language, such as a window system etc. I disapprove.

The correct statement, in my opinion, is that any program which
restricts itself to features and capabilities as defined in CLtL will
run on any machine, but programs are permitted to take advantage of
nonportable features at the expense of no longer being portable. Thus
in the case at hand, programs that rely only on the minimal accuracy
of minimal results will be portable, runnable on all CL
implementations, but it is possible that some programs may take
advantage of extra accuracy available only on certain machines and
those programs will not be portable. The programmer should attempt to
determine whether the program is truly portable or not, although
sometimes that may be difficult to determine without actually trying
it on other machines (computer programming is still an experimental
science). It may be desirable to have a flag that disables use of
extended precision co-processors in order to test portability on a
single machine, but it should be legal to switch that flag to
machine-dependent maximum-precision mode at times.