[Pharo-project] Object serialization in Pharo
bschwab at anest.ufl.edu
Tue Sep 15 10:16:46 EDT 2009
I wish you well and will be eager to hear progress reports. Long ago, I looked at ReferenceStream (or maybe SmartReferenceStream), and did not like what I found. IIRC, the output for simple examples was much larger (of course, it might not continue to scale so unfavorably) compared that that produced by Dolphin's binary filer. Another concern was schema changes.
Dolphin has an orderly conversion process that will raise an error if it is not prepared for what it finds; Squeak seemed to want to fix it itself with the aid of the user (not gonna fly in an end-user app or a server process, which is pretty much everything).
Dolphin locates conversion methods in the class of the object being converted or in the class of a proxy for it (that sounded scary to me when I read about it, but it is exactly what one would want in practice). In contrast, Squeak puts the conversion methods in ReferenceStream. Yuk!!! Sorry, don't know what just came over me :) Of course one can always modify ReferenceStream[*], but imagine the chaos if ReferenceStream were to become widely used.
I have used serializers to good effect and would like to continue doing so. At the moment, I would look again, but would lean away from ReferenceStream. SIXX (an XML serializer) is a possibility. As I recall, its output was not terse (but might compress nicely??). There originally was minimal to no support for shape changes, but that has been addressed; I cannot speak for how well it has been done because I have not had time to look. It is on my todo list and might float to the surface soon, though initially I would not need to care about shape changes.
[*] I think we recently discussed a Squeak fork that would not allow touching base classes due to packaging limitations. Not good. I am not defending the ReferenceStream example, but it would be a big problem on that system, if I understood that thread.
From: pharo-project-bounces at lists.gforge.inria.fr [mailto:pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Simon Denier
Sent: Tuesday, September 15, 2009 8:32 AM
To: Pharo Development
Subject: [Pharo-project] Object serialization in Pharo
I'm looking at the code and comments of ReferenceStream for object serialization and I wonder what is the best strategy to serialize a partial model. I mean, I want to store all elements found while traversing the graph of the model, but I dont want to store some attributes of those elements (i.e., transient attributes).
Pharo-project mailing list
Pharo-project at lists.gforge.inria.fr
More information about the Pharo-dev