[Openmcl-devel] Custom Meta Classes

Sven Van Caekenberghe sven at beta9.be
Mon Jan 19 14:07:33 UTC 2004


We still have problems with this issue, specifically the following file 
can be compiled but cannot be loaded into 0.14-031220:

(defpackage :foo (:use :cl))

(in-package :foo)

(defclass my-meta-class (standard-class)
   ((extra)))

(defmethod validate-superclass ((class my-meta-class) (super 
standard-class))
   t)

(defclass foo ()
   ((bar))
   (:metaclass my-meta-class))

When I define the same code in cl-user it works...

Sven

On 16 Jan 2004, at 03:12, Gary Byers wrote:
>
> On Thu, 15 Jan 2004, Gary Byers wrote:
>>
>> On Thu, 15 Jan 2004, Sven Van Caekenberghe wrote:
>>
>>> In OpenMCL 0.13.x I could define my own meta classes like this:
>>
>> i.e., without having to define one or more VALIDATE-SUPERCLASS
>> methods which describe which subclass relationships between instances
>> of your new metaclass and those of other metaclasses make sense.

>>> This works in LispWorks 4.3 as well.
>
> Just to beat a dead horse, googling for "validate-superclass"
> revealed (among other things):
>
> <http://lispworks.com/reference/lw43/LWUG/html/lwuser-113.htm>
>
>> From your experience and from what I can infer from that page, it
> would appear that LW may provide a VALIDATE-SUPERCLASS method
> that allows the "other-class, STANDARD-CLASS" case.  That minor
> deviation from the MOP might be less confusing to most people,
> and could always be overridden by a method whose first parameter
> had higher precedence than that default.
>
> (Googling does suggest that this whole issue's confusing to many
> people.)




More information about the Openmcl-devel mailing list