[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
> BKNR.DATASTORE:STORE-OBJECT>;
> | but the meta-classes #<STANDARD-CLASS STANDARD-CLASS> and
> | #<STANDARD-CLASS BKNR.DATASTORE:PERSISTENT-CLASS> are incompatible.
> | [Condition of type SIMPLE-ERROR]
That error message is produced by the default method on
VALIDATE-SUPERCLASS, and
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.
STANDARD-OBJECT
uses STANDARD-CLASS as its metaclass. VALIDATE-SUPERCLASS has not been
told
that it's permissible for a PERSISTENT-CLASS to inherit from a
STANDARD-CLASS.
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
VALIDATE-SUPERCLASS:
(defmethod validate-superclass
((class bknr.datastore:persistent-class) (superclass standard-class))
(declare (ignore class superclass))
t)
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