From df3969ab67c07fddeffadf1ffef414074a43d9ba Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Tue, 9 Nov 2010 19:43:17 +0000 Subject: [PATCH] 1.0.44.6: ir1: Add a new attribute for LAMBDA-VARs that need explicit value-cells. * Add a new EXPLICIT-VALUE-CELL attribute to the LAMBDA-VAR attributes. * Add a new LAMBDA-VAR-EXPLICIT-VALUE-CELL access macro while we're at it. --- src/compiler/node.lisp | 8 ++++++++ version.lisp-expr | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 5300228..f9de316 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -1104,6 +1104,12 @@ ;; true if the last reference has been deleted (and new references ;; should not be made) deleted + ;; This is set by physical environment analysis if, should it be an + ;; indirect lambda-var, an actual value cell object must be + ;; allocated for this variable because one or more of the closures + ;; that refer to it are not dynamic-extent. Note that both + ;; attributes must be set for the value-cell object to be created. + explicit-value-cell ) (def!struct (lambda-var (:include basic-var)) @@ -1147,6 +1153,8 @@ `(lambda-var-attributep (lambda-var-flags ,var) indirect)) (defmacro lambda-var-deleted (var) `(lambda-var-attributep (lambda-var-flags ,var) deleted)) +(defmacro lambda-var-explicit-value-cell (var) + `(lambda-var-attributep (lambda-var-flags ,var) explicit-value-cell)) ;;;; basic node types diff --git a/version.lisp-expr b/version.lisp-expr index deb7218..8e50bdf 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.44.5" +"1.0.44.6" -- 1.7.10.4