Hi,
sbcl makes packages that use nothing by default. I know it is
conformant, but all others use CL and probably more. I tried to find a
rationale for that in SBCL's documentation, but couldn't. Is there an
explanation anywhere?
David
············@gmail.com wrote:
> sbcl makes packages that use nothing by default. I know it is
> conformant, but all others use CL and probably more. I tried to find a
> rationale for that in SBCL's documentation, but couldn't. Is there an
> explanation anywhere?
Since it's implementation dependent which packages are used, portable
code should never omit the :use in a defpackage form. I believe
sbcl has a philosophy of being persnickety to help users find
problems of this kind.
Paul
Paul Dietz wrote:
> ············@gmail.com wrote:
>
> > sbcl makes packages that use nothing by default. I know it is
> > conformant, but all others use CL and probably more. I tried to
find a
> > rationale for that in SBCL's documentation, but couldn't. Is there
an
> > explanation anywhere?
>
> Since it's implementation dependent which packages are used, portable
> code should never omit the :use in a defpackage form. I believe
> sbcl has a philosophy of being persnickety to help users find
> problems of this kind.
They got it the other way around then. Portable code should use :use
"COMMON-LISP" to restrict the set of available symbols to those
exported from COMMON-LISP package. Nonportable code can omit :use and
will risk having non-portable symbols defined.
If they wanted to enforce portability, they would make :use COMMON-LISP
only by default.
·············@gmail.com" <············@gmail.com> writes:
> Paul Dietz wrote:
>> Since it's implementation dependent which packages are used, portable
>> code should never omit the :use in a defpackage form. I believe
>> sbcl has a philosophy of being persnickety to help users find
>> problems of this kind.
>
> They got it the other way around then.
No.
> Portable code should use :use
> "COMMON-LISP" to restrict the set of available symbols to those
> exported from COMMON-LISP package. Nonportable code can omit :use and
> will risk having non-portable symbols defined.
Exactly. One set of non-portable symbols is the empty set of symbols,
and SBCL's choice makes it easy to see that.
Christophe
On 8 Mar 2005 11:20:19 -0800, ·············@gmail.com" <············@gmail.com> wrote:
> sbcl makes packages that use nothing by default. I know it is
> conformant, but all others use CL and probably more. I tried to find
> a rationale for that in SBCL's documentation, but couldn't. Is there
> an explanation anywhere?
LispWorks has HCL:*DEFAULT-PACKAGE-USE-LIST* - maybe SBCL has
something similar?
Edi.
--
Lisp is not dead, it just smells funny.
Real email: (replace (subseq ·········@agharta.de" 5) "edi")