[Haskell] Re: ANNOUNCE: FPS - FastPackedStrings 0.2

Donald Bruce Stewart dons at cse.unsw.edu.au
Thu Apr 20 05:24:18 EDT 2006


Moved to libraries@

tomasz.zielonka:
> 
> And a String class would allow typing FastPackedString literals directly.

On this last matter, you can almost do it:

    FPS.packAddress "haskell"#
or
    FPS.unsafePackAddress 7 "haskell"#

The latter is an O(1) op, the former performs a strlen on construction.
And with the magic RULE, you get:

    {-# RULES
    "pack/packAddress" forall s# .
                       pack (unpackCString# s#) = packAddress s#
     #-}

such that:
    FPS.pack "haskell"

usually gives you the right thing. Ideally I'd like a way to get the strlen
from the compiler, to make O(1) packAddress using 

-- Don


More information about the Libraries mailing list