1.0.48.21: explicitly indefinite-extent leaves, safer dynamic-extent &REST
authorNikodemus Siivola <nikodemus@random-state.net>
Tue, 24 May 2011 08:49:45 +0000 (08:49 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Tue, 24 May 2011 08:49:45 +0000 (08:49 +0000)
commitedb7acf8d242c0398ec33924e21c85dc54bc768d
tree9a74736c8221697da3b249836c7f412ca4c5bc1b
parent99eca070adccc2f7008e050289abbe8c9f853ca2
1.0.48.21: explicitly indefinite-extent leaves, safer dynamic-extent &REST

  Change LEAF-DYNAMIC-EXTENT to LEAF-EXTENT. Setting it to :INDEFINITE stops
  dynamic-extent propagation through the leaf.

  Use this in CONVERT-MORE-CALL / CONVERT-HAIRY-FUN-ENTRY by proclaiming the
  variables in the open-coded &REST list as having indefinite-extent.

  The upshot is that dynamic-extent &REST will only stack allocate the spine
  of the rest list, making it easier and safer to use.

  Document this in the manual and attach appropriate caveats re. portability.
NEWS
doc/manual/efficiency.texinfo
src/compiler/generic/vm-ir2tran.lisp
src/compiler/ir1tran.lisp
src/compiler/ir1util.lisp
src/compiler/locall.lisp
src/compiler/node.lisp
src/compiler/physenvanal.lisp
tests/dynamic-extent.impure.lisp
version.lisp-expr