Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare changelog for 0.12.1.0 #658

Merged
merged 7 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 62 additions & 5 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,65 @@
[0.13.0.0] — circa 2026-2027

* __Breaking Changes__:
* [`Data.Data.dataTypeOf` for `StrictByteString` and `LazyByteString` now returns a `DataType` that uses `AlgRep` instead of `NoRep`.](https://github.com/haskell/bytestring/pull/614)
* This allows utilities like `syb:Data.Generics.Text.gread` to be meaningfully used at these types containing `ByteString`s.
<!--
* Bug fixes:
* API additions and behavior changes:
* Deprecations:
* Performance improvements:
* Miscellaneous:
* Internal stuff:
-->

[0.12.1.0] — February 2024

* [Provisional support has been added for using `bytestring` with GHC's JavaScript back-end.](https://github.com/haskell/bytestring/pull/631)
* This support is relatively un-tested and un-optimised. There may be bugs! Please report any you discover to [`bytestring`'s issue tracker](https://github.com/haskell/bytestring/issues).
* The JavaScript back-end's limited support for the Haskell-C foreign function interface would previously result in many operations failing with errors like `ReferenceError: h$fps_count is not defined`.
* The new `pure-haskell` package flag allows the new fallback Haskell implementations (used to support the JavaScript backend) to be used on most other platforms as well.
* Bug fixes:
* [`stimes 0 sbs :: ShortByteString` now returns the empty `ShortByteString` instead of throwing an exception](https://github.com/haskell/bytestring/pull/611)
* [`stimes 0 b :: Builder` now returns the empty `Builder` instead of throwing an exception](https://github.com/haskell/bytestring/pull/611)
* [Several alignment-related bug fixes](https://github.com/haskell/bytestring/pull/587)
* [Fix a bug in `isValidUtf8`](https://github.com/haskell/bytestring/pull/621)
* [`sconcat @ShortByteString` is no longer terribly inefficient](https://github.com/haskell/bytestring/pull/650)
* [Fix the type on the foreign import used for `Data.ByteString.Short.elemIndex`](https://github.com/haskell/bytestring/pull/661)
* [Ensure that the result of `fromShort` is protected by `mkDeferredByteString`](https://github.com/haskell/bytestring/pull/662)
* Behavior changes:
* [The `Data.Data.Data` instances for `StrictByteString` and `LazyByteString` have been changed:](https://github.com/haskell/bytestring/pull/614)
* `toConstr` now returns the a `pack` pseudo-constructor instead of throwing an exception.
* Due to this pseudo-constructor, `gunfold` can now be meaningfully used at these types. (Previously, it would always raise an exception.)
* These changes allow `syb:Data.Generics.Text.gshow` to be meaningfully used at types containing `ByteString`s.
* [A derived `instance Generic ShortByteString` has been added.](https://github.com/haskell/bytestring/pull/662)
* [`sconcat @Builder` is now lazy in the tail of its input](https://github.com/haskell/bytestring/pull/650)
* Deprecations:
* [`Data.ByteString.Builder.Prim.Internal.storableToF`](https://github.com/haskell/bytestring/pull/649)
* Performance improvements:
* Various raw-binary `Builder` primitives like `intHost` or `word32BE` are much less inefficient on architectures not known to support unaligned writes. ([1](https://github.com/haskell/bytestring/pull/587), [2](https://github.com/haskell/bytestring/pull/645))
* [Hexadecimal encoding suffers one indirection fewer](https://github.com/haskell/bytestring/pull/624)
* [`Data.ByteString.Lazy.takeEnd` is somewhat faster](https://github.com/haskell/bytestring/pull/629)
* [`Data.ByteString.Lazy.dropEnd` is much faster](https://github.com/haskell/bytestring/pull/629)
* Miscellaneous:
* Various documentation improvements ([1](https://github.com/haskell/bytestring/pull/628), [2](https://github.com/haskell/bytestring/pull/609), [3](https://github.com/haskell/bytestring/pull/612), [4](https://github.com/haskell/bytestring/pull/623), [5](https://github.com/haskell/bytestring/pull/654))
* [Eta-expand `Data.ByteString.Builder.Internal.empty`](https://github.com/haskell/bytestring/pull/616)
* This can variously help or hurt performance; it undoes the performance changes caused by [CLC proposal 132](https://github.com/haskell/core-libraries-committee/issues/132) with ghc-9.8 and restores the baseline performance seen with older GHCs.
<!--
* Internal stuff:
* [Delete cabal.project](https://github.com/haskell/bytestring/pull/613)
* Remove some non-exposed data declarations from internal modules:
* [`Data.ByteString.Short.Internal.BA`](https://github.com/haskell/bytestring/pull/615)
* [`Data.ByteString.Short.Internal.MBA`](https://github.com/haskell/bytestring/pull/617)
* Various CI tweaks ([1](https://github.com/haskell/bytestring/pull/626), [2](https://github.com/haskell/bytestring/pull/651))
* [Use `NonEmpty` to prune dead code in `integerDec`](https://github.com/haskell/bytestring/pull/655)
* This might have a performance impact due to result unboxing (CPR).
* [Consolidate internal CPP for byte-order/endianness](https://github.com/haskell/bytestring/pull/659)
* [Remove remaining uses of FFI under -fpure-haskell](https://github.com/haskell/bytestring/pull/660)
* Doesn't warrant a separate visible changelog entry from #631.
-->

[0.12.1.0]: https://github.com/haskell/bytestring/compare/0.12.0.2...0.12.1.0

[0.12.0.2] — August 2023

* Bug fixes:
Expand Down Expand Up @@ -36,11 +98,6 @@
* 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
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.12.0.2
Version: 0.13.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
Loading