[armedbear-devel] Other findings (was Re: Questions about r14452 (Fix cl-cont))

Erik Huelsmann ehuels at gmail.com
Tue Apr 2 20:00:41 UTC 2013

As it turns out, it chose the wrong method to print the
funcallable-standard-object: r14455.



On Tue, Apr 2, 2013 at 9:44 PM, Rudolf Schlatte <rudi at constantly.at> wrote:

> On Apr 2, 2013, at 21:40, Erik Huelsmann <ehuels at gmail.com> wrote:
>> 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.
> While studying this problem using DESCRIBE, it seems our current
> implementation dispatches (DESCRIBE (MAKE-INSTANCE
> 'CL-CONT::FUNCALLABLE/CC)) the wrong way: to the T way instead of the
> Yet more to investigate...
> For this general kind of problem, I'm currently partial to using Lisp-side
> operators + calling Lisp functions instead of using instanceof / Java-side
> cast + method call.  E.g., FuncallableStandardObject.java:202:
>         if (Symbol.SUBTYPEP.execute(arg,
>           return new StandardGenericFunction((Layout)l);
>         } else {
>           return new FuncallableStandardObject((Layout)l);
>         }
> (The condition was "instanceof StandardGenericFunction" until recently).
> This seems more robust, and hopefully prepares us for transferring stuff
> Lisp-side eventually.
> Rudi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20130402/df7f8579/attachment.html>

More information about the armedbear-devel mailing list