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.
