On Fri, Mar 14, 2008 at 11:11 PM, Sven Van Caekenberghe scaekenberghe@common-lisp.net wrote:
Each transaction is serialized independently from each other, using a fresh serialization-state. A snapshot is taken as a whole, correctly resolving identical objects.
Yes this is what I understood, so changing this would require hacking around the serialization package.
It would sure be a nice experiment to somehow handle object-with-id descendants (or all known objects) differently here: it somehow feels like this should work, but I am not completely sure. I took a quick look at the code and it would require some hacking into the serialization code, specifically the serialization-state (known objects).
Thanks for all your suggestions. I finally worked around this by transforming the objects referred to to forms that look like (list 'find-object-by-id id) where id is the integer id of the idea. When I need the information I then just call funcall and everything works :). It also somehow feels faster (I didn't benchmark), since cl-prevalence doesn't have to recurse into the objects anymore and the transaction logs are shorter.
Evan