X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=mop.lisp;h=496bc56c3ae7977205f3a3d34e24051b9701f2f7;hb=5a20b2bd0d0859d58da60fd22ab37658673ef291;hp=46d45141a8147edae11581d77de185c16063bf68;hpb=715a81d8541f2191738f14d84c386c11d2822dd9;p=hyperobject.git diff --git a/mop.lisp b/mop.lisp index 46d4514..496bc56 100644 --- a/mop.lisp +++ b/mop.lisp @@ -11,7 +11,7 @@ ;;;; in Text, HTML, and XML formats. This includes hyperlinking ;;;; capability and sub-objects. ;;;; -;;;; $Id: mop.lisp,v 1.15 2002/12/14 18:51:56 kevin Exp $ +;;;; $Id: mop.lisp,v 1.16 2002/12/14 21:52:48 kevin Exp $ ;;;; ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg ;;;; @@ -385,14 +385,13 @@ (defun compile-rule (source-code dependants volatile cl) (let ((access (appendnew dependants volatile))) -;; (compile nil + (compile nil (eval `(lambda (obj) (when (every #'(lambda (x) (slot-boundp obj x)) (quote ,dependants)) (with-slots ,access obj - ,@source-code)))))) -;;) + ,@source-code))))))) (defun finalize-rules (cl) (let* ((direct-rules (direct-rules cl)) @@ -417,9 +416,16 @@ (let ((name (slot-definition-name slot))) (dolist (rule (rules cl)) (when (find name (dependants rule)) - (cmsg "firing rule: ~a" rule) + (cmsg-c :debug "firing rule: ~W" (source-code rule)) (funcall (func rule) obj))))) + +#+ignore +(defmethod (setf slot-value-using-class) + :around (new-value (cl hyperobject-class) obj + (slot standard-effective-slot-definition)) + (call-next-method)) + (defmethod (setf slot-value-using-class) :around (new-value (cl hyperobject-class) obj (slot standard-effective-slot-definition))