[asdf-devel] About asdf:*compile-file-failure-behaviour* and its value on SBCL

Chun Tian (binghe) binghe.lisp at gmail.com
Sun Mar 20 01:53:28 UTC 2011


Hi, Nikodemus

The QUOTE in "'a-subclass" is actually a typo.  Actually I'm compiling this in my last post:

(in-package :cl-user)

(defclass a-subclass (a-class)
 ())

(defclass a-class ()
 ((slot :type a-subclass)))

I didn't even declaim a (optimize safety) ...

--binghe

在 2011-3-20,09:38, Nikodemus Siivola 写道:

> On 20 March 2011 03:06, Zach Beane <xach at xach.com> wrote:
> 
>> "Chun Tian (binghe)" <binghe.lisp at gmail.com> writes:
> 
>>> (defclass a-class ()
>>>   ((slot :type 'a-subclass)))
>>> 
>>> (defclass a-subclass (a-class)
>>>   ())
>>> 
>>> When compiling the first class definition, SBCL warn that the type
>>> A-SUBCLASS haven't been defined
>> 
>> I can't reproduce. Is this an oversimplification of your actual
>> problem?
> 
> Me neither, but...
> 
> (declaim (optimize safety))
> 
> (defclass a-class ()
> ((slot :type 'a-subclass)))
> 
> (defclass a-subclass (a-class)
> ())
> 
> (defmethod foo ((x a-class) y)
>  (setf (slot-value x 'slot) y))
> 
> gives:
> 
> ; caught WARNING:
> ;   Undefined type 'A-SUBCLASS. The name starts with QUOTE: probably use of a
> ;   quoted type name in a context where the name is not evaluated.
> 
> Replace 'a-subclass with a-subclass, and modern (1.0.45.11 or later, I
> would guess) SBCL is silent and happy. (Though really SBCL _should_
> complain about the quote even without the OPTIMIZE SAFETY and
> DEFMETHOD FOO...) :P
> 
> Cheers,
> 
> -- Nikodemus





More information about the asdf-devel mailing list