[Haskell-cafe] GHC.Ptr, Foreign.Storable, Data.Storable.Endian, looking for good examples of usage

Antoine Latter aslatter at gmail.com
Tue Jan 11 01:02:55 CET 2011


On Mon, Jan 10, 2011 at 5:23 PM, Aaron Gray <aaronngray.lists at gmail.com> wrote:
> On 10 January 2011 22:30, Henning Thielemann <lemming at henning-thielemann.de>
> wrote:
>>
>> John Lato schrieb:
>>
>> > You could use my "word24" package[1] (GHC only) to provide non-aligned
>> > 24-bit word and int types with Storable instances.  You should be able
>> > to write a binary instance (or whatever blaze-builder needs) fairly
>> > simply from this.  Little-endian only ATM, but BE could be added if
>> > necessary.
>>
>> Good to know that! However, I think for the original poster the binary
>> package is perfect. This way he does not worry about unsafe peeking and
>> poking around in memory.
>>
>
> Yes. I have came back to looking at the binary package, the only thing is I
> think I have to build my own primatives with it as it is big-endian, where
> ActionScript Byte Code format is little-endian. It does provide some
> little-endian functions but they are not brought to the surface. It also
> seems to roll its own serializations.

The 'binary' package supports big-endian, little-endian and
host-endian construction in the Data.Binary.Builder module, so you
hopefully won't need to reimplement too much.

> I am maybe looking at doing my own specialized set of types and binary
> backend as there are drawback with each of the existing solutions.
>   - Data.Storable.Endian - peeks and pokes rather than put/get
>   - Data.Word24 - peeks and pokes rather than put/get
>   - Data.Binary - big-endian
> ABC format may best be supported by a specific set of serialization types.
> On a different note thinking outside this problem, I would like IO_LE and
> IO_BE types if that could be make to work.
> Aaron
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>



More information about the Haskell-Cafe mailing list