"FastPackedString" considered harmful

Simon Marlow simonmarhaskell at gmail.com
Thu Apr 20 05:16:05 EDT 2006


But I would expect a library called Data.Byte* to deal in terms of 
Word8s, not Chars.  The objective of the operation is to provide a 
speedier [Char], so I'd be happy with Data.PackedString(.Latin1).

Perhaps the ideal structure would be something like (taking up Udo 
Stenzel's suggestion):

     - data {- Storable w => -} StorableVector w
     - implements all the FPS operations
     - convert between ForeignPtr, StorableVector, StorableArray

     - newtype PackedString = PS (StorableVector Word8)

Making all the appropriate specialisations happen might be a challenge, 
though.  An intermediate position is to provide Data.ByteVector and 
Data.PackedString.* defined in terms of that.


Jean-Philippe Bernardy wrote:
> How about ByteSequence ?
> This is inline with Ross' Data.Sequence and Data.IntMap.
> Cheers,
> JP.
> On 4/20/06, Donald Bruce Stewart <dons at cse.unsw.edu.au> wrote:
>>On the topic of a good name for FPS, I think its fairly widely
>>considered that a packed byte "string" shouldn't be considered a String,
>>and thus FastPackedString is a potentially confusing misnomer.
>>It was always meant as a working title until something replaced
>>Data.PackedString anyway.
>>If this library is to be imported into the base libraries, along with
>>future PackedString.Unicode and so on, layers on top, we should probably
>>get the name right now.
>>I'm disinclined to call it a ByteArray module -- it doesn't really offer
>>array-like operations. And its got nothing much to do with the other
>>Array.* stuff.
>>Instead, how about: Data.ByteString  (with a connotation of IntMap) ?
>>That seems to suggest both the stringy-ness of the api, but also the
>>restriction to bytes.
>>-- Don
>>Libraries mailing list
>>Libraries at haskell.org

More information about the Libraries mailing list