[cl-store-cvs] CVS update: cl-store/doc/cl-store.texi
Sean Ross
sross at common-lisp.net
Tue Feb 1 08:27:42 UTC 2005
Update of /project/cl-store/cvsroot/cl-store/doc
In directory common-lisp.net:/tmp/cvs-serv9440/doc
Modified Files:
cl-store.texi
Log Message:
Changelog 2005-02-01
Date: Tue Feb 1 00:27:40 2005
Author: sross
Index: cl-store/doc/cl-store.texi
diff -u cl-store/doc/cl-store.texi:1.5 cl-store/doc/cl-store.texi:1.6
--- cl-store/doc/cl-store.texi:1.5 Thu Dec 2 02:32:02 2004
+++ cl-store/doc/cl-store.texi Tue Feb 1 00:27:40 2005
@@ -468,7 +468,7 @@
@end deffn
@anchor {Macro resolving-object}
- at deffn {Macro} resolving-object object &body body
+ at deffn {Macro} resolving-object (var create) &body body
Executes @emph{body} resolving circularities detected in @emph{object}.
Resolving-object works by creating a closure, containing code to set a
particular place in @emph{object}, which is then pushed onto a list.
@@ -477,9 +477,9 @@
Example.
@lisp
(defrestore-cl-store (cons stream)
- (resolving-object (cons nil nil)
- (setting car (restore-object stream))
- (setting cdr (restore-object stream))))
+ (resolving-object (object (cons nil nil))
+ (setting (car object) (restore-object stream))
+ (setting (cdr object) (restore-object stream))))
@end lisp
@end deffn
@@ -489,24 +489,18 @@
@deffn {Macro} setting place get
This macro can only be used inside @code{resolving-object}. It sets the value
designated by @emph{place} to @emph{get} for the object that is being resolved.
- at emph{Place} should be either a symbol or a list. By default we assume that the
-order of the arguments to (setf @emph{place}) is first the object to set and then
-the rest of the arguments. To work around instances where the order is reversed
-as in gethash, there is a variable called @code{*postfix-setters*}.
-If the first element of place is in @code{*postfix-setters*} the setting macro
-will adjust accordingly.
Example.
@lisp
(defrestore-cl-store (simple-vector stream)
(let* ((size (restore-object stream))
(res (make-array size)))
- (resolving-object res
+ (resolving-object (object res)
(loop repeat size for i from 0 do
;; we need to copy the index so that
;; it's value is preserved for after the loop.
(let ((x i))
- (setting (aref x) (restore-object stream)))))
+ (setting (aref object x) (restore-object stream)))))
res))
@end lisp
@end deffn
@@ -528,7 +522,7 @@
:rehash-size rehash-size
:rehash-threshold rehash-threshold
:size size)))
- (resolving-object hash
+ (resolving-object (obj hash)
(loop repeat count do
(setting-hash (restore-object stream)
(restore-object stream))))
More information about the Cl-store-cvs
mailing list