DeltaStreams file-out format and class model

Matthew Fulmer tapplek at gmail.com
Tue Oct 9 20:08:05 UTC 2007


This is an IRC discussion I am moving to the mailing list

the current DeltaStreams file-out format is monolithic, and can be only loaded/saved as one chunk. It is a gzipped DataStream of the Delta model.

An idea is to base it on a logging framework. where composite
changes could be rendered as:

open composite change.
add change.
add change.
close composite change.

Much like xml/sexp formats. Not sure if the chunk format could
do this

This would enable streaming loading and saving of deltas, rather
than the all-at-once load/save as is done now.

Keith Hodges replied:
> please please use the chunk format
> or as I have suggested a form that may not look like the chunk format but can behave like it
> I myself didnt think that DS needed a class model
> just heve defined operations on a System Editor
> foled out in chunk format
> filed*
> i.e.,,, change method
> chunk of code which assigns the method change to aystemEditor A 
> and a second chunk of code which assigns the inverse to system editor B
> thats you delta stream

First, I am open to any suggestion about a better change model.
Having 34 subclasses of DSChange be the model does seem messy to
me.  I know there should be something better, but I havn't
thought of it yet, except that it would probably be vaguely
pier-like

Some questions:
What is a "defined operation on a SystemEditor" other than a class model?
What do you mean by "the chunk format" or "like the chunk format"?
Do you mean "able to be used as a CompiledMethod sourcePointer"?
Or do you mean "some format that is a smalltalk expression that generates something"?

I don't really understand the chunk format; by having old and
new version, any fileout of Deltas would not look like a
file-out or change set, even if it did use something parsable by
the chunk reader.  The chunk format also has the
complication/liberty of custom stream parsers

Would this be like the chunk format you speak of?
| editor classEditor|
editor := SystemEditor new !
classEditor := editor at: Object !
classEditor compile: "methodZ ^ self" classified: #'junk methods'!

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808



More information about the Squeak-dev mailing list