X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Flexenv.lisp;h=34f37ba430d73b867a77ff8e5cf6adb1f5729fe8;hb=7ce2c42adf3d62f03086de940adaee48e6161a40;hp=0b1f956ee4c2d13d868b5bb10046e62fc07ed20f;hpb=b0b168c08b31a748150f404398af754f26fd4813;p=sbcl.git diff --git a/src/compiler/lexenv.lisp b/src/compiler/lexenv.lisp index 0b1f956..34f37ba 100644 --- a/src/compiler/lexenv.lisp +++ b/src/compiler/lexenv.lisp @@ -18,9 +18,18 @@ #!-sb-fluid (declaim (inline internal-make-lexenv)) ; only called in one place (def!struct (lexenv (:constructor make-null-lexenv ()) + (:constructor make-null-interactive-lexenv + (&aux (policy (list '(safety . 3) + '(compilation-speed . 2) + '(speed . 1) + '(space . 1) + '(debug . 1) + '(inhibit-warnings . 1))))) (:constructor internal-make-lexenv - (funs vars blocks tags type-restrictions - lambda cleanup policy options))) + (funs vars blocks tags + type-restrictions + weakend-type-restrictions + lambda cleanup 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 @@ -49,18 +58,16 @@ ;; THING is a continuation, this is used to track the innermost THE ;; type declaration. (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) + (lambda nil) ;; the lexically enclosing cleanup, or NIL if none enclosing within Lambda (cleanup nil) ;; the current OPTIMIZE policy - (policy *policy* :type policy) - ;; an alist of miscellaneous options that are associated with the - ;; lexical environment - (options nil :type list)) + (policy *policy* :type policy)) ;;; support for the idiom (in MACROEXPAND and elsewhere) that NIL is ;;; to be taken as a null lexical environment