[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: DEFPACKAGE (version 5)
- To: CL-Cleanup@Sail.stanford.edu
- Subject: Re: Issue: DEFPACKAGE (version 5)
- From: peck@Sun.COM
- Date: Mon, 17 Oct 88 17:19:14 -0700
I hope it isn't too late to pik a couple of nits on this proposal...
Nit 1, :INTERNAL
Most of the clause names are verbals (:USE, :EXPORT, :IMPORT-FROM, ...)
But the lately added :INTERNAL is more adjectival, and unlike
:EXPORT and :USE and :SHADOW which mimic the function of the same name,
it appears to have a gratuitously different name from INTERN.
I suggest that the :INTERNAL option be renamed :INTERN.
Another nit:
Re: interaction with PACKAGE-CLUTTER, default :use list
Please verify for me that if there is no :USE clause, whether
the created package will use:
1. (:lisp)
2. *default-use-list* (or whatever it is in jonl's PACKAGE-CLUTTER proposal)
3. NIL
The correct answer is 1, i believe. If i do (:use NIL) then I get 3,
how would I get 2?
[use #+ for implementation specific packages, this is for PORTABLE code!]
The rest of the question is whether using the :LISP package is done
in the MAKE-PACKAGE, or lastly, in the (USE-PACKAGE). Like all USE'ing
this should be deferred until after the shadowing is done, no?
Next nit, order of events:
I think it is implicit, but not stated that DEFPACKAGE arranges
to sort the execution of all the various clauses to conform to
(put in seven...) [although proposal says Export happens last..?]
Clarify that the order of the clauses in the source code has no effect.
Final nit:
Also, it says re: side-effects "ie, no IN-PACKAGE is done",
clarify that this does not proscribe an implementation like:
`(let ((*package *package*))
(in-package ,new-name :use nil)
...)
Ps,
If anyone has code to implement DEFPACKAGE, i'd appreciate a copy.