From: Dmitry Gorbatovsky
Subject: package "CLOS" not found
Date: 
Message-ID: <e82gg2$926$1@nntp.aioe.org>
I am trying to compile (sbcl,debian)
this code (from "screamer+.lisp" ):

(defun slot-names-of (obj)
  (mapcar #'(lambda(x) (slot-value x 'CLOS::NAME))
          (clos::class-slots (class-of obj))))

and get an error :

>package "CLOS" not found.

Please need a clue.

Regards ,
dg

-- 
?If we knew what it was we were doing, it would not be called research,
would it??
        --Albert Einstein

From: Pascal Costanza
Subject: Re: package "CLOS" not found
Date: 
Message-ID: <4gk1aeF1lu9b8U1@individual.net>
Dmitry Gorbatovsky wrote:
> I am trying to compile (sbcl,debian)
> this code (from "screamer+.lisp" ):
> 
> (defun slot-names-of (obj)
>   (mapcar #'(lambda(x) (slot-value x 'CLOS::NAME))
>           (clos::class-slots (class-of obj))))
> 
> and get an error :
> 
>> package "CLOS" not found.

The code uses features of the CLOS MOP here. Since the CLOS MOP is not 
part of ANSI Common Lisp, the symbols that name CLOS MOP functionality 
cannot be part of the common-lisp package (ANSI Common Lisp forbids such 
extensions of the common-lisp package). Therefore, implementations have 
to be put these symbols in another package. Unfortunately, the CLOS MOP 
doesn't specify a package name for its symbols, so every implementation 
has its own idea where to put the package. Typical names are "CLOS", 
"MOP", "CLOS-MOP" or some more implementation-specific name.

A good way to find the right package is to do an (apropos "CLASS-SLOTS") 
(or an apropos on some other CLOS MOP identifier), and/or check out the 
documentation of the respective implementation. Another way is to use 
the Closer to MOP library which, apart from fixing some compatibility 
issues, provides a common package name for all implementations. See 
http://common-lisp/project/closer


Pascal

-- 
3rd European Lisp Workshop
July 3 - Nantes, France - co-located with ECOOP 2006
http://lisp-ecoop06.bknr.net/
From: Dmitry Gorbatovsky
Subject: Re: package "CLOS" not found
Date: 
Message-ID: <e83faq$9tf$1@nntp.aioe.org>
> The code uses features of the CLOS MOP here. Since the CLOS MOP is not
> part of ANSI Common Lisp, the symbols that name CLOS MOP functionality
> cannot be part of the common-lisp package (ANSI Common Lisp forbids such
> extensions of the common-lisp package). Therefore, implementations have
> to be put these symbols in another package. Unfortunately, the CLOS MOP
> doesn't specify a package name for its symbols, so every implementation
> has its own idea where to put the package. Typical names are "CLOS",
> "MOP", "CLOS-MOP" or some more implementation-specific name.
> 
> A good way to find the right package is to do an (apropos "CLASS-SLOTS")
> (or an apropos on some other CLOS MOP identifier), and/or check out the
> documentation of the respective implementation. Another way is to use
> the Closer to MOP library which, apart from fixing some compatibility
> issues, provides a common package name for all implementations. See
> http://common-lisp/project/closer
> 
> 
> Pascal
> 
Thanks, I mean thanks a lot.
Wow :).
dg
-- 
?If we knew what it was we were doing, it would not be called research,
would it??
        --Albert Einstein