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.

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