[elephant-cvs] CVS elephant/src/elephant
ieslick
ieslick at common-lisp.net
Sun Feb 25 09:12:48 UTC 2007
Update of /project/elephant/cvsroot/elephant/src/elephant
In directory clnet:/tmp/cvs-serv20086/src/elephant
Modified Files:
controller.lisp serializer.lisp
Log Message:
Fix SBCL struct serialization; cleanup TODO after Trac conversion; remove persistant aggregate stubs
--- /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2007/02/24 14:51:59 1.37
+++ /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2007/02/25 09:12:47 1.38
@@ -492,54 +492,6 @@
(when entry
(cdr entry))))
-;;
-;; Callback hooks for persistent variables
-;;
-
-;; Design sketch; not sure I'll promote this.
-;; To be looked at again for 0.6.2 or 0.7.0
-
-;;(defvar *variable-hooks* nil
-;; "An alist (specs -> varlist) where varlist is tuple of
-;; lisp name, store name (auto) and policy")
-
-;;(defun add-hook (name spec)
-;; (if (assoc spec *variable-hooks* :test #'equal)
-;; (push name (assoc spec *variable-hooks* :test #'equal))
-;; (push (cons spec (list name)) *variable-hooks*)))
-
-;;(defun remove-hook (name spec)
-;; (if (assoc spec *variable-hooks* :test #'equal)
-;; (setf (assoc spec *variable-hooks* :test #'equal)
-;; (remove name (assoc spec *variable-hooks* :test #'equal)))
-;; (error "No hooks declared on ~A" spec)))
-
-;; (defmacro defpvar (name spec (policy &rest accessors) initial-value &optional (documentation nil))
-;; `(progn
-;; (defvar ,name ,initial-value ,documentation)
-;; (add-hook ,name ,spec)
-;; ,(case policy
-;; (:wrap-mutators
-;; `(progn
-;; ,(loop for accessor in accessors do
-;; (let ((gf (ensure-generic-function
-;; `(defmethod ,accessor :after (
-
-;; (defpvar *agencies* (:wrap-mutators
-;; 'add-agent
-;; 'remove-agent
-;; 'clear-agents)
-;; nil
-;; "test")
-
-;; (defmethod add-agent (agent)
-;; (push agent *agencies*))
-
-;; (defmethod remove-agent (agent)
-;; (setf *agencies* (remove agent *agencies*)))
-
-;; (defmethod clear-agents (agent)
-;; (setf *agencies* nil))
--- /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2007/02/25 03:37:37 1.22
+++ /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2007/02/25 09:12:47 1.23
@@ -198,16 +198,14 @@
"List of slot names followed by values for structure object"
(let ((result nil)
(slots
- #+openmcl
+ #+(or sbcl cmu allegro)
+ (mapcar #'slot-definition-name (class-slots (class-of object)))
+ #+openmcl
(let* ((sd (gethash (class-name (class-of object)) ccl::%defstructs%))
(slots (if sd (ccl::sd-slots sd))))
(mapcar #'car (if (symbolp (caar slots)) slots (cdr slots))))
- #+cmu
- (mapcar #'pcl:slot-definition-name (pcl:class-slots (class-of object)))
#+lispworks
- (structure:structure-class-slot-names (class-of object))
- #+allegro
- (mapcar #'mop:slot-definition-name (mop:class-slots (class-of object)))))
+ (structure:structure-class-slot-names (class-of object))))
(loop for slot in slots do
(push (slot-value object slot) result)
(push slot result))
More information about the Elephant-cvs
mailing list