From: William Harold Newman Date: Fri, 2 Nov 2001 17:10:41 +0000 (+0000) Subject: 0.pre7.84: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;ds=inline;h=6f57ff9d738e1c5ecfb6b085b31aca083a83284f;p=sbcl.git 0.pre7.84: merged AD patch to remove :GLOBAL-VAR :KIND :CONSTANT (sbcl-devel 2001-10-02) --- diff --git a/src/compiler/debug.lisp b/src/compiler/debug.lisp index fe81a45..1c93df9 100644 --- a/src/compiler/debug.lisp +++ b/src/compiler/debug.lisp @@ -118,7 +118,7 @@ (unless (or (constant-p v) (and (global-var-p v) (member (global-var-kind v) - '(:global :special :constant)))) + '(:global :special)))) (barf "strange *FREE-VARIABLES* entry: ~S" v)) (dolist (n (leaf-refs v)) (check-node-reached n)) diff --git a/src/compiler/info-functions.lisp b/src/compiler/info-functions.lisp index cd5327f..9e41aeb 100644 --- a/src/compiler/info-functions.lisp +++ b/src/compiler/info-functions.lisp @@ -55,10 +55,11 @@ ;; scrubbing old data II: dangling forward references ;; - ;; (This could happen if someone does PROCLAIM FTYPE in macroexpansion, - ;; which is bad style, or at compile time, e.g. in EVAL-WHEN (:COMPILE) - ;; inside something like DEFSTRUCT, in which case it's reasonable style. - ;; Either way, it's no longer a free function.) + ;; (This could happen if someone executes PROCLAIM FTYPE at + ;; macroexpansion time, which is bad style, or at compile time, e.g. + ;; in EVAL-WHEN (:COMPILE) inside something like DEFSTRUCT, in which + ;; case it's reasonable style. Either way, NAME is no longer a free + ;; function.) (when (boundp '*free-functions*) ; when compiling (remhash name *free-functions*)) diff --git a/src/compiler/ir1-translators.lisp b/src/compiler/ir1-translators.lisp index 2cb2295..a04fefc 100644 --- a/src/compiler/ir1-translators.lisp +++ b/src/compiler/ir1-translators.lisp @@ -713,9 +713,7 @@ (find-free-variable name)))) (etypecase leaf (leaf - (when (or (constant-p leaf) - (and (global-var-p leaf) - (eq (global-var-kind leaf) :constant))) + (when (constant-p leaf) (compiler-error "~S is a constant and thus can't be set." name)) (when (and (lambda-var-p leaf) (lambda-var-ignorep leaf)) diff --git a/src/compiler/ir1opt.lisp b/src/compiler/ir1opt.lisp index e8b26bf..5dee63d 100644 --- a/src/compiler/ir1opt.lisp +++ b/src/compiler/ir1opt.lisp @@ -1162,8 +1162,7 @@ (not (eq (defined-fun-inlinep leaf) :notinline))) (global-var (case (global-var-kind leaf) - (:global-function t) - (:constant t)))))) + (:global-function t)))))) ;;; If we have a non-set LET var with a single use, then (if possible) ;;; replace the variable reference's CONT with the arg continuation. diff --git a/src/compiler/ir1tran.lisp b/src/compiler/ir1tran.lisp index f3996cf..889bc62 100644 --- a/src/compiler/ir1tran.lisp +++ b/src/compiler/ir1tran.lisp @@ -1062,8 +1062,7 @@ (compiler-error "~S is an alien variable and so can't be declared special." name)) - (when (or (not (global-var-p found)) - (eq (global-var-kind found) :constant)) + (unless (global-var-p found) (compiler-error "~S is a constant and so can't be declared special." name)) diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index 41910d2..a8e2fc7 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -131,7 +131,7 @@ (global-var (let ((unsafe (policy node (zerop safety)))) (ecase (global-var-kind leaf) - ((:special :global :constant) + ((:special :global) (aver (symbolp name)) (let ((name-tn (emit-constant name))) (if unsafe diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 57f0023..d17e0b0 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -630,7 +630,7 @@ (def!struct (global-var (:include basic-var)) ;; kind of variable described (kind (missing-arg) - :type (member :special :global-function :constant :global))) + :type (member :special :global-function :global))) (defprinter (global-var :identity t) name (type :test (not (eq type *universal-type*))) diff --git a/version.lisp-expr b/version.lisp-expr index 250ce0d..229db6c 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.pre7.83" +"0.pre7.84"