Hi Jan,
I like #<< too, but I think your assumption that it can print anything on a stream is generally wrong, dangerous and unreliable.
IMHO, you better stick to #print: in that case.
Consider the follow, that all fail:
String streamContents: [ :s | s << 'hello' << 42.5 << $! ].
String streamContents: [ :s | s << 'hello' << (1@2) << $! ].
In other words: #<< works in bizar ways (check the implementors of #putOn:).
I would be inclined to change
ZnEncodedStream>>#<< collection
^ self nextPutAll: collection
to
ZnEncodedStream>>#<< collection
^ self nextPutAll: collection asString
but it would technically not be the same as the original #<< for in-memory streams.
Opinions ?
Sven
On 15 Feb 2019, at 09:52, Jan Blizni��enko <jan.bliznicenko@fit.cvut.cz> wrote:
Hello everyone
I am trying to use Pharo 7 for my project and I noticed that most of my
streams related code does not work anymore. Reason is that API for streams
received from writeStream of FileReference changed and I think it changed
for the worse in my case, because << does not properly handle any other
objects than strings anymore.
In both Pharo 6 and 7 I can write
String streamContents: [ :s | s << 'hello' << 42 << $! ].
and get 'hello42!'.
I can write in Pharo 6 but cannot in Pharo 7
'hello.txt' asFileReference writeStreamDo: [ :s | s << 'hello' << 42 << $! ]
In Pharo 6, I get same result in both examples (written to the file in
second case of course), but in Pharo 7, the second example results in
exception because << does not work with anything other than strings, so it
seems I have to manually convert everything to strings.
This change to streams seems to me like a setback for 2 reasons:
1) API amongst streams is no longer consistent in this case
2) streams for files lost useful functionality and to make my project
compatible with Pharo 7, I have to make lots of effort to make my code
uglier and longer
I would like to ask for the reason of this change and whether is there
anything that can be done with it. Or do I just misuse or misunderstand
anything? Thank you.
Best regards,
Jan
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html