Skip to content

Commit

Permalink
Update the changelog for 0.12.0.0 (#596)
Browse files Browse the repository at this point in the history
* WIP: Update the changelog

* Fix PR links in overflow-checking section

* Changelog: Hide TODOs, add D.B.getLine/hGetLine deprecation
  • Loading branch information
clyring authored Jul 6, 2023
1 parent 4672a57 commit 88f16dc
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 7 deletions.
64 changes: 58 additions & 6 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,64 @@
[0.12.0.0] — Unreleased

* [New sized and/or unsigned variants of `readInt` and `readInteger`](https://github.com/haskell/bytestring/pull/438)
* [`readInt` returns `Nothing`, if the sequence of digits cannot be represented by an `Int`, instead of overflowing silently](https://github.com/haskell/bytestring/pull/309)
* [Remove `zipWith` rewrite rule](https://github.com/haskell/bytestring/pull/387)
* [`ShortByteString` is now a wrapper over boxed `Data.Array.Byte.ByteArray` instead of unboxed `ByteArray#` directly](https://github.com/haskell/bytestring/pull/410)
* [`fromListN` from `instance IsList ShortByteString` throws an exception if the first argument does not match the length of the second instead of silent ignore](https://github.com/haskell/bytestring/pull/410)
* __Breaking Changes__:
* [`readInt` returns `Nothing`, if the sequence of digits cannot be represented by an `Int`, instead of overflowing silently](https://github.com/haskell/bytestring/pull/309)
* [Remove `zipWith` rewrite rule](https://github.com/haskell/bytestring/pull/387)
* [`ShortByteString` is now a wrapper around `Data.Array.Byte.ByteArray` instead of `ByteArray#` directly](https://github.com/haskell/bytestring/pull/410)
* As a compatibility measure, `SBS` remains available as a pattern synonym.
* The compatibility package `data-array-byte` is used when `base` does not provide `Data.Array.Byte`.
* [`fromListN` from `instance IsList ShortByteString` now throws an exception if the first argument does not match the length of the second](https://github.com/haskell/bytestring/pull/410)
* Previously, it would ignore the first argument entirely.
* Bug fixes:
* Size-related calculations are more resistant to `Int` overflow in the following places:
* [`Data.ByteString.intercalate`](https://github.com/haskell/bytestring/pull/468)
* [`stimes @StrictByteString`](https://github.com/haskell/bytestring/pull/443)
* [`Data.ByteString.Short.concat`](https://github.com/haskell/bytestring/pull/443)
* [`Data.ByteString.Short.append`](https://github.com/haskell/bytestring/pull/443)
<!-- TODO: Some other `ShortByteString` functions are probably still
susceptible to bad behavior on `Int` overflow in edge cases;
`D.B.Short.Internal.create` does not check for negative size,
unlike its `StrictByteString` counterpart.
-->
* API additions:
* [New sized and/or unsigned variants of `readInt` and `readInteger`](https://github.com/haskell/bytestring/pull/438)
* [`Data.ByteString.Internal` now provides `SizeOverflowException`, `overflowError`, and `checkedMultiply`](https://github.com/haskell/bytestring/pull/443)
* Deprecations:
* `Data.ByteString.getLine`: prefer `Data.ByteString.Char8.getLine`
* `Data.ByteString.hGetLine`: prefer `Data.ByteString.Char8.hGetLine`
<!--
* Performance improvements:
* Miscellaneous:
* Internal stuff:
-->


[0.12.0.0]: https://github.com/haskell/bytestring/compare/0.11.5.0...0.12.0.0

[0.11.5.0] — Unreleased

* Bug fixes:
* [Fix multiple bugs with ASCII blocks in the SIMD implementations for `isValidUtf8`](https://github.com/haskell/bytestring/pull/582)
* [Prevent unsound optimizations with the `Data.ByteString.create*` family of functions](https://github.com/haskell/bytestring/pull/580)
* API additions:
* [`Data.ByteString.Internal` now provides `mkDeferredByteString` and `deferForeignPtrAvailability`](https://github.com/haskell/bytestring/pull/580)
* Deprecations:
* `Data.ByteString.Internal.memcpy`: prefer `Foreign.Marshal.Utils.copyBytes`
* `Data.ByteString.Internal.memset`: prefer `Foreign.Marshal.Utils.fillBytes`
* Performance improvements:
* [Many functions returning `StrictByteString` can now return their results unboxed](https://github.com/haskell/bytestring/pull/580)
* [Dead branches removed from `Lazy.toStrict`](https://github.com/haskell/bytestring/pull/590)
* [`Builder.toLazyByteString` re-uses under-filled buffers after copying their contents](https://github.com/haskell/bytestring/pull/581)
* Miscellaneous:
* [Minor benchmarking improvements](https://github.com/haskell/bytestring/pull/577)
<!--
* Internal stuff:
* Various CI tweaks ([1](https://github.com/haskell/bytestring/pull/571), [2](https://github.com/haskell/bytestring/pull/565), [3](https://github.com/haskell/bytestring/pull/583), [4](https://github.com/haskell/bytestring/pull/584))
* [`accursedUnutterablePerformIO`'s trail of destruction extended](https://github.com/haskell/bytestring/pull/579)
* [Add type signatures for subfunction of `buildStepToCIOS`](https://github.com/haskell/bytestring/pull/586)
* [`foldl'`-related import list tweaks](https://github.com/haskell/bytestring/pull/585)
-->

[0.12.0.0]: https://github.com/haskell/bytestring/compare/0.11.4.0...0.12.0.0
[0.11.5.0]: https://github.com/haskell/bytestring/compare/0.11.4.0...0.11.5.0

[0.11.4.0] — January 2023

Expand Down
2 changes: 1 addition & 1 deletion bytestring.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: bytestring
Version: 0.11.3.1
Version: 0.12.0.0
Synopsis: Fast, compact, strict and lazy byte strings with a list interface
Description:
An efficient compact, immutable byte string type (both strict and lazy)
Expand Down

0 comments on commit 88f16dc

Please sign in to comment.