Changelog for bytestring-0.11.3.0
0.11.3.0 — February 2022
- Enhance
ShortByteStringAPI- Add
all,any,append,break,breakEnd,breakSubstring,concat,cons,count,drop,dropEnd,dropWhile,dropWhileEnd,elem,elemIndex,elemIndices,filter,find,findIndex,findIndices,foldl',foldl,foldl1',foldl1,foldr',foldr,foldr1',foldr1,head,init,intercalate,isInfixOf,isPrefixOf,isSuffixOf,last,map,partition,replicate,reverse,singleton,snoc,span,spanEnd,split,splitAt,splitWith,stripPrefix,stripSuffix,tail,take,takeEnd,takeWhile,takeWhileEnd,uncons,unfoldr,unfoldrN,unsnoctoData.ByteString.Short.
- Add
- Add
Data.ByteString.Short.isValidUtf8 - Use safe
isValidUtf8for large inputs - Make
unlineslazier - Improve performance of
unlines - Make
singletonreturn a slice of a static buffer - Improve performance of
intercalate
0.11.2.0 — December 2021
- Add
Data.ByteString.isValidUtf8 - Speed up
floatDecanddoubleDecusing the Ryu algorithmData.ByteString.Builder.RealFloatoffers additional custom formatters for floating point numbers.
- Add
StrictByteStringandLazyByteStringtype aliases - Add
foldr',foldr1',scanl1,scanr,scanr1toData.ByteString.Lazy{,.Char8} - Add
takeEnd,dropEnd,takeWhileEnd,dropWhileEnd,spanEnd,breakEndtoData.ByteString.Lazy{,.Char8} - Add
Data.ByteString.Builder.writeFileto writeBuilderto file directly - Add
Data.ByteString.{from,to}FilePathfor encoding-aware conversions - Add
Liftinstances for all flavors ofByteString - Add
HasCallStackfor partial functions - Define
foldl,foldl',foldr,foldr',mapAccumL,mapAccumR,scanl,scanrandfilterwith one argument less to allow more inlining - Speed up internal loop in
unfoldrN - Speed up
countwith SSE and AVX instructions - Improve performance of certain
Builders by using a static table for Base16 - Use
unsafeWithForeignPtrwhenever possible - Remove
integer-simpleflag - Remove misleading mentions of fusion
0.11.1.0 — February 2021
- Add
Data.ByteString.Char8.findIndexEndandData.ByteString.Lazy.Char8.{elemIndexEnd,findIndexEnd,unzip} - Expose
ShortByteStringconstructor fromData.ByteString.Short - Add
compareLengthfunction, which is lazier than comparison of lengths - Add strict
takeEndanddropEnd - Expose
packZipWithto zip twoByteString - Add
instance Show Builder - Improve lazy
packto carry fewer arguments in the inner loop - Improve
map,findIndexandfindIndexEndto carry fewer arguments in the inner loop - Improve lazy
{take,drop}While,breakandgroup{,By}to carry fewer arguments in the inner loop - Speed up
intersperseusing SSE2 instructions fromShortdoes not reallocate its argument, if it is pinned- Speed up
wordsusing a faster test for spaces - Implement
stimesmore 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
PSconstructor 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 usePSand still support GHC < 8.0.
- The old
- Fill
ForeignPtrContentsofnullForeignPtrwithFinalPtrinstead of a bottom - Remove deprecated functions
findSubstringandfindSubstrings - 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
indexMaybeand 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}StrictfromData.ByteString - Remove deprecated modules and functions
- Use
Data.ByteString.Builder{,.Extra}instead ofData.ByteString.Lazy.Builder{,.ASCII,.Extras}. - Use
Data.ByteString.Char8.{,h}putStrLninstead ofData.ByteString.{,h}putStrLnandData.ByteString.Lazy.Char8.putStrLninstead ofData.ByteString.Char8.putStrLn. - Use
Data.ByteString.break (== x)instead ofData.ByteString.breakByte x. - Use
Data.ByteString.Internal.accursedUnutterablePerformIOinstead 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
takeWhileEndanddropWhileEndtoData.ByteStringandData.ByteString.Char8, and adddropSpaceandstriptoData.ByteString.Char8 - Add
findIndexEndtoData.ByteStringandData.ByteString.Lazy - Add
partitiontoData.ByteString.Char8andData.ByteString.Lazy.Char8 - Add
IsListinstances for strict and lazyByteStringand forShortByteString - Add
createUptoN'andunsafeCreateUptoN'toData.ByteString.Internal - Add
boundedPrimtoData.ByteString.Builder.Prim.Internaland deprecateboudedPrim - Deprecate the
Data.ByteString.Lazy.BuilderandData.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
breakSubstringandfindSubstring - Improve the performance of
partitionfor lazy and strict bytestrings - Added
stripPrefixandstripSuffixfor 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