[Openmcl-devel] MOP errors

Dan Knapp dankna at accela.net
Mon Feb 7 16:49:44 PST 2005

> I'm trying to use the BKNR datastore in openmcl
> (http://bknr.net). When I try to load the datastore application, I get
> the following error message:

   Never heard of it.  Their site seems to be down at the moment.  I'd 
be interested to
learn more.
> Is this a problem with openmcl's incomplete implementation of the MOP,
> or should I look elsewhere?

   It looks to me like a MOP portability issue.  I don't know whether 
OpenMCL is still in the
lead on MOP compatibility, but it's got a quite complete implementation.

> | The class #<STANDARD-CLASS STANDARD-OBJECT> was specified as a
> | super-class of the class #<BKNR.DATASTORE:PERSISTENT-CLASS 
> | but the meta-classes #<STANDARD-CLASS STANDARD-CLASS> and
> |    [Condition of type SIMPLE-ERROR]

   That error message is produced by the default method on 
what it appears to say is:  BKNR defines a metaclass PERSISTENT-CLASS, 
and a class
STORE-OBJECT which uses PERSISTENT-CLASS as its metaclass.  The 
definition of
STORE-OBJECT says that it inherits from STANDARD-OBJECT.  
uses STANDARD-CLASS as its metaclass.  VALIDATE-SUPERCLASS has not been 
that it's permissible for a PERSISTENT-CLASS to inherit from a 

   What the fix is depends upon whether it's really "okay" for 
STORE-OBJECT to inherit from
STANDARD-OBJECT.  If it is, then all that need be done is to define a 
new method on

(defmethod validate-superclass
   ((class bknr.datastore:persistent-class) (superclass standard-class))
   (declare (ignore class superclass))

   But the fact that such a definition has not been provided proves that 
BKNR has not been
tested with OpenMCL, so there might be quirky behavior caused by subtle 
MOP differences.
There is not yet a complete standard for the MOP, and the book AMOP is 
confusing and
occasionally under-specifies things.  AMOP can't be blamed for that, 
since it's only recently
that MOPs have gotten heavy use, but ...  Anyway, proceed with caution: 
don't trust any
important data to this system until you know it's reliable.

   Hope this helps.

-- Dan Knapp

More information about the Openmcl-devel mailing list