@@ -3,60 +3,79 @@
33<!-- See rendered changelog at https://streamly.composewell.com -->
44## 0.9.0 (Unreleased)
55
6−### Major Changes
6+### Package split
77
88`streamly` package is split into two packages, (1) `streamly-core` that
99has only GHC boot library depdendecies, and (2) `streamly` that contains
10−higher level operations with additional dependencies.
11−
12−### Breaking Changes
10+higher level operations (including concurrent ones) with additional
11+dependencies. Make sure you add a dependency on `streamly-core` to keep old
12+code working.
1313
14−* Moved the following modules to the `streamly-core` package:
14+* Moved the following modules from `streamly` package to the
15+ `streamly-core` package:
1516 * Streamly.Console.Stdio
1617 * Streamly.Data.Fold
1718 * Streamly.Data.Unfold
1819 * Streamly.FileSystem.Handle
1920 * Streamly.Unicode.Stream
20−* The unboxed arrays now require `Unbox` instead of `Storable` for the stored
21− type. The `Unbox` typeclass can be found in `Streamly.Data.Array`.
22−* Remove the MonadBase instance of the SerialT type.
23−* In `Streamly.Data.Unfold`, signatures changed:
21+
22+### Breaking Changes
23+
24+* Unboxed arrays now require `Unbox` constraint instead of `Storable`.
25+ The `Unbox` typeclass can be imported from `Streamly.Data.Array`. You
26+ can use generic deriving to derive Unbox instances.
27+* Stream type in all modules has been changed to the new `Stream` type
28+ replacing the existing `IsStream t` or `SerialT` types. Use `fromStream`,
29+ `toStream` from `Streamly.Prelude` module to adapt the types.
30+* Signatures changed in `Streamly.Data.Unfold`:
2431 * `fromStream`
2532 * `replicateM`
2633
34+### Major Changes
35+
36+`Streamly.Prelude` module has been deprecated, equivalent
37+functionality is covered by the `Streamly.Data.Stream`,
38+`Streamly.Data.Stream.Prelude`, and `Streamly.Data.Fold` modules. The
39+new modules use a monomorphic `Stream` type instead of the polymorphic
40+`IsStream t` type.
41+
42+`Streamly.Data.Stream` module and the `Stream` type are meant for
43+writing high-performance fused pipelines not involving explicit
44+recursion. For writing code that may require recursive function calls,
45+`Streamly.Data.Stream.StreamK` module and the `StreamK` type have been
46+added which provide a CPS based stream implementation. `Stream` and
47+`StreamK` types can be easily interconverted.
48+
49+The old code can be adapted to use the new modules with some changes.
50+See the [upgrade guide](/docs/User/ProjectRelated/Upgrading.md) for more
51+details on how to adapt your existing code to the new release.
52+
2753### Enhancements
2854
2955* Added the following new modules to the `streamly-core` package:
56+ * Streamly.Data.Array
3057 * Streamly.Data.Array.Generic
3158 * Streamly.Data.MutArray
3259 * Streamly.Data.MutArray.Generic
3360 * Streamly.Data.Parser
61+ * Streamly.Data.ParserK
62+ * Streamly.Data.Stream
63+ * Streamly.Data.StreamK
3464 * Streamly.FileSystem.Dir
3565 * Streamly.FileSystem.File
36− * Streamly.Unicode.String
3766 * Streamly.Unicode.Parser
67+ * Streamly.Unicode.String
3868* Added the following new modules to the `streamly` package:
3969 * Streamly.Data.Stream.MkType
4070 * Streamly.Data.Stream.Prelude
4171
4272### Deprecations
4373
44−* `Streamly.Data.Array.Foreign` renamed and moved to `Streamly.Data.Array` in
45− `streamly-core` package. Corresponding internal modules are renamed
46− accordingly.
47−* In `Streamly.Data.Fold`:
48− * `head` renamed to `one`.
49− * `serialWith` renamed to `splitWith`.
50− * `variance`, and `stdDev` deprecated. Please use the
51− `streamly-statistics` package instead.
52− * `chunksOf` is renamed to `groupsOf`.
53−* In `Streamly.Network.Socket`:
54− * `readWithBufferOf` renamed to `readWith`
55− * `readChunksWithBufferOf` renamed to `readChunksWith`
56− * `writeWithBufferOf` renamed to `writeWith`
57− * `writeChunksWithBufferOf` renamed to `writeChunksWith`
5874* Remove support for GHC 8.4.*
5975
76+Several modules and functions have been deprecated, equivalent modules or
77+functions are suggested in the deprecation warning messages by the compiler.
78+
6079### Internal module changes
6180
6281If you cannot find an internal module that you were using, it may have