0.9.12.6:
Speed up CLOS compilation. (For example, 45% speedup for compiling
asdf.lisp, 30% for compiling McCLIM on x86-64).
The code generated by PCL in MAKE-METHOD-LAMBDA has lots of
macrolets, which for the most part are never expanded. Modify
it to only create the macrolets that are really used in the
body, so that the useless local macro-functions don't need to
be compiled.
You might wonder why this is done in PCL, rather than as a
general purpose compiler change by lazily compiling the
definitions when they're first expanded. I tried that first,
and while it worked, the end result was rather messy. Since
users can access the macro-functions through the environment,
we need to minimally compile them to be ansixly correct, and
we don't really have much useful minimal compilation
infrastructure for at the moment. Ensuring that the source of
the macro-functions is stored properly, e.g. for (MACROLET
((FOO ...)) (DECLAIM (INLINE BAR)) (DEFUN BAR () (FOO))) is
also somewhat tricky.