[Openmcl-devel] Building UncommonSQL 1.2.1 With OpenMCL 0.14.1p1

Gary Byers gb at clozure.com
Tue Mar 16 23:07:31 PST 2004



On Fri, 12 Mar 2004, Paul Snively wrote:

> Hi everyone,
>
> I'm trying to build UncommonSQL 1.2.1 with OpenMCL 0.14.1p1 (which, by
> the way, is fantastic--I'm really liking it a lot)! Here's what I get:
>
> ;Compiling "/Tools/lisp/uncommonsql/sql/objects.lisp"...
>  > Error in process listener(1): The class #<STANDARD-CLASS
> TRANSACTION-OBJECT> was specified as a
>  >                               super-class of the class
> #<VIEW-METACLASS STANDARD-DB-OBJECT>;
>  >                               but the meta-classes #<STANDARD-CLASS
> STANDARD-CLASS> and
>  >                               #<STANDARD-CLASS VIEW-METACLASS> are
> incompatible.
>  > While executing: #<CCL::STANDARD-KERNEL-METHOD SHARED-INITIALIZE
> :AFTER (CCL::SLOTS-CLASS T)>
>  > Type :POP to abort.
> Type :? for other options.
> 1 >
>
> I have to apologize; it's been far too many years since I've done any
> CL or especially MOP stuff, so this is almost Greek to me. Any thoughts
> as to how I might get this to work would be greatly appreciated.
>
> Many thanks and best regards,
> Paul Snively
>

The AMOP says (in its reference section, the tutorial sort of glosses over
the issues) that the generic function VALIDATE-SUPERCLASS is called to
determine whether or not class A should be allowed to become a subclass
of class B, based on the classes of those classes.  The default behavior
of VALIDATE-SUPERCLASS is conservative, so it's necessary to define an
a method that says that this kind of subclass relationship is OK.

(defmethod validate-superclass ((sub view-metaclass) (super standard-class))
  t)

Aside from the fact that the tutorial sections of the AMOP book don't
mention this, this can be confusing because some implementations seem
to be less conservative than the spec suggests.

(It might be less confusing - and less of a FAQ - if the error message
above made some reference to VALIDATE-SUPERCLASS).



More information about the Openmcl-devel mailing list