Changelog for bytestring-0.11.1.0
0.11.1.0 — February 2021
- Add
Data.ByteString.Char8.findIndexEnd
andData.ByteString.Lazy.Char8.{elemIndexEnd,findIndexEnd,unzip}
- Expose
ShortByteString
constructor fromData.ByteString.Short
- Add
compareLength
function, which is lazier than comparison of lengths - Add strict
takeEnd
anddropEnd
- Expose
packZipWith
to zip twoByteString
- Add
instance Show Builder
- Improve lazy
pack
to carry fewer arguments in the inner loop - Improve
map
,findIndex
andfindIndexEnd
to carry fewer arguments in the inner loop - Improve lazy
{take,drop}While
,break
andgroup{,By}
to carry fewer arguments in the inner loop - Speed up
intersperse
using SSE2 instructions fromShort
does not reallocate its argument, if it is pinned- Speed up
words
using a faster test for spaces - Implement
stimes
more efficiently than default definition
0.10.12.1 – January 2021
0.11.0.0 — September 2020
- Change internal representation of
ByteString
, removing offset- The old
PS
constructor has been turned into a pattern synonym that is available with GHC >= 8.0 for backwards compatibility. Consider addingif !impl(ghc >=8.0) { build-depends: bytestring < 0.11 }
to packages, which usePS
and still support GHC < 8.0.
- The old
- Fill
ForeignPtrContents
ofnullForeignPtr
withFinalPtr
instead of a bottom - Remove deprecated functions
findSubstring
andfindSubstrings
- Speed up sorting of short strings
- Improve handling of literal strings in
Data.ByteString.Builder
- Compute length at compile time for literal strings
- This improves optimization opportunities for functions that scrutinize the length of a
ByteString
.
- This improves optimization opportunities for functions that scrutinize the length of a
- Add
indexMaybe
and synonym(!?)
for indexing that returnsMaybe
- Add rewrite rules for
{take,drop}While ({=,/}= x)
- Add rewrite rules for
any (== x)
andall (/= x)
- Add rewrite rules for
findInd{ex,ices} (== x)
- Improve folds to pass fewer arguments on each recursive invocation
- Improve performance of
findIndices
- Re-export
Data.ByteString.Lazy.{from,to}Strict
fromData.ByteString
- Remove deprecated modules and functions
- Use
Data.ByteString.Builder{,.Extra}
instead ofData.ByteString.Lazy.Builder{,.ASCII,.Extras}
. - Use
Data.ByteString.Char8.{,h}putStrLn
instead ofData.ByteString.{,h}putStrLn
andData.ByteString.Lazy.Char8.putStrLn
instead ofData.ByteString.Char8.putStrLn
. - Use
Data.ByteString.break (== x)
instead ofData.ByteString.breakByte x
. - Use
Data.ByteString.Internal.accursedUnutterablePerformIO
instead ofData.ByteString.Internal.inlinePerformIO
.
- Use
0.10.12.0 – August 2020
- Note: There are several breaking changes planned to be included in v0.11. Please ensure that your packages have appropriate upper bounds on bytestring, in order to minimize avoidable breakage.
- Add
takeWhileEnd
anddropWhileEnd
toData.ByteString
andData.ByteString.Char8
, and adddropSpace
andstrip
toData.ByteString.Char8
- Add
findIndexEnd
toData.ByteString
andData.ByteString.Lazy
- Add
partition
toData.ByteString.Char8
andData.ByteString.Lazy.Char8
- Add
IsList
instances for strict and lazyByteString
and forShortByteString
- Add
createUpToN'
andunsafeCreateUpToN'
toData.ByteString.Internal
- Add
boundedPrim
toData.ByteString.Builder.Prim.Internal
and deprecateboudedPrim
- Deprecate the
Data.ByteString.Lazy.Builder
andData.ByteString.Lazy.Builder.{ASCII,Extras}
modules - Fix documented complexity of
Data.ByteString.Lazy.length
- Assorted documentation fixes
0.10.10.1 – June 2020
- Fix off-by-one infinite loop in primMapByteStringBounded (#203)
- Don't perform unaligned writes when it isn't known to be safe (#133)
- Improve the performance of sconcat for lazy and strict bytestrings (#142)
- Document inadvertent 0.10.6.0 behaviour change in findSubstrings
- Fix benchmark builds (#52)
- Documentation fixes
- Test fixes
0.10.10.0 July 2019 duncan+haskell@dcoutts.me.uk July 2019
- Build with GHC 8.8, and tests with QC 2.10+
- Add conversions between ShortByteString and CString (#126)
- Documentation fixes (#65, #118, #144, #150, #152, #172)
- Resolve potential copyright issue with test data (#165)
0.10.8.2 Duncan Coutts duncan@community.haskell.org Feb 2017
- Make readFile work for files with no size like /dev/null
- Extend the cases in which concat and toStrict can avoid copying data
- Fix building with ghc-7.0
- Minor documentation improvements
- Internal code cleanups
0.10.8.1 Duncan Coutts duncan@community.haskell.org May 2016
- Fix Builder output on big-endian architectures
- Fix building with ghc-7.6 and older
0.10.8.0 Duncan Coutts duncan@community.haskell.org May 2016
- Use Rabin-Karp substring search for
breakSubstring
andfindSubstring
- Improve the performance of
partition
for lazy and strict bytestrings - Added
stripPrefix
andstripSuffix
for lazy and strict bytestrings - Fix building with ghc 8.0 & base 4.9 (Semigroup etc)
0.10.6.0 Duncan Coutts duncan@community.haskell.org Mar 2015
- Rename inlinePerformIO so people don't misuse it
- Fix a corner case in unfoldrN
- Export isSuffixOf from D.B.Lazy.Char8
- Add D.B.Lazy.elemIndexEnd
- Fix readFile for files with incorrectly reported file size
- Fix for builder performance with ghc 7.10
- Fix building with ghc 6.12
0.10.4.1 Duncan Coutts duncan@community.haskell.org Nov 2014
- Fix integer overflow in concatenation functions
- Fix strictness of lazy bytestring foldl'
- Numerous minor documentation fixes
- Various testsuite improvements