Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv18912
Modified Files:
loop.lisp
Log Message:
Factored out defstructs so they are not evaluated twice for every
compilation of this file.
Date: Tue Feb 10 18:40:17 2004
Author: ffjeld
Index: movitz/losp/muerte/loop.lisp
diff -u movitz/losp/muerte/loop.lisp:1.3 movitz/losp/muerte/loop.lisp:1.4
--- movitz/losp/muerte/loop.lisp:1.3 Wed Jan 21 17:02:09 2004
+++ movitz/losp/muerte/loop.lisp Tue Feb 10 18:40:17 2004
@@ -298,6 +298,53 @@
#-LISPM `(cdr ,head-var))))
+(defstruct (loop-minimax
+ (:constructor make-loop-minimax-internal)
+ (:copier nil)
+ (:predicate nil))
+ answer-variable
+ type
+ temp-variable
+ flag-variable
+ operations
+ infinity-data)
+
+(defstruct (loop-universe
+ (:print-function print-loop-universe)
+ (:copier nil)
+ (:predicate nil))
+ keywords ;hash table, value = (fn-name . extra-data).
+ iteration-keywords ;hash table, value = (fn-name . extra-data).
+ for-keywords ;hash table, value = (fn-name . extra-data).
+ path-keywords ;hash table, value = (fn-name . extra-data).
+ type-symbols ;hash table of type SYMBOLS, test EQ, value = CL type specifier.
+ type-keywords ;hash table of type STRINGS, test EQUAL, value = CL type spec.
+ ansi ;NIL, T, or :EXTENDED.
+ implicit-for-required ;see loop-hack-iteration
+ )
+
+
+(defstruct (loop-collector
+ (:copier nil)
+ (:predicate nil))
+ name
+ class
+ (history nil)
+ (tempvars nil)
+ dtype
+ (data nil)) ;collector-specific data
+
+(defstruct (loop-path
+ (:copier nil)
+ (:predicate nil))
+ names
+ preposition-groups
+ inclusive-permitted
+ function
+ user-data)
+
+
+
;;;; Maximization Technology
(eval-when (:compile-toplevel :execute)
@@ -317,18 +364,6 @@
|#
-(defstruct (loop-minimax
- (:constructor make-loop-minimax-internal)
- (:copier nil)
- (:predicate nil))
- answer-variable
- type
- temp-variable
- flag-variable
- operations
- infinity-data)
-
-
(defvar *loop-minimax-type-infinities-alist*
;;@@@@ This is the sort of value this should take on for a Lisp that has
;; "eminently usable" infinities. n.b. there are neither constants nor
@@ -467,19 +502,7 @@
(defmacro loop-store-table-data (symbol table datum)
`(setf (gethash (symbol-name ,symbol) ,table) ,datum))
-(defstruct (loop-universe
- (:print-function print-loop-universe)
- (:copier nil)
- (:predicate nil))
- keywords ;hash table, value = (fn-name . extra-data).
- iteration-keywords ;hash table, value = (fn-name . extra-data).
- for-keywords ;hash table, value = (fn-name . extra-data).
- path-keywords ;hash table, value = (fn-name . extra-data).
- type-symbols ;hash table of type SYMBOLS, test EQ, value = CL type specifier.
- type-keywords ;hash table of type STRINGS, test EQUAL, value = CL type spec.
- ansi ;NIL, T, or :EXTENDED.
- implicit-for-required ;see loop-hack-iteration
- )
+
(defun print-loop-universe (u stream level)
@@ -1192,15 +1215,6 @@
;;;; Value Accumulation: List
-(defstruct (loop-collector
- (:copier nil)
- (:predicate nil))
- name
- class
- (history nil)
- (tempvars nil)
- dtype
- (data nil)) ;collector-specific data
(eval-when (:compile-toplevel #+movitz-loop :load-toplevel)
@@ -1578,14 +1592,6 @@
;;;; Iteration Paths
-(defstruct (loop-path
- (:copier nil)
- (:predicate nil))
- names
- preposition-groups
- inclusive-permitted
- function
- user-data)
(defun add-loop-path (names function universe &key preposition-groups inclusive-permitted user-data)