[Openmcl-devel] Custom Meta Classes

Gary Byers gb at clozure.com
Mon Jan 19 06:20:56 PST 2004



On Mon, 19 Jan 2004, Sven Van Caekenberghe wrote:

> 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
>

The generic function #'VALIDATE-SUPERCLASS isn't part of ANSI CL.

It -is- part of the MOP.

The symbol VALIDATE-SUPERCLASS isn't accessible in the CL package.

It -is- exported from both the "CCL" and "OPENMCL-MOP" packages in
OpenMCL.

In the code fragment above, you're (inadvertently) defining a method
on #'FOO::VALIDATE-SUPERCLASSES.  You could either:

a) define the package to use OPENMCL-MOP as well as CL
b) qualify the symbol:

(defmethod openmcl-mop:validate-superclass ...)





More information about the Openmcl-devel mailing list