> On 22 Apr 2018, at 10:22, Tudor Girba <[email protected]> wrote:
> 
> Hi,
> 
> I am so looking forward to playing with this (as a user).
> 
> For various reasons, we are still in Pharo 6.1, but encoding/decoding was 
> always a troublesome issue in Pharo.

Well it should not be, not even in older Pharo versions, as long as you use 
everything correctly.

But the latest changes are a bold step forward.

> Thanks a lot!
> 
> Cheers,
> Doru
> 
> 
>> On Apr 20, 2018, at 5:24 PM, Sven Van Caekenberghe <[email protected]> wrote:
>> 
>> Hi,
>> 
>> After the File and Stream changes in Pharo 7, a binary read, resp. write 
>> stream from/to a file is actually a ZnBuffered(Read|Write)Stream on a 
>> BinaryFileStream. You access these using #binary(Read|Write)Stream[Do:] sent 
>> to a FileReference.
>> 
>> As minimal streams the API of ZnBuffered(Read|Write)Stream was different 
>> from what existed before.
>> 
>> Specifically, a number of Integer decoding/encoding methods were missing. It 
>> is probably best to add those (an alternative would be a subclass).
>> 
>> When I looked at what was available, I thought I could improve upon the 
>> current situation. In fact, I think all existing ones can be written in 
>> terms of just one key method, one for reading and one for writing. The 
>> existing methods than become simple aliases, all while offering more 
>> functionality.
>> 
>> (Incidentally this would be an ideal use of a Trait, can we use them 
>> again/still ?)
>> 
>> The key method is #nextIntegerOfSize: numberOfBytes signed: signed 
>> bigEndian: bigEndian [put: value] and can be found in the latest version of 
>> Zinc-CharacterEncoding-Core with a comprehensive set of unit tests.
>> 
>> For example,
>> 
>> int32
>> ^ self nextIntegerOfSize: 4 signed: true bigEndian: true
>> 
>> nextWord
>> ^ self nextIntegerOfSize: 2 signed: false bigEndian: true
>> 
>> or non-aliases ones like
>> 
>> binaryStream nextIntegerOfSize: 3 signed: true bigEndian: false
>> 
>> I think I nailed it, but I would love a second pair of eyes to check what I 
>> did.
>> 
>> The same functionality could be added to ByteArray in a slight variation 
>> (with offsets), where similar integer encoding/decoding methods exist.
>> 
>> Sven
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "From an abstract enough point of view, any two things are similar."
> 
> 
> 
> 
> 


Reply via email to