r4275: Auto commit for Debian build
[hyperobject.git] / mop.lisp
index 54f685979f77a2681d69c6766caf1ee29daa3bb1..49dd87d50beadc3994b27f9921d4c97b64f0aa3e 100644 (file)
--- 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.17 2002/12/26 23:18:16 kevin Exp $
+;;;; $Id: mop.lisp,v 1.20 2003/03/29 04:20:19 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
 ;;;;
        (setf (slot-value ,the-instance ,the-slot-name)
           (,reader ,@keys)))))
 
+#+(or sbcl scl cmu)
+(defparameter *queued-definitions* nil)
+
+(defun process-queued-definitions ()
+  #+(or sbcl scl cmu)
+  (progn
+    (dolist (def *queued-definitions*)
+      (eval def))
+    (setq *queued-definitions* nil)))
+
 (defun finalize-subobjects (cl)
   "Process class subobjects slot"
   (setf (subobjects cl)
                                                           nil
                                                           (cdr subobj-def)))))
            (unless (eq (lookup subobject) t)
+             #+(or sbcl scl cmu)
+             (push `(def-lazy-reader ,(name-class subobject)
+                     ,(name-slot subobject) ,(lookup subobject)
+                     ,@(lookup-keys subobject))
+                   *queued-definitions*)             
+             #-(or sbcl scl cmu)
              (eval `(def-lazy-reader ,(name-class subobject)
                         ,(name-slot subobject) ,(lookup subobject)
                         ,@(lookup-keys subobject))))