1.0.23.38: fix bug 430 (stack alloc by nested defstruct constructors)
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 12 Dec 2008 13:05:23 +0000 (13:05 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 12 Dec 2008 13:05:23 +0000 (13:05 +0000)
commite3113504fca73ebd1b992930315386d9d3ae5d18
tree4bdf0a34ffc7b63a9cef2650d99e28bd6ec2dc9b
parent95f17ca63742f8c164309716b35bc25545a849a6
1.0.23.38: fix bug 430 (stack alloc by nested defstruct constructors)

 * Mark lambdas introduced by the compiler as such, so that
   LAMBDA-SYSTEM-LAMBDA-P returns true for them.

 * Allow USE-GOOD-FOR-DX-P to inspect COMBINATIONs with CLAMBDA
   functionals: if the return value of the function always originates
   from a known DX-capable combination, and the arguments of the
   original combination are used only by the DX-capable combination,
   consider the original combination good for DX.

 * Allow USE-GOOD-FOR-DX-P to inspect REFs to LAMBDA-VARs: if the var
   is bound by a system lambda, has no other refs, is never set, gets
   its value from a single-value combination, and the LVAR it gets its
   value from is good for DX ... then the REF is good for DX as well.

 * HANDLE-NESTED-DYNAMIC-EXTENT-LVARS handles REFs as well by
   recursing on the lvar the REF gets its value from.
BUGS
NEWS
src/compiler/ir1tran-lambda.lisp
src/compiler/ir1util.lisp
src/compiler/locall.lisp
src/compiler/ltn.lisp
src/compiler/main.lisp
src/compiler/node.lisp
tests/dynamic-extent.impure.lisp
version.lisp-expr