[Haskell-cafe] Performance: MD5

Andrew Coppin andrewcoppin at btinternet.com
Sun May 18 08:08:02 EDT 2008

Bulat Ziganshin wrote:
> Hello Andrew,
> Sunday, May 18, 2008, 3:42:23 PM, you wrote:
>> Isn't there some function kicking around somewhere for acessing arrays
>> without the bounds check? Similarly, I'm sure I remember the Data.Bits
>> bounds check being mentioned before, and somebody saying they had [or 
>> were going to?] make an unsafe variant available. I've looked around the
>> library documentation and I'm not seeing anything... any hints?
> unsafeRead/Write

Found in Data.Array.Base, apparently. (I managed to find an example in 
the Gtk2hs "fastdraw" demo.)

Oddly, this seems to make virtually no performance difference. I find 
this highly surprising. But then, I perform 16 write to the array, and 
64 reads from the ByteString, so maybe that's where I should be worrying 
about bounds checks...

> (I# a) <<# (I# b) = (I# (a `iShiftL#` b))
> (I# a) >># (I# b) = (I# (a `uncheckedIShiftRL#` b))

Does it make a difference if I want Word32 instead of Int?

More information about the Haskell-Cafe mailing list