0.9.12.6:
authorJuho Snellman <jsnell@iki.fi>
Sat, 6 May 2006 22:40:31 +0000 (22:40 +0000)
committerJuho Snellman <jsnell@iki.fi>
Sat, 6 May 2006 22:40:31 +0000 (22:40 +0000)
commit5f3793d28fad2c311506151b236104c0696fd540
tree8691e55c7ae88cb47bd5a96038611ed6adb15a33
parent15d89af9d084fd35b8698c84cd4a454816bfb9cf
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.
NEWS
src/pcl/boot.lisp
src/pcl/vector.lisp
version.lisp-expr