X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Flexenv.lisp;h=d9d57f2dd39a50d2cc16bc52476313e17a87683d;hb=b63c4fb9b98fa8188e17ba926e150ba417a74635;hp=9a940620df6ae606119f0dd176a78889bb22b817;hpb=09d7974601df2aaaa820ca576026b9b4f03e6ab1;p=sbcl.git diff --git a/src/compiler/lexenv.lisp b/src/compiler/lexenv.lisp index 9a94062..d9d57f2 100644 --- a/src/compiler/lexenv.lisp +++ b/src/compiler/lexenv.lisp @@ -11,8 +11,6 @@ (in-package "SB!C") -#!-sb-fluid (declaim (inline internal-make-lexenv)) ; only called in one place - ;;; The LEXENV represents the lexical environment used for IR1 conversion. ;;; (This is also what shows up as an ENVIRONMENT value in macroexpansion.) #!-sb-fluid (declaim (inline internal-make-lexenv)) ; only called in one place @@ -21,15 +19,15 @@ (:constructor make-null-interactive-lexenv (&aux (policy (list '(safety . 3) '(compilation-speed . 2) + '(debug . 2) '(speed . 1) '(space . 1) - '(debug . 1) '(inhibit-warnings . 1))))) (:constructor internal-make-lexenv (funs vars blocks tags type-restrictions - weakend-type-restrictions - lambda cleanup policy))) + lambda cleanup handled-conditions + disabled-package-locks policy))) ;; an alist of (NAME . WHAT), where WHAT is either a FUNCTIONAL (a ;; local function), a DEFINED-FUN, representing an ;; INLINE/NOTINLINE declaration, or a list (MACRO . ) (a @@ -48,24 +46,26 @@ (vars nil :type list) ;; BLOCKS and TAGS are alists from block and go-tag names to 2-lists ;; of the form ( ), where is the - ;; continuation to exit to, and is the corresponding ENTRY node. + ;; continuation to exit to, and is the corresponding ENTRY + ;; node. (blocks nil :type list) (tags nil :type list) ;; an alist (THING . CTYPE) which is used to keep track of ;; "pervasive" type declarations. When THING is a leaf, this is for ;; type declarations that pertain to the type in a syntactic extent - ;; which does not correspond to a binding of the affected name. When - ;; THING is a continuation, this is used to track the innermost THE - ;; type declaration. + ;; which does not correspond to a binding of the affected name. (type-restrictions nil :type list) - (weakend-type-restrictions nil :type list) ;; the lexically enclosing lambda, if any ;; ;; FIXME: This should be :TYPE (OR CLAMBDA NULL), but it was too hard ;; to get CLAMBDA defined in time for the cross-compiler. (lambda nil) - ;; the lexically enclosing cleanup, or NIL if none enclosing within Lambda + ;; the lexically enclosing cleanup, or NIL if none enclosing within LAMBDA (cleanup nil) + ;; condition types we handle with a handler around the compiler + (handled-conditions *handled-conditions*) + ;; lexically disabled package locks (list of symbols) + (disabled-package-locks *disabled-package-locks*) ;; the current OPTIMIZE policy (policy *policy* :type policy))