X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Flexenv.lisp;h=299eda9a08dfe36b011cc210c00c237eda054825;hb=31361af9eb64344f521abbb245ea784c76c746e5;hp=580a6469d1abf9c5b11312229f449042267a74c5;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/compiler/lexenv.lisp b/src/compiler/lexenv.lisp index 580a646..299eda9 100644 --- a/src/compiler/lexenv.lisp +++ b/src/compiler/lexenv.lisp @@ -11,9 +11,6 @@ (in-package "SB!C") -(file-comment - "$Header$") - #!-sb-fluid (declaim (inline internal-make-lexenv)) ; only called in one place ;;; The LEXENV represents the lexical environment used for IR1 conversion. @@ -25,49 +22,46 @@ (:constructor make-null-lexenv ()) (:constructor internal-make-lexenv (functions variables blocks tags type-restrictions - lambda cleanup cookie - interface-cookie options))) - ;; Alist (name . what), where What is either a Functional (a local function), + lambda cleanup policy options))) + ;; Alist (NAME . WHAT), where WHAT is either a Functional (a local function), ;; a DEFINED-FUNCTION, representing an INLINE/NOTINLINE declaration, or ;; a list (MACRO . ) (a local macro, with the specifier - ;; expander.) Note that Name may be a (SETF ) function. + ;; expander.) Note that NAME may be a (SETF ) function. (functions nil :type list) - ;; An alist translating variable names to Leaf structures. A special binding - ;; is indicated by a :Special Global-Var leaf. Each special binding within - ;; the code gets a distinct leaf structure, as does the current "global" - ;; value on entry to the code compiled. (locally (special ...)) is handled - ;; by adding the most recent special binding to the front of the list. + ;; an alist translating variable names to LEAF structures. A special + ;; binding is indicated by a :SPECIAL GLOBAL-VAR leaf. Each special + ;; binding within the code gets a distinct leaf structure, as does + ;; the current "global" value on entry to the code compiled. + ;; (locally (special ...)) is handled by adding the most recent + ;; special binding to the front of the list. ;; - ;; If the CDR is (MACRO . ), then is the expansion of a symbol - ;; macro. + ;; If the CDR is (MACRO . ), then is the expansion of a + ;; symbol macro. (variables 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. + ;; 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. (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. + ;; 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. (type-restrictions nil :type list) - ;; The lexically enclosing lambda, if any. + ;; 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 ;; ;; FIXME: This should be :TYPE (OR CLEANUP NULL), but it was too hard ;; to get CLEANUP defined in time for the cross-compiler. (cleanup nil) - ;; The representation of the current OPTIMIZE policy. - (cookie *default-cookie* :type cookie) - ;; The policy that takes effect in XEPs and related syntax parsing functions. - ;; Slots in this cookie may be null to indicate that the normal value in - ;; effect. - (interface-cookie *default-interface-cookie* :type cookie) - ;; an alist of miscellaneous options that are associated with the lexical - ;; environment + ;; the current OPTIMIZE policy + (policy *policy* :type policy) + ;; an alist of miscellaneous options that are associated with the + ;; lexical environment (options nil :type list))