0.8.21.42:
authorJuho Snellman <jsnell@iki.fi>
Fri, 15 Apr 2005 13:57:49 +0000 (13:57 +0000)
committerJuho Snellman <jsnell@iki.fi>
Fri, 15 Apr 2005 13:57:49 +0000 (13:57 +0000)
commitffa9a31f62e3e2abab8ebcbb3bfdab9725feaf7f
tree8ebbb720e2e32405acf0bf2ed0b412a2c6e8627c
parentcd056980425e3fa67b8b77de3936ccb46508c3b0
0.8.21.42:
Fix bug in scoping of free special declarations. CLHS 3.3.4:
        "The scope of free declarations specifically does not include
        initialization forms for bindings established by the form
        containing the declarations."

        * Add a :BINDING-FORM-P parameter to PROCESS-DECLS. If true,
          return a list of the VARs created by PROCESS-SPECIAL-DECL
          for free bindings instead of adding them into the lexenv
          immediately.
        * PROCESSING-DECLS optionally uses :BINDING-FORM-P and
          binds the list to a supplied variable in the PROCESSING-DECLS
          body.
        * Calls to PROCESS-DECLS / PROCESSING-DECLS related to binding
          forms use the above changes.
        * The VAR list is threaded through a bunch of IR1 lambda
          translation utility functions, all of which sooner or later
          end up calling IR1-CONVERT-AUX-BINDINGS.
        * Before IR1-CONVERT-AUX-BINDINGS converts the body, add the
          variables in the list to the lexenv.
NEWS
src/code/eval.lisp
src/compiler/ir1-translators.lisp
src/compiler/ir1tran-lambda.lisp
src/compiler/ir1tran.lisp
tests/compiler.pure.lisp
version.lisp-expr