[closer-devel] acl 8.0 + funcallable-standard-class metaclass

Pascal Costanza pc at p-cos.net
Sun Sep 9 19:41:45 UTC 2007


Consider calling the following code beforehand:

(unless (class-finalized-p (find-class 'standard-object))
   (finalize-inheritance (find-class 'standard-object)))

The CLOS MOP explicitly allows for finalization errors to occur  
before the first instance of a class is created. As far as I know,  
Allegro is the only implementation that takes advantage of this,  
that's why one rarely comes across this problem.

Pascal

On 9 Sep 2007, at 20:49, Nick Allen wrote:

> I notice in features.txt that for ACL 8.0:
>
>    "FUNCALLABLE-STANDARD-OBJECT is not used as the default superclass
> for classes with :metaclass FUNCALLABLE-STANDARD-CLASS."
>
> which implies to me that defining classes with a metaclass
> closer-mop:funcallable-standard-class otherwise works, but
>
> cl-user> (lisp-implementation-version)
> "8.0 [Mac OS X (Intel)] (May 10, 2007 8:10)"
>
> cl-user> (require :mop)
> ; Fast loading from bundle clos/mop.fasl.
> t
>
> cl-user> (defclass fn ()
> 	   ()
> 	   (:metaclass aclmop:funcallable-standard-class))
>
> errors: "Class #<standard-class standard-object> is not yet
> finalized."
>
> cl-user> (defclass fn (aclmop:funcallable-standard-object)
> 	   ()
> 	   (:metaclass aclmop:funcallable-standard-class))
>  (defclass fn ()
> 	   ()
> 	   (:metaclass aclmop:funcallable-standard-class))
>
> errors: "Class #<standard-class aclmop:funcallable-standard-object> is
> not yet finalized."
>
> (it behaves the same way with closer-mop). am I missing something,
> should this work?
>
> thanks for your time
>
> Nick
> _______________________________________________
> closer-devel mailing list
> closer-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/closer-devel

-- 
Pascal Costanza, mailto:pc at p-cos.net, http://p-cos.net
Vrije Universiteit Brussel, Programming Technology Lab
Pleinlaan 2, B-1050 Brussel, Belgium







More information about the closer-devel mailing list