|
1 | 1 | ### 4.0.0 |
| 2 | + |
| 3 | +* **Breaking:** `AsyncSeq<'T>` is now `System.Collections.Generic.IAsyncEnumerable<'T>` (the BCL type). `ofAsyncEnum` and `toAsyncEnum` are now identity functions and marked `[<Obsolete>]`. Code that directly calls `.GetEnumerator()`/`.MoveNext()` must switch to `.GetAsyncEnumerator(ct)`/`.MoveNextAsync()` ([#230](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/230), [PR #231](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/231)). |
| 4 | +* Added `YieldFrom` overload for `seq<'T>` in `asyncSeq` computation expression — `yield! items` now works when `items` is a `seq<'T>` ([#123](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/123), [PR #236](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/236)). |
| 5 | +* Added `[<CompilerMessage>]` warning to `groupBy` and `groupByAsync` to alert users that results must be consumed with a parallel combinator to avoid deadlock ([#125](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/125), [PR #235](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/235)). |
2 | 6 | * Added `AsyncSeq.mapAsyncUnorderedParallelThrottled` for throttled unordered parallel mapping ([#31](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/31), [PR #225](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/225)). |
3 | 7 | * Fixed `ofAsyncEnum` deadlock on single-threaded runtimes such as Blazor WASM ([#152](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/152), [PR #229](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/229)). |
4 | 8 | * Updated `PackageLicenseExpression` (removed deprecated `PackageLicenseUrl`) and updated `Microsoft.Bcl.AsyncInterfaces` to 10.0.3 ([#168](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/168), [PR #228](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/228)). |
5 | 9 |
|
6 | 10 | ### 3.3.1 |
| 11 | + |
7 | 12 | * Quick summary of changes: |
8 | | - - Performance improvements: optimized `iterAsync` and `iteriAsync`; optimized `collect`, `mapAsync` and `unfoldAsync`; fixed append memory leak (Issue #35). |
9 | | - - Added `mapAsyncUnorderedParallel` for improved parallel performance. |
10 | | - - Added `AsyncSeq.chunkBy` and `AsyncSeq.chunkByAsync` for grouping consecutive elements by key ([#156](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/156), [PR #222](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/222)). |
11 | | - - `AsyncSeq.mergeAll` now accepts `seq<AsyncSeq<'T>>` instead of `list<AsyncSeq<'T>>` for broader compatibility ([#165](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/165), [PR #221](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/221)). |
12 | | - - Set up BenchmarkDotNet for systematic benchmarking; performance benchmarks show measurable improvements (addresses Round 1 & 2 of #190). |
13 | | - - Build/CI updates: configuration and build-step updates. |
| 13 | + * Performance improvements: optimized `iterAsync` and `iteriAsync`; optimized `collect`, `mapAsync` and `unfoldAsync`; fixed append memory leak (Issue #35). |
| 14 | + * Added `mapAsyncUnorderedParallel` for improved parallel performance. |
| 15 | + * Added `AsyncSeq.chunkBy` and `AsyncSeq.chunkByAsync` for grouping consecutive elements by key ([#156](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/156), [PR #222](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/222)). |
| 16 | + * `AsyncSeq.mergeAll` now accepts `seq<AsyncSeq<'T>>` instead of `list<AsyncSeq<'T>>` for broader compatibility ([#165](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/165), [PR #221](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/221)). |
| 17 | + * Set up BenchmarkDotNet for systematic benchmarking; performance benchmarks show measurable improvements (addresses Round 1 & 2 of #190). |
| 18 | + * Build/CI updates: configuration and build-step updates. |
14 | 19 |
|
15 | 20 | ### 3.2.1 |
| 21 | + |
16 | 22 | * Release latest |
17 | 23 |
|
18 | 24 | ### 3.2.0 |
| 25 | + |
19 | 26 | * [Update to Fable 3.0](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/148) |
20 | 27 |
|
21 | 28 | ### 3.1.0 |
22 | | -* Sorting functions https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/126 |
| 29 | + |
| 30 | +* Sorting functions <https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/126> |
23 | 31 |
|
24 | 32 | ### 3.0.5 |
| 33 | + |
25 | 34 | * Update publishing |
26 | 35 |
|
27 | 36 | ### 3.0.4 |
| 37 | + |
28 | 38 | * Restore netstandard2.0 (and thereby .NET Framework 4.6.1+) compatibility |
29 | 39 | * Update build env versions to current recommendations |
30 | 40 | * Adjust to ensure all tests pass and eliminate warnings in vscode (ionide) and visual studio |
|
38 | 48 | * Move to only netstandard 2.1 |
39 | 49 |
|
40 | 50 | ### 2.0.24 - 27.05.2020 |
| 51 | + |
41 | 52 | * Adding ofIQueryable [#112](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/112) |
42 | 53 |
|
43 | 54 | ### 2.0.23 - 29.01.2019 |
| 55 | + |
44 | 56 | * Adding .NET IAsyncEnumerable conversion functions (ofAsyncEnum and toAsyncEnum) [#96](https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/96) |
45 | 57 |
|
46 | 58 | ### 2.0.22 - 29.09.2019 |
| 59 | + |
47 | 60 | * Rename toList and toArray to toListSynchronously and toArraySynchronously |
48 | 61 | * Add ofSeqAsync and concat |
49 | 62 | * Improve parallelism of AsyncSeq.cache |
50 | 63 |
|
51 | 64 | ### 2.0.21 - 28.12.2017 |
| 65 | + |
52 | 66 | * Fix packaging issues |
53 | 67 | * Reference FSharp.Core 4.3 for nestandard builds |
54 | 68 |
|
55 | 69 | ### 2.0.21-alpha02 - 28.12.2017 |
| 70 | + |
56 | 71 | * Fix packaging issues |
57 | 72 | * Reference FSharp.Core 4.3 for nestandard builds |
58 | 73 |
|
59 | 74 | ### 2.0.21-alpha01 - 28.12.2017 |
| 75 | + |
60 | 76 | * Fix packaging issues |
61 | 77 | * Reference FSharp.Core 4.3 for nestandard builds |
62 | 78 |
|
63 | 79 | ### 2.0.20 - 16.12.2017 |
| 80 | + |
64 | 81 | * Target .NET Standard |
65 | 82 |
|
66 | 83 | ### 2.0.19-alpha01 - 22.12.2017 |
| 84 | + |
67 | 85 | * Target .NET Standard |
68 | 86 |
|
69 | 87 | ### 2.0.18 - 14.12.2017 |
| 88 | + |
70 | 89 | * AsyncSeq.mergeAll min-max fairness |
71 | 90 |
|
72 | 91 | ### 2.0.17 - 21.11.2017 |
73 | | -* Improve performance of internal Async.chooseTasks function which improves performance of AsyncSeq.bufferByCountAndTime, etc (https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/73) |
| 92 | + |
| 93 | +* Improve performance of internal Async.chooseTasks function which improves performance of AsyncSeq.bufferByCountAndTime, etc (<https://github.com/fsprojects/FSharp.Control.AsyncSeq/pull/73>) |
74 | 94 |
|
75 | 95 | ### 2.0.16 - 29.09.2017 |
| 96 | + |
76 | 97 | * Fix previous package deployment |
77 | 98 |
|
78 | 99 | ### 2.0.15 - 27.09.2017 |
| 100 | + |
79 | 101 | * NEW: AsyncSeq.bufferByTime |
80 | 102 |
|
81 | 103 | ### 2.0.14 - 27.09.2017 |
| 104 | + |
82 | 105 | * BUG: Fixed head of line blocking in AsyncSeq.mapAsyncParallel |
83 | 106 |
|
84 | 107 | ### 2.0.13 - 26.09.2017 |
| 108 | + |
85 | 109 | * NEW: AsyncSeq.takeWhileInclusive |
86 | 110 | * NEW: AsyncSeq.replicateUntilNoneAsync |
87 | 111 | * NEW: AsyncSeq.iterAsyncParallel |
88 | 112 | * NEW: AsyncSeq.iterAsyncParallelThrottled |
89 | 113 | * BUG: Fixed exception propagation in AsyncSeq.mapAsyncParallel |
90 | 114 |
|
91 | 115 | ### 2.0.12 - 06.04.2017 |
| 116 | + |
92 | 117 | * Fix bug #63 in AsyncSeq.unfold >> AsyncSeq.choose |
93 | 118 |
|
94 | 119 | ### 2.0.11 - 04.03.2017 |
| 120 | + |
95 | 121 | * Fixed bug in AsyncSeq.cache when used by interleaved consumers. |
96 | 122 | * AsyncSeq.zipWithAsyncParallel (and variants) |
97 | 123 |
|
98 | 124 | ### 2.0.10 - 24.11.2016 |
| 125 | + |
99 | 126 | * Improved asyncSeq workflow performance via bindAsync generator (@pragmatrix) |
100 | 127 |
|
101 | 128 | ### 2.0.9 - 27.07.2016 |
| 129 | + |
102 | 130 | * Much improved append performance. |
103 | 131 | * Direct implementation of unfoldAsync as IAsyncEnumerable, with chooseAsync, mapAsync and foldAsync overrides |
104 | 132 |
|
105 | 133 | ### 2.0.8 - 29.03.2016 |
| 134 | + |
106 | 135 | * Add portable7 profile |
107 | 136 |
|
108 | 137 | ### 2.0.3 - 03.12.2015 |
| 138 | + |
109 | 139 | * Fix bug in Async.cache [#33](https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/33) |
110 | 140 |
|
111 | 141 | ### 2.0.2 - 15.10.2015 |
| 142 | + |
112 | 143 | * Fix leak in AsyncSeq.append and other derived generators |
113 | 144 |
|
114 | 145 | ### 2.0.1 - 01.06.2015 |
| 146 | + |
115 | 147 | * Add AsyncSeq.sum, length, contains, exists, forall, tryPick, tryFind |
116 | 148 |
|
117 | 149 | ### 2.0.0 - 28.05.2015 |
| 150 | + |
118 | 151 | * Simplify ofObservableBuffered and toBlockingSeq |
119 | 152 | * Move to IAsyncEnumerable model to support try/finally and try/with |
120 | 153 | * Rename replicate to replicateInfinite |
|
130 | 163 | * Add RequireQualifiedAccess to AsyncSeq |
131 | 164 |
|
132 | 165 | ### 1.15.0 - 30.03.2015 |
| 166 | + |
133 | 167 | * Add AsyncSeq.getIterator (unblocks use of AsyncSeq in FSharpx.Async) |
134 | 168 |
|
135 | 169 | ### 1.14 - 30.03.2015 |
| 170 | + |
136 | 171 | * Cancellable AsyncSeq.toBlockingSeq |
137 | 172 | * Fix AsyncSeq.scanAsync to also return first state |
138 | 173 | * Add a signature file |
139 | | -* AsyncSeq got extracted as separate project and is now a dependency - https://github.com/fsprojects/FSharpx.Async/pull/24 |
| 174 | +* AsyncSeq got extracted as separate project and is now a dependency - <https://github.com/fsprojects/FSharpx.Async/pull/24> |
140 | 175 |
|
141 | 176 | ### 1.13 - 27.03.2015 |
| 177 | + |
142 | 178 | * Renamed to FSharp.Control.AsyncSeq |
143 | 179 | * Remove surface area |
144 | 180 | * Hide Nil/Cons from representation of AsyncSeq |
145 | 181 |
|
146 | 182 | ### 1.12.1 - 27.03.2015 |
| 183 | + |
147 | 184 | * Added Async.bindChoice, Async.ParallelIgnore, AsyncSeq.zipWithAsync, AsyncSeq.zappAsync, AsyncSeq.threadStateAsync, AsyncSeq.merge, AsyncSeq.traverseOptionAsync, AsyncSeq.traverseChoiceAsync |
148 | 185 | * Added AsyncSeq.toList, AsyncSeq.toArray, AsyncSeq.bufferByCount, AsyncSeq.unfoldAsync, AsyncSeq.concatSeq, AsyncSeq.interleave |
149 | 186 | * Copied the AsyncSeq from FSharpx.Async |
150 | | -* BUGFIX: AsyncSeq.skipWhile skips an extra item - https://github.com/fsprojects/AsyncSeq/pull/2 |
151 | | -* BUGFIX: AsyncSeq.skipWhile skips an extra item - https://github.com/fsprojects/AsyncSeq/pull/2 |
152 | | -* BUGFIX: AsyncSeq.toBlockingSeq does not hung forever if an exception is thrown and reraise it outside - https://github.com/fsprojects/AsyncSeq/pull/21 |
| 187 | +* BUGFIX: AsyncSeq.skipWhile skips an extra item - <https://github.com/fsprojects/AsyncSeq/pull/2> |
| 188 | +* BUGFIX: AsyncSeq.skipWhile skips an extra item - <https://github.com/fsprojects/AsyncSeq/pull/2> |
| 189 | +* BUGFIX: AsyncSeq.toBlockingSeq does not hung forever if an exception is thrown and reraise it outside - <https://github.com/fsprojects/AsyncSeq/pull/21> |
0 commit comments