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

Issue: DEFPACKAGE (version 6)

Version 6 is okay with me, except for two exceptions noted below:

  (:INTERNAL {symbol-name}*)

:INTERNAL was a typo for :INTERN; I apologize.  Wherever possible
the option keywords were chosen to be analogous to existing Common
Lisp functions, to make it easier for users to remember them and
to guess what they do.

    An attempt to re-define
    a package with a smaller set of attributes should signal a continuable error;
    at most one such error is to be signalled per call to DEFPACKAGE, regardless 
    of how many attributes are being re-tracted; upon continuation, the package
    is created with exactly as specified.

Even without the typos I would object to this.  It's not clear to me
that signalling an error is the correct response in all programming
environments for evaluating a DEFPACKAGE with fewer attributes.

Furthermore, in no other place (outside of DEFVAR and CLOS) does Common
Lisp currently define what happens when you define something twice.  It
took an enormous amount of time and effort to get that right in CLOS,
and many people still argue that CLOS got it wrong.  I think it's a bad
idea to take on that difficult a complex of issues in CL-Cleanup when
there are only two months left.  I think it would be a much better idea
to leave redefinition of packages undefined, just like redefinition of
functions or macros.