1.0.45.5: life: Propagate implicit value cells through tail-calls.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Wed, 19 Jan 2011 21:59:23 +0000 (21:59 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Wed, 19 Jan 2011 21:59:23 +0000 (21:59 +0000)
commit3afdf2de234586523ed94941def9f25a8f7f4906
treef0db6fec8319d4840947c4c6dbf2f3560e680bcd
parent13c523a303571a8978d66a22ba910fea1b46b291
1.0.45.5: life: Propagate implicit value cells through tail-calls.

  * When setting up "environment tn conflicts", recurse through
callee environments when processing a block that ends in a tail
local combination and a TN that represents an "implicit" value
cell.

  * This closes the hole where a tail-local-call would replace
the stack frame which allocated a closed-over lambda-var, but
the inbound stack frame didn't know about the storage for the
variable, leading to badness.  Hopefully the last bug with the
dynamic-extent closure representation changes.

  * This patch fixes what 1.0.44.34 was supposed to KLUDGE
around, and finishes fixing lp#681092 (the first half of the
fix being 1.0.44.33).
NEWS
src/compiler/life.lisp
version.lisp-expr