[Ecls-list] Closer to MOP updated...

Pascal Costanza pc at p-cos.net
Sun Dec 9 17:45:33 UTC 2012


Hi,

I have now pushed support for ECL 12.12.1 to the Closer to MOP repository and updated the website. I hope I didn't make any mistakes.

Congratulations for the new release of ECL. The MOP implementation has improved substantially, and I would now consider it one of the best implementations of the CLOS MOP, together with clisp and sbcl.

Two issues still remain, on top of the ones I already reported before:

1) The documentations for slot definition metaobjects add parentheses, which shouldn't be necessary. Here is a test case:

> (defclass test () ((a-slot :documentation "a slot")))

#<The STANDARD-CLASS COMMON-LISP-USER::TEST>
> (find-class 'test)

#<The STANDARD-CLASS COMMON-LISP-USER::TEST>
> (class-slots *)

(#<a CLOS:STANDARD-EFFECTIVE-SLOT-DEFINITION>)
> (first *)

#<a CLOS:STANDARD-EFFECTIVE-SLOT-DEFINITION>
> (documentation * 't)

("a slot")

The result should be just "a slot", not ("a slot"). However, I strongly doubt that anybody ever notices. ;)


2) What would be really sweet is if the list of next methods that are passed to method functions is actually a list of method metaobjects, not method functions. This is how it is specified (but I'm not testing for this in MOP Feature Tests). It doesn't seem that anybody uses this feature, because this is the place where the various MOP implementations vary the most.

However, on top of that it would also be good if call-next-method would not rely on a special variable holding the next methods anymore, but just refer locally to the next methods passed to the method function. I don't know how ECL handles tail calls, but if it performs tail call optimizations, then it would also be able to do this for methods (which is currently not the case due to the reliance on a special variable here).

These are not urgent features, I believe, just nice to haves.

Anyway, good job!


Best,
Pascal

--
Pascal Costanza
The views expressed in this email are my own, and not those of my employer.







More information about the ecl-devel mailing list