[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Language extensions (formerly [italics]package arguments.)
Date: Fri, 17 Apr 87 11:16:15 mst
From: John Diamant <diamant%hpfclp@hplabs.HP.COM>
> Or they can provide a "mode" in which extensions are
> disabled as much as possible, to help users assure portability of "pure
> CL" code. Conformity with the standard only means that an implementing
> will correctly run correct CL programs.
O.K. I stand corrected. It is not a violation of the standard per-say
to provide such an extension. However, to do so without a mode like
what you describe or a flag that provides warning messages when
extensions are used is doing a grave disservice to the user. This is
really the same issue as the list of exported symbols from the LISP
package. Nowhere in CLtL does it say that extra symbols can't be
exported, but you make portable code virtually impossible to write
unless you require that. I believe the same is true for any extension.
It must be clearly delineated either by being in a separate package
(possibly shadowing the symbol in the LISP package) or it must provide
some kind of feedback that the operation just performed is not Common
Lisp. That CLtL does not discuss issues like this is, I think,
extremely unfortunate.
It does discuss this, on pages 1 through 3. (It discusses just the
philosophy and doesn't get down to specific cases.) I think that providing
tools to ease writing of portable code is a fine idea, and vendors should
do so. I violently disagree with the idea that any implementation that
does not come with a 100% perfect set of such tools is not Common Lisp.
Note that CLtL pp.1-3 says that Common Lisp is a common dialect to which
each implementation makes any necessary extensions, and that Common Lisp
is designed to make it easy to write programs that depend as little as
possible on machine-specific characteristics, but does not say that
Common Lisp's purpose is to support writing of only programs that are
100% painlessly portable. Common Lisp would be a lot less interesting,
and a lot less widespread, if that were so.