+
+(defparameter *queued-definitions-pathname*
+ (make-pathname :directory '(:absolute "tmp")
+ :name (format nil "hyperobject-def-~d" (get-universal-time))
+ :type "lisp"))
+(defparameter *queued-definitions-stream* nil)
+
+(defun add-definition (def)
+ (unless *queued-definitions-stream*
+ (setq *queued-definitions-stream* (open *queued-definitions-pathname*
+ :direction :output
+ :if-exists :supersede)))
+ (format *queued-definitions-stream* "~A~%" def))
+
+(defun process-queued-definitions ()
+ (when *queued-definitions-stream*
+ (close *queued-definitions-stream*)
+ (compile-file *queued-definitions-pathname*)
+ (load (compile-file-pathname *queued-definitions-pathname*))
+;; (delete-file *queued-definitions-pathname*)
+;; (delete-file (compile-file-pathname *queued-definitions-pathname*))
+ (setq *queued-definitions-stream* nil)))
+