X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=acbd0d09b3be6ab88d8f4547e555de5b73021325;hb=6534a9b45728ab44d70ddda027682661ed48869c;hp=bc02982b702178ce9d19ed040b6020e1e53c8033;hpb=45bc305be4e269d2e1a477c8e0ae9a64df1ccd1c;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index bc02982..acbd0d0 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -390,3 +390,18 @@ currently compiles to code that ensures the TLS index at runtime, which is both a decently large chunk of code and unnecessary, as we could ensure the TLS index at load-time as well. +-------------------------------------------------------------------------------- +#40 + +When FTYPE is declared -- to say (function (t t t t t) t), and +function has a compiler-macro, + + (apply #'foo 'x1 x2 'x3 more) + +can be transformed into + + (apply (lambda (x2 x4 x5) (foo 'x1 x2 'x3 x4 x5)) x2 more) + +which allows compiler-macro-expansion for FOO. (Only constant +arguments can be moved inside the new lambda -- otherwise evaluation +order is altered.)