r8264: rename entities.xml to entities.inc
[hyperobject.git] / rules.lisp
index 6a0745281dd99d423bc5926b915a925d3cfa7a1d..dad93ad91278d862fc1998d333a0536945b551ad 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: rules.lisp,v 1.46 2003/06/06 21:59:29 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
@@ -25,6 +25,7 @@
    (func :initform nil :initarg :func :accessor func)))
 
 (defun compile-rule (source-code dependants volatile cl)
+  (declare (ignore cl))
   (let ((access (appendnew dependants volatile)))
     (compile nil
             (eval
                     ,@source-code)))))))
   
 (defun finalize-rules (cl)
-  (let* ((direct-rules (direct-rules cl))
-        (rules '()))
-    (dolist (rule direct-rules)
-      (destructuring-bind (name (&key dependants volatile) &rest source-code)
-         rule
-       (setf dependants (mklist dependants)
-             volatile (mklist volatile))
-       (push
-        (make-instance 'rule :name name :dependants dependants
-                       :volatile volatile :source-code source-code
-                       :access-slots (appendnew dependants volatile)
-                       :func (compile-rule
-                              source-code dependants volatile cl))
-        rules)))
-    (setf (rules cl) (nreverse rules))))
+  (setf (rules cl)
+    (loop for rule in (direct-rules cl)
+       collect 
+         (destructuring-bind (name (&key dependants volatile) &rest source-code)
+             rule
+           (setf dependants (mklist dependants)
+                 volatile (mklist volatile))
+           (make-instance 'rule :name name :dependants dependants
+                          :volatile volatile :source-code source-code
+                          :access-slots (appendnew dependants volatile)
+                          :func (compile-rule
+                                 source-code dependants volatile cl))))))
 
 
 (defun fire-class-rules (cl obj slot)
@@ -61,8 +59,7 @@
        (funcall (func rule) obj)))))
 
 
-;;#-ho-no-svuc
-#+ignore
+#+ho-svuc
 (defmethod (setf slot-value-using-class) :around
     (new-value (cl hyperobject-class) obj (slot hyperobject-esd))