Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jul 20, 2011
  1. Fix an overly cautious bit of arithmetic checking.

    Even though the value behind a Size is an Int, we actually intend that those
    values should always be non-negative. (We don't use the notionally more
    appropriate Word because GHC doesn't do a very good job with it.)
    But non-negative means that 0+0 should be 0! Um, oops.
Commits on Jul 11, 2011
Commits on Jul 10, 2011
  1. Portable native UTF-8 decoder gives 3.7x faster decoding

    This code is derived from Björn Höhrmann's UTF-8 decoder.  Compared
    to the original Haskell decoder from cac7dbcbc392, it's between
    2.17 and 3.68 times faster.  It's even between 1.18 and 3.58 times
    faster than the improved Haskell decoder from 71ead801296a.
    The x86-specific decoding path gives a substantial win for entirely
    and partly ASCII text, e.g. HTML and XML, at the cost of being about
    17% slower than the portable C decoder for entirely non-ASCII text.
Commits on Jul 8, 2011
  1. Speed up UTF-8 decoding by a little over 2x

    The previous code was more concise, but alas GHC boxed each Word8
    it read from the ByteString, which resulted in poor performance.
    This mankier code adds (seemingly required) strictness annotations,
    along with a little bit of manual CSE.
    Timing of the DecodeUtf8/Strict benchmark went from 41.8ms to 19.6ms,
    a pleasing improvement.
Commits on Jun 28, 2011
  1. Oh noes! I was miscalculating the initial buffer size!

    When performance testing encodeUtf8, I noticed that for some reason I
    was still seeing "ensure" show up in the profile, when I expected it
    shouldn't have been.
    Turns out I was using a "min" where I should have been using a "max",
    and thus allocating an initial bytestring that would almost always be
    too small, thus forcing reallocations and copying. Boo!
  2. Eliminate unnecessary resizes from encodeUtf8.

    We had been performing a resize any time that (a) we had data to write
    and (b) we got to within 4 bytes of filling the target bytestring.
    This was safe, but suboptimal, as it meant that in the common case of
    encoding ASCII text, we would *always* perform a resize.
    Now, we check the exact number of bytes we need to fit, and resize
    only if they won't fit.  This eliminates resizes for ASCII data, and
    makes them a little less likely for other data.
Commits on Jun 27, 2011
  1. Switch to native code for copying and comparison.

    rename : Data/Text/Unsafe.hs => Data/Text/Unsafe/Base.hs
Commits on Jun 10, 2011
Commits on May 31, 2011
  1. Fix typos.

Commits on May 27, 2011
  1. Fix the Show instance for Builder

Commits on May 21, 2011
  1. @tibbe

    Add low-level combinator writeAtMost

    tibbe authored
    writeAtMost allows for more static bounds check merging using rules,
    at the risk of wasting some buffer space.
  2. @tibbe

    Inline mconcat

    tibbe authored
  3. @tibbe
Commits on May 20, 2011
  1. Merge

  2. Expose Builder.fromString.

Commits on May 18, 2011
  1. Use throwIO instead of throw.

Commits on Mar 18, 2011
  1. @joe6
Commits on Mar 16, 2011
  1. Add decodeUtf8' for lazy Text.

  2. Improve error message.

  3. Add decodeUtf8'.

Commits on Feb 16, 2011
Commits on Feb 1, 2011
  1. Ooops!

  2. Merge

  3. Make some of the low-level internals visible.

    Necessary for people writing e.g. hash functions.
Commits on Jan 29, 2011
  1. Make cons right-associative.

    Requested by Ivan Miljenovic.
Commits on Dec 4, 2010
  1. Add commonPrefixes functions, and make lazy strip{Pre,Suf}fix faster

    The old implemenations of stripPrefix and stripSuffix were placeholders
    with terrible performance, but Sebastiaan Visser asked for them to
    be improved ... so they are.
Commits on Nov 30, 2010
Commits on Nov 8, 2010
  1. Rename partitionBy to partition

Something went wrong with that request. Please try again.