|
| 1 | +[0.13.0.0] — circa 2026-2027 |
| 2 | + |
| 3 | +* __Breaking Changes__: |
| 4 | + * [`Data.Data.dataTypeOf` for `StrictByteString` and `LazyByteString` now returns a `DataType` that uses `AlgRep` instead of `NoRep`.](https://github.com/haskell/bytestring/pull/614) |
| 5 | + * This allows utilities like `syb:Data.Generics.Text.gread` to be meaningfully used at these types containing `ByteString`s. |
| 6 | +<!-- |
| 7 | +* Bug fixes: |
| 8 | +* API additions and behavior changes: |
| 9 | +* Deprecations: |
| 10 | +* Performance improvements: |
| 11 | +* Miscellaneous: |
| 12 | +* Internal stuff: |
| 13 | +--> |
| 14 | + |
| 15 | +[0.12.1.0] — February 2024 |
| 16 | + |
| 17 | +* [Provisional support has been added for using `bytestring` with GHC's JavaScript back-end.](https://github.com/haskell/bytestring/pull/631) |
| 18 | + * 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). |
| 19 | + * 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`. |
| 20 | + * 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. |
| 21 | +* Bug fixes: |
| 22 | + * [`stimes 0 sbs :: ShortByteString` now returns the empty `ShortByteString` instead of throwing an exception](https://github.com/haskell/bytestring/pull/611) |
| 23 | + * [`stimes 0 b :: Builder` now returns the empty `Builder` instead of throwing an exception](https://github.com/haskell/bytestring/pull/611) |
| 24 | + * [Several alignment-related bug fixes](https://github.com/haskell/bytestring/pull/587) |
| 25 | + * [Fix a bug in `isValidUtf8`](https://github.com/haskell/bytestring/pull/621) |
| 26 | + * [`sconcat @ShortByteString` is no longer terribly inefficient](https://github.com/haskell/bytestring/pull/650) |
| 27 | + * [Fix the type on the foreign import used for `Data.ByteString.Short.elemIndex`](https://github.com/haskell/bytestring/pull/661) |
| 28 | + * [Ensure that the result of `fromShort` is protected by `mkDeferredByteString`](https://github.com/haskell/bytestring/pull/662) |
| 29 | +* Behavior changes: |
| 30 | + * [The `Data.Data.Data` instances for `StrictByteString` and `LazyByteString` have been changed:](https://github.com/haskell/bytestring/pull/614) |
| 31 | + * `toConstr` now returns the a `pack` pseudo-constructor instead of throwing an exception. |
| 32 | + * Due to this pseudo-constructor, `gunfold` can now be meaningfully used at these types. (Previously, it would always raise an exception.) |
| 33 | + * These changes allow `syb:Data.Generics.Text.gshow` to be meaningfully used at types containing `ByteString`s. |
| 34 | + * [A derived `instance Generic ShortByteString` has been added.](https://github.com/haskell/bytestring/pull/662) |
| 35 | + * [`sconcat @Builder` is now lazy in the tail of its input](https://github.com/haskell/bytestring/pull/650) |
| 36 | +* Deprecations: |
| 37 | + * [`Data.ByteString.Builder.Prim.Internal.storableToF`](https://github.com/haskell/bytestring/pull/649) |
| 38 | +* Performance improvements: |
| 39 | + * 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)) |
| 40 | + * [Hexadecimal encoding suffers one indirection fewer](https://github.com/haskell/bytestring/pull/624) |
| 41 | + * [`Data.ByteString.Lazy.takeEnd` is somewhat faster](https://github.com/haskell/bytestring/pull/629) |
| 42 | + * [`Data.ByteString.Lazy.dropEnd` is much faster](https://github.com/haskell/bytestring/pull/629) |
| 43 | +* Miscellaneous: |
| 44 | + * 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)) |
| 45 | + * [Eta-expand `Data.ByteString.Builder.Internal.empty`](https://github.com/haskell/bytestring/pull/616) |
| 46 | + * 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. |
| 47 | +<!-- |
| 48 | +* Internal stuff: |
| 49 | + * [Delete cabal.project](https://github.com/haskell/bytestring/pull/613) |
| 50 | + * Remove some non-exposed data declarations from internal modules: |
| 51 | + * [`Data.ByteString.Short.Internal.BA`](https://github.com/haskell/bytestring/pull/615) |
| 52 | + * [`Data.ByteString.Short.Internal.MBA`](https://github.com/haskell/bytestring/pull/617) |
| 53 | + * Various CI tweaks ([1](https://github.com/haskell/bytestring/pull/626), [2](https://github.com/haskell/bytestring/pull/651)) |
| 54 | + * [Use `NonEmpty` to prune dead code in `integerDec`](https://github.com/haskell/bytestring/pull/655) |
| 55 | + * This might have a performance impact due to result unboxing (CPR). |
| 56 | + * [Consolidate internal CPP for byte-order/endianness](https://github.com/haskell/bytestring/pull/659) |
| 57 | + * [Remove remaining uses of FFI under -fpure-haskell](https://github.com/haskell/bytestring/pull/660) |
| 58 | + * Doesn't warrant a separate visible changelog entry from #631. |
| 59 | +--> |
| 60 | + |
| 61 | +[0.12.1.0]: https://github.com/haskell/bytestring/compare/0.12.0.2...0.12.1.0 |
| 62 | + |
1 | 63 | [0.12.0.2] — August 2023 |
2 | 64 |
|
3 | 65 | * Bug fixes: |
|
36 | 98 | * Deprecations: |
37 | 99 | * `Data.ByteString.getLine`: prefer `Data.ByteString.Char8.getLine` |
38 | 100 | * `Data.ByteString.hGetLine`: prefer `Data.ByteString.Char8.hGetLine` |
39 | | -<!-- |
40 | | -* Performance improvements: |
41 | | -* Miscellaneous: |
42 | | -* Internal stuff: |
43 | | ---> |
44 | 101 |
|
45 | 102 |
|
46 | 103 | [0.12.0.0]: https://github.com/haskell/bytestring/compare/0.11.5.0...0.12.0.0 |
|
0 commit comments