Proposal: Make arrays safer

Ian Lynagh igloo at earth.li
Fri Aug 10 11:05:51 EDT 2007


Hi all,

Proposal: http://hackage.haskell.org/trac/ghc/ticket/1610

This is a proposal to make arrays safer, e.g. see:
    http://hackage.haskell.org/trac/ghc/ticket/1046

This is a divergence from Haskell 98.

The patches:

    * Add (numElements :: Ix i => a i e -> Int) to IArray class
    * Array types get an extra field for numElements, e.g.

         -data UArray i e = UArray !i !i ByteArray#
         +data UArray i e = UArray !i !i !Int ByteArray#

      This is a cache of rangeSize(l,u)
    * Add safeRangeSize (always returns >= 0)
    * Add safeIndex (use unsafeIndex (no Ix inRange check),
                     but check index < numElements)
    * unsafeForeignPtrToStorableArray gained an (Ix i) context
    * Use the new functions in various places 

Suggested deadline: 24 Aug 2007.


Thanks
Ian



More information about the Libraries mailing list