[Haskell-cafe] FastString a misnomer
Donald Bruce Stewart
dons at cse.unsw.edu.au
Sat Oct 22 01:07:29 EDT 2005
> On 21 October 2005 02:53, Donald Bruce Stewart wrote:
> > john:
> >> On Thu, Oct 20, 2005 at 10:45:28AM +0100, Simon Marlow wrote:
> >>> I think when this is ready it should replace Data.PackedString.
> >>> I don't necessarily mean put it into fptools/libraries/base - we
> >>> could just remove the existing Data.PackedString from there and
> >>> your separate package can provide Data.PackedString. That is,
> >>> unless we decide to use it in GHC in some way, in which case we'll
> >>> have to pull (a copy of) it into fptools/libraries.
> >> We should make 'PackedString' the UTF8 wrapper though and provide
> >> Data.ByteArray as a separate library. If it has string in the name,
> >> one should be able to replace strings with it everywhere and expect
> >> the right thing to happen as enforced by the type system. that and
> >> C's conflation of characters and bytes and Haskell 98s lack of
> >> clearing up the issue has been a huge pet peeve of mine.
> > Ok, so a rough structure of the final lib would be:
> > Data Data System
> > | | |
> > ByteArray (?) PackedString Posix
> > | | |
> > UTF8 Latin1 ... MMap (providing
> > mmapFile :: FilePath -> ByteArray)
> Remind me what Data.ByteArray is for? Seems like it would overlap a lot
> with Data.PackedString.Latin1 and UArray Word8.
> We should have Data.PackedString.UTF16 too; it'll make interoperating
> with Win32 APIs easier as Bulat pointed out.
> I like John Meacham's suggestion of changing the UTF8 representation to
> include a count of characters as well as bytes. I'm not volunteering to
> do it, just adding my "+1" in case anyone else wanted to :-)
Yep, ok. This goes on my todo list.
Ok, perhaps more like:
| | \ |
Latin1 UTF8 UTF16 MMap
as per the current 'packedstring' of SimonM's, with the fuller interface
provided by FPS though. This was the basic plan from the start, anyway.
More information about the Haskell-Cafe