diff --git a/src/cmp/cmpglobals.lsp b/src/cmp/cmpglobals.lsp index 278d0221d..a28bb6fe6 100644 --- a/src/cmp/cmpglobals.lsp +++ b/src/cmp/cmpglobals.lsp @@ -231,7 +231,7 @@ be deleted if they have been opened with LoadLibrary.") (*callbacks* nil) (*functions* nil) (*cmp-env-root* (copy-tree *cmp-env-root*)) - (*cmp-env* nil) + (*cmp-env* *cmp-env-root*) (*load-objects* (make-hash-table :size 128 :test #'equal)) (*make-forms* nil) (*referenced-objects* (make-array 256 :adjustable t :fill-pointer 0)) diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp index f76ab1b5b..1d8836ae4 100644 --- a/src/cmp/cmpmain.lsp +++ b/src/cmp/cmpmain.lsp @@ -214,7 +214,7 @@ after compilation." (*cmp-env-root* *cmp-env-root*)) (with-compiler-env (compiler-conditions) - (setf form (set-closure-env form lexenv *cmp-env-root*)) + (setf form (set-closure-env form lexenv *cmp-env*)) (compiler-pass1 form) (compiler-pass/propagate-types) (let (#+(or mingw32 msvc cygwin)(*self-destructing-fasl* t)) @@ -297,7 +297,7 @@ from the C language code. NIL means \"do not create the file\"." (*cmp-env-root* *cmp-env-root*)) (with-compiler-env (compiler-conditions) (with-cxx-env () - (setf disassembled-form (set-closure-env disassembled-form lexenv *cmp-env-root*)) + (setf disassembled-form (set-closure-env disassembled-form lexenv *cmp-env*)) (unwind-protect (progn (setf (symbol-function 'T3FUNCTION) diff --git a/src/cmp/cmppass1-top.lsp b/src/cmp/cmppass1-top.lsp index 51d5287ac..d8be410c4 100644 --- a/src/cmp/cmppass1-top.lsp +++ b/src/cmp/cmppass1-top.lsp @@ -11,9 +11,7 @@ (defun t1expr (form) (let* ((*current-toplevel-form* nil) - (*cmp-env* (if *cmp-env* - (cmp-env-copy *cmp-env*) - (cmp-env-root)))) + (*cmp-env* (cmp-env-copy *cmp-env*))) (push (t1expr* form) *top-level-forms*))) (defvar *toplevel-forms-to-print* diff --git a/src/cmp/cmputil.lsp b/src/cmp/cmputil.lsp index db86891e6..20adb74e3 100644 --- a/src/cmp/cmputil.lsp +++ b/src/cmp/cmputil.lsp @@ -53,7 +53,7 @@ (compiler-error #'handle-compiler-error) (serious-condition #'handle-compiler-internal-error)) (mp:with-lock (mp:+load-compile-lock+) - (let ,+init-env-form+ + (let* ,+init-env-form+ (with-compilation-unit () ,@body)))) (abort ()))