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

Issue: PACKAGE-CLUTTER



I don't think the idea of making the default for :USE be implementation
dependent is a very good one. It introduces incompatibility to no good
end.

In Cloe, LISP:IN-PACKAGE defaults to :USE "LISP" but CLOE:IN-PACKAGE
defaults to :USE "CLOE". Since the USER package uses CLOE, doing
(IN-PACKAGE "FOO") in that package is the same as doing 
(CLOE:IN-PACKAGE "FOO" :USE "CLOE").

Users must do (LISP:IN-PACKAGE "FOO") if they want the effect of
(LISP:IN-PACKAGE "FOO" :USE "LISP") without specifying an explicit
:USE argument.

Or they can, as various people have recommended in this discussion, do
(IN-PACKAGE "FOO" :USE "LISP"). This will get them package something
that uses "LISP" whether they're getting CLOE:IN-PACKAGE or
LISP:IN-PACKAGE.

This may seem a little complicated, but practical experience shows that
it feels like the right thing. After all, we're not changing the meaning
of LISP symbols, so anyone who requests LISP explicitly gets exactly
what CLtL tells them to expect.