On Sun, Dec 2, 2012 at 9:11 PM, Pascal Costanza <pc@p-cos.net> wrote:
4) DEFMETHOD doesn't call MAKE-METHOD-LAMBDA to determine the method function body. [My guess is that this is not easy to change due to the deviation from the MOP specification in how method functions are called.]

I will look into the other issues, but this is definitely not true. In ecl/src/clos/method.lsp, line 82, 
 (multiple-value-bind (fn-form options)
     (make-method-lambda generic-function method lambda-form env)
   (when documentation
     (setf options (list* :documentation documentation options)))
   (multiple-value-bind (wrapped-lambda wrapped-p)
(simplify-lambda name fn-form)

ECL calls make-method lambda and then looks at the output to see whether it can be transformed into the C-optimized dispatch that we use.

It would be important to have a test case that shows when make-method-lambda is not working. What in particular made you think so?


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)