
On 10 January 2011 16:36, Antoine Latter
On Mon, Jan 10, 2011 at 10:17 AM, Aaron Gray
wrote: On 10 January 2011 16:13, Daniel Fischer < daniel.is.fischer@googlemail.com> wrote:
On Monday 10 January 2011 16:45:36, Aaron Gray wrote:
This is interesting, what does the following line do :-
data Int24 = I24# Int# deriving (Eq, Ord)
regarding the I24# and Int#, are these inbuilt ?
Int# is the raw machine int (4 or 8 bytes) and I24# is the constructor. GHC uses the magic hash '#' to denote raw unboxed types (and the
constructors
making ordinary boxed Haskell types from these, e.g. there's
data Int = I# Int# data Word = W# Word# data Double = D# Double#
and more defined in base [GHC.Types, GHC.Word]).
So the 24 bit value is actually stored as a 32bit value. Meaning I will have to do my own IO reader and writer code to a ByteString. Thanks, Aaron
I don't think so - the Storable instance provided for the Int24 type peeks and pokes 24-bit values. At least, that what I understand John's earlier message to mean.
Yes looking at the code it does support 24bit peeks and pokes. Thanks, Aaron