Michael and I talked about this today a bit and here's what we're thinking
about doing.
We're inheriting the become: behavior from the collection growing APIs in VW
and it doesn't make sense to work around that there. Consequently the only
(relevant) become: that we do in Xtreams code is the one in
CollectionWriteStream>>close. If we're not eliminating the become: from growing
then ripping it out of closing creates a strange inconsistency.
At the same time nothing is preventing the Squeak port to do away with the
become:s altogether. After all the terminals are meant to be dialect specific
and so the two ports will just be different in this regard. It's probably worth
highlighting in the comments/docs that assuming the "become:" semantics of
growing makes one's code non-portable. This way one can both get the the
traditional behavior in VW, but at the same time Squeak doesn't have to suffer
unnecessarily.
To remove the "become" assumption in the test suite, I'll rewrite all the
ReadWriteTests splitting them up into writing and reading part, which will
allow creating the input after writing into the output is already done. That
way we don't care if the collection streams use become or not. Something like:
testBlah
self write: [ :output | .... ]
read: [ :input | ... ]
Good enough ?
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project