Path to this page:
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: