X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=55f86c4dc5ba910b04b422f6cd2d66cf1ab16cdc;hb=007bcd5aac2f3a1e714563bd39f7a2db2d0bf7c2;hp=bc02982b702178ce9d19ed040b6020e1e53c8033;hpb=45bc305be4e269d2e1a477c8e0ae9a64df1ccd1c;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index bc02982..55f86c4 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -173,15 +173,11 @@ NULL-TN directly. (declare (dynamic-extent l)) (mapc #'print l)))) -Result of MAKE is not stack allocated, which means that -stack-allocation of structures is impossible. +Result of MAKE is not stack allocated. -------------------------------------------------------------------------------- #22 IR2 does not perform unused code flushing. -------------------------------------------------------------------------------- -#23 -Python does not know that &REST lists are LISTs (and cannot derive it). --------------------------------------------------------------------------------- #24 a. Iterations on &REST lists, returning them as VALUES could be rewritten with &MORE vectors. @@ -390,3 +386,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.)