[Ecls-list] ECL with GCC 4.3.0
pc at p-cos.net
Mon Mar 17 16:41:44 UTC 2008
On 17 Mar 2008, at 11:14, Juan Jose Garcia-Ripoll wrote:
> On Mon, Mar 17, 2008 at 10:46 AM, Pascal Costanza <pc at p-cos.net>
>> That's good news, right? ;)
> Yes :-) Regarding the call-next-method issue, it is advisable to
> update CVS and recompile. There were still some corners left.
> But since you are kind of an AMOP expert, I wanted to ask your
> opinion on
> how strong is the need for implementing 1)
> COMPUTE-DISCRIMINATING-FUNCTION and 2) MAKE-METHOD-LAMBDA and
Compute-discriminating-function is crucial if you want to build our
own dispatch semantics for your own generic functions classes. Without
compute-discriminating-function, you cannot really do a lot. (Compute-
applicable-methods and compute-applicable-methods-using-classes are
sometimes useful, but in most cases, you can already solve your
problems with define-method-combination, which has the great advantage
that it's portable and pretty efficient.)
Compute-effective-method is on a similar level to compute-applicable-
methods and compute-applicable-methods-using-classes. It's sometimes
useful, but not often. It would be more useful if there also were a
compute-effective-method-function, but without the latter, it simply
becomes too complicated to implement your own optimized method
dispatch. (Compute-discriminating-function is good enough for non-
optimized method dispatch.)
Make-method-lambda is not well supported across Common Lisp
implementations. Only SBCL supports it fully, and LispWorks supports a
slightly modified version. Other CL implementations simply drop it.
Bruno Haible of clisp argues that it's misdesigned, and by now I tend
to agree. I think there are better solutions to achieve the same
effects that you can achieve with make-method-lambda, and those
solutions should place much less burden on implementors.
I wouldn't bother too much about make-method-lambda if I were you.
Since it practically doesn't exist elsewhere, there doesn't seem to be
a lot of use for it anyway.
I hope this helps.
1st European Lisp Symposium (ELS'08)
Pascal Costanza, mailto:pc at p-cos.net, http://p-cos.net
Vrije Universiteit Brussel, Programming Technology Lab
Pleinlaan 2, B-1050 Brussel, Belgium
More information about the ecl-devel