You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGES.md
+38
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,43 @@
1
1
# Change log for kotlinx.coroutines
2
2
3
+
## Version 1.3.0-M1
4
+
5
+
Flow:
6
+
* Core `Flow` interfaces and operators are graduated from preview status to experimental.
7
+
* Context preservation invariant rework (#1210).
8
+
*`channelFlow` and `callbackFlow` replacements for `flowViaChannel` for concurrent flows or callback-based APIs.
9
+
*`flow` prohibits emissions from non-scoped coroutines by default and recommends to use `channelFlow` instead to avoid most of the concurrency-related bugs.
10
+
* Flow cannot be implemented directly
11
+
*`AbstractFlow` is introduced for extension (e.g. for managing state) and ensures all context preservation invariants.
12
+
* Buffer size is decoupled from all operators that imply channel usage (#1233)
13
+
*`buffer` operator can be used to adjust buffer size of any buffer-dependent operator (e.g. `channelFlow`, `flowOn` and `flatMapMerge`).
14
+
*`conflate` operator is introduced.
15
+
* Flow performance is significantly improved.
16
+
* New operators: `scan`, `scanReduce`, `first`, `emitAll`.
17
+
*`flowWith` and `flowViaChannel` are deprecated.
18
+
*`retry` ignores cancellation exceptions from upstream when the flow was externally cancelled (#1122).
19
+
*`combineLatest` overloads for multiple flows (#1193).
20
+
* Fixed numerical overflow in `drop` operator.
21
+
22
+
Channels:
23
+
*`consumeEach` is promoted to experimental API (#1080).
24
+
* Conflated channels always deliver the latest value after closing (#332, #1235).
25
+
* Non-suspending `ChannelIterator.next` to improve iteration performance (#1162).
26
+
* Channel exception types are consistent with `produce` and are no longer swallowed as cancellation exceptions in case of programmatic errors (#957, #1128).
27
+
* All operators on channels (that were prone to coroutine leaks) are deprecated in the favor of `Flow`.
28
+
29
+
General changes:
30
+
* Kotlin updated to 1.3.31
31
+
*`Semaphore` implementation (#1088)
32
+
* Loading of `Dispatchers.Main` is tweaked so the latest version of R8 can completely remove I/O when loading it (#1231).
33
+
* Performace of all JS dispatchers is significantly improved (#820).
34
+
*`withContext` checks cancellation status on exit to make reasoning about sequential concurrent code easier (#1177).
35
+
* Consistent exception handling mechanism for complex hierarchies (#689).
36
+
* Convenient overload for `CoroutinesTimeout.seconds` (#1184).
37
+
* Fix cancellation bug in onJoin (#1130).
38
+
* Prevent internal names clash that caused errors for ProGuard (#1159).
39
+
* POSIX's `nanosleep` as `delay` in `runBlocking ` in K/N (#1225).
This gives you access to Android [Dispatchers.Main](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-android/kotlinx.coroutines.android/kotlinx.coroutines.-dispatchers/index.html)
@@ -172,15 +172,15 @@ R8 is a replacement for ProGuard in Android ecosystem, it is enabled by default
172
172
### JS
173
173
174
174
[Kotlin/JS](https://kotlinlang.org/docs/reference/js-overview.html) version of `kotlinx.coroutines` is published as
0 commit comments