Raymond Toy <[EMAIL PROTECTED]> writes:

> >>>>> "Nicolas" == Nicolas Neuss <[EMAIL PROTECTED]> writes:
> 
>     Nicolas> Hm, I see that you want me to do profiling and to find out where the 
> speed
>     Nicolas> improvement really comes from:-) Maybe next week, I have to leave now to
>     Nicolas> take care of my children.
> 
> No, I wasn't asking for a profile, but if you have time, that would be
> beneficial to see where the gain comes from.  No rush, of course.
> After all, Gerd's PCL has been around for many months now. :-)

As you thought the reason is interesting.  The main reason is that for new
cmucl DEFMETHOD automatically compiles its code, while the old version does
not, and I'm using this feature when I eval automatically generated
defmethod forms, especially in my type-adapted BLAS routines.

I'm in doubt if I should rely on that, though.  When I eval

(compile nil (lambda () (defmethod ...)))

instead, I can observe locally only a factor 4 speed improvement of new
CMUCL for repeated calls to those generated BLAS methods on short vectors
(which is probably due to Gerd's PCL and is very nice, too).
Unfortunately, the compiler runs into an infinite loop when compiling whole
Femlisp (I'm not yet sure where precisely), so I cannot tell the overall
difference.

Question: Is relying on automatic compilation reasonable (wrt to the Spec
and other CL implementations)?  If not, is the above the correct way to
enforce compilation?

Thanks, Nicolas.



Reply via email to