1.0.44.6: ir1: Add a new attribute for LAMBDA-VARs that need explicit value-cells.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:43:17 +0000 (19:43 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:43:17 +0000 (19:43 +0000)
  * 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
version.lisp-expr

index 5300228..f9de316 100644 (file)
   ;; 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))
   `(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))
 \f
 ;;;; basic node types
 
index deb7218..8e50bdf 100644 (file)
@@ -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"