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

Issue: MAKE-PACKAGE-USE-DEFAULT (version 1)



[some of quoted parts of your msg are out of order, in order to reply to
the simpler ones first]

re: I think there should be a portable way to get portable code (ie, the 
    language without extensions). I don't want to waste -any- time figuring 
    out how people get to system-dependent stuff. . . 

So do I; as this proposal suggests, supplying an explicit :USE argument of 
"LISP" would be this portable way.


re: There are no restrictions in CLtL about what packages the USER package may 
    use, what symbols it may shadow, etc.

See CLtL, p181.  It is required to "use" LISP.  Current practice also has
it "inheriting" all the vendors extensions, and has it essentially free of
any other symbols.


re:     Cloe shadows MAKE-PACKAGE, IN-PACKAGE, etc. ...
        Once you've chosen a package to work from, all calls to an unqualified
	MAKE-PACKAGE do the thing that is natural for that initial package.
    This is a current practice statement. Please note it.

Uh, I'm not sure this is relevant to a proposal concerning the _standard_ 
definition of MAKE-PACKAGE;  a non-standard ACME:MAKE-PACKAGE can do just 
about whatever it wants.  Remember that this proposal concerns the
default value of the :use argument to MAKE-PACKAGE -- it is not directly
about some underlying problem that CLoe may address in a different way.


re: Our USER package uses CLOE, so (IN-PACKAGE ...) [unqualified] calls
    CLOE:IN-PACKAGE.

So either Cloe's USER package doesn't use LISP -- which would violate CLtL
p181 --  or it shadows LISP:IN-PACKAGE with CLOE:IN-PACKAGE  -- which
introduces yet another oddball variation between the shape of the USER
package and a vanilla package made like (make-package "FOO" :use "LISP").

As I mentioned before, one primary motivation for this proposal is the user
complaints about USER being so "different" (in the Lucid Sun3/2.1 release).




-- JonL --