[armedbear-devel] Questions about r14452 (Fix cl-cont)

Rudolf Schlatte rudi at constantly.at
Tue Apr 2 19:38:28 UTC 2013


On Apr 2, 2013, at 21:14, Erik Huelsmann <ehuels at gmail.com> wrote:

> Hi Rudi,
> 
> On Tue, Apr 2, 2013 at 8:08 PM, Rudolf Schlatte <rudi at constantly.at> wrote:
> What makes me suspicious is the output of
>     (describe (make-instance 'funcallable-standard-object))
> vs
>     (describe (make-instance 'standard-generic-function))
> .
> 
> There's a layout called layoutFuncallableStandardClass, defined in StandardClass.java, which has NAME as first slot, but that's for class objects with metaclass funcallable-standard-class, not for instances of these classes.  I'll think a bit in the next days and try to either resolve my doubts or come up with another fix for the problem.  Maybe I'm simply confused; wouldn't be the first time.  :)
> 
> Well, to some extent I can see your problem. Indeed there seem to be no slots in the 'MOP:FUNCALLABLE-STANDARD-OBJECT class. The layoutFuncallableStandardClass is what confused me, but that's indeed the layout of the metaclass.
> 
> So, you're correct that the fix works by accident. The solution should be to add a slot by the name 'MOP::NAME to the FUNCALLABLE-STANDARD-OBJECT. That slot can contain the name of the object (ie function) for which the item is defined. In that case, we should probably remove the direct slot MOP::NAME on the standard generic function, since it's already defined on the superclass if we decide to do that.

That's one solution, yes.  I don't exactly know how / if slot inheritance works for objects created Java-side (which we do for FuncallableStandardObject and StandardGenericFunction), so it needs some experimentation.  Luckily what we have now "works" and is not in any released version, so I can take some time to investigate in peace.  Usually some piece of refactoring falls out which makes the overall code clearer and/or shorter.

Rudi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20130402/822a19b3/attachment.html>


More information about the armedbear-devel mailing list