On 08 Nov 2013, at 16:10, Camillo Bruni <[email protected]> wrote:

> welcome to the stream-hell of pharo :(
> This is all a big mess, since all streams are doing everything: binary, text, 
> utf8, custom character conversion :P

Yes, #binary and #ascii expect the streams to modify themselves automagically 
;-)

Not that it fundamentally solves the current problem, 
but a clean way to turn a binary read/write stream into a character on is

        ZnCharacterReadStream on: binaryStream
and
        ZnCharacterWriteStream on: binaryStream

they do utf-8 by default, but could work with any encoding (on:encoding:).

Sven

> But yes, this is a bug of the memory filesystem...
> 
> On 2013-11-08, at 15:22, Martin Dias <[email protected]> wrote:
> 
>> Sven, you are right. I checked that MemoryHandle>>readStream creates a 
>> ReadStream on it's internal byte array. Then, the answer to #next it's not a 
>> Character but a SmallInteger.
>> 
>> Ok, anyway I can avoid using `FileSystem memory`. I was just trying to make 
>> my test suite not use the physical disk. Just an optimization...
>> 
>> Thanks,
>> Martín
>> 
>> 
>> On Fri, Nov 8, 2013 at 3:04 PM, Martin Dias <[email protected]> wrote:
>> Thanks, but it's the same: the streams are instances of WriteStream and 
>> ReadStream... the implementation of #ascii in ReadStream is empty, and 
>> WriteStream doesn't respond to #ascii. 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Fri, Nov 8, 2013 at 2:19 PM, Max Leske <[email protected]> wrote:
>> 
>> On 08.11.2013, at 13:59, Sven Van Caekenberghe <[email protected]> wrote:
>> 
>>> Hi Martin,
>>> 
>>> I would guess that the stream created by the memory filesystem are binary, 
>>> not character, as STON expects.
>> 
>> Good point, although currently ascii mode is still default I think.
>> Try sending #ascii to the stream. That might help.
>> 
>>> 
>>> Sven
>>> 
>>> On 08 Nov 2013, at 13:55, Martin Dias <[email protected]> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I'm working in latest Pharo (30577) with STON (bleeding edge) and I get 
>>>> MNU:SmallInteger>>isSeparator when I evaluate the code below. Is my code 
>>>> wrong? The idea is to make my test suite work in the memory file system.
>>>> 
>>>> | fileSystem |
>>>> fileSystem := FileSystem memory.
>>>> 
>>>> (fileSystem / 'file.txt') ensureCreateFile.
>>>> 
>>>> STON writer
>>>>     on: (fileSystem / 'file.txt') writeStream;
>>>>     nextPut: 'hi'.
>>>> 
>>>> STON reader
>>>>     on: (fileSystem / 'file.txt') readStream;
>>>>     next.
>>>> 
>>>> Thanks in advance.
>>>> 
>>>> Martín
>>> 
>>> 
>> 
>> 
>> 
>> 
> 
> 


Reply via email to