Subject: CVS commit: wip/hs-text
From: Ryosuke Moro
Date: 2013-09-14 02:27:21
Message id: E1VKdi6-00077V-PZ@sfs-ml-3.v29.ch3.sourceforge.com

Log Message:
Update to 0.11.3.1

changes:
0.11.3.1
  - Make Data.Text.Unsafe public, bump version

0.11.3.0
  - Drop last vestige of restreamUtf8
  - Add a copy function
    This fixes https://github.com/bos/text/issues/48
  - Drop restreamUtf8 function that is no longer used \ 
(https://github.com/bos/text/issues/44)
  - Fix printing of hex Integers (https://github.com/bos/text/issues/47)
  - Replace the few last uses of div with quot
  - Undo an overflow bug I introduced with quotRem
  - Handle Int8 overflow
  - Compare Show instance performance
  - Shave off another 6ns for negative integers with quotRem
  - Replace uses of quot and rem with quotRem
    Astonishingly (at least to me), this improves performance by almost 30% for \ 
large integers.
  - Backport integer builder benchmarks
  - Switch to a faster decimal algorithm
    This is about 25% faster than its predecessor for large numbers.
  - Benchmark some bigger numbers
  - Backed out changeset bb9a0e19421e, since it was slow
  - A more straightforward (and slower) countDigits
    This is a few percent slower than the tail-recursive version for numbers of \ 
more than one digit.
  - Replace countDigits with a faster, more complex version
    This is taken from Andrei's "Three Optimization Tips for C++" post:
    \ 
https://www.facebook.com/notes/facebook-engineering/three-optimization-tips-for-c/10151361643253920
    It improves performance by up to 15%.
  - Replace a use of div with quot
  - Add LLVM support for benchmarks
  - Update some comments and whitespace
  - Cast to widest fixed integer to avoid truncation trouble
  - Write straight into the dest buffer
  - Float ensureFree way out
  - Add a countDigits function
  - Refactor Builder into Builder and Builder.Internal modules
    rename : Data/Text/Lazy/Builder.hs => Data/Text/Lazy/Builder/Internal.hs
  - Use unsafeDupablePerformIO where possible
    unsafeDupablePerformIO is much faster than unsafePerformIO and can be
    used safely as long as the underlying operation is pure and we're fine
    risking duplicating it in a multi-core scenario. unsafeDupablePerformIO
    helps performance a lot on short string where the overhead of
    unsafePerformIO dominates.
  - Add benchmarks for decodeUtf8'
    Also make it possible to run the Pure benchmark with a very short input
    string. This lets us test the constant overheads in functions, such as
    the one added by unsafePerformIO in decodeUtf8.
  - Document internal units and representation
  - Try to sort out benchmark build with GHC 7.6
  - Fix benchmarks with older bytestring'
  - Fix test build with older bytestring
  - Ensure that an encoding error handler's result is safe
  - Get in-place tests working "properly"
  - Merge pull request #18 from hvr/pull-req-16
    Add new `Data.Text.Encoding.decodeLatin1` ISO-8859-1 decoding function
  - Merge pull request #36 from deian/master
    Mark top-level modules Trustworthy
  - Turn one error into a CAF
  - Make streaming cons strict in its first argument
  - Drop some more overhead from unstreamChunks
  - First of many CAFs to be NOINLINEd :-(
  - When unstreaming, we know the first chunk is not empty
  - Lazy Text: reduce memory allocation during unstreaming
  - A few simple bang patterns help performance a little
  - Merge
  - Optimize latin1-to-UTF16 C-implementation by using 32-bit loads
  - Add `Data.Text.Lazy.Encoding.decodeLatin1` ISO-8859-1 decoding function
    See \ 
https://github.com/bos/text/commit/7c06306bd5b7382cb101f8632b5a1fc50697fe94 for \ 
more information
  - Add new `Data.Text.Encoding.decodeLatin1` ISO-8859-1 decoding function
    This has about an order of magnitude lower runtime and/or call-overhead as
    compared to the more generic `text-icu` approach, e.g. according to criterion
    with GHC 7.4.1 on Linux/x86_64:
	 * 12 times faster for empty input strings,
	 * 6 times faster for 16-byte strings, and
	 * 3 times faster for 1024-byte strings.
    `decodeLatin1` is also faster compared to using `decodeUtf8` for plain ASCII:
	 * 2 times faster for 16-byte input strings,
	 * ~40% faster for 1024-byte strings.
  - nits
  - kill PatternSignatures warning
  - Top-level interfaces are safe, marked trustworthy
  - Fix documentation for hGetChunk
  - Hoist out duplicated catchError definitions :-(
  - Merge
  - Redefine pack to fuse better

Files:
RevisionActionfile
1.9modifywip/hs-text/Makefile
1.5modifywip/hs-text/PLIST
1.6modifywip/hs-text/buildlink3.mk
1.8modifywip/hs-text/distinfo