https://kotlinlang.org logo
Title
v

Vsevolod Tolstopyatov [JB]

06/06/2019, 9:14 PM
📣 📣 📣
kotlinx.coroutines
version 1.3.0-M1 is here! A lot of changes in Flow: * Core
Flow
interfaces and operators are graduated from preview status to experimental 😒uspend: * Serious performance improvements of Flow * More accurate context preservation invariant that should prevent most of the concurrency and contract violation bugs *
Flow
interface cannot be implemented directly, only via
AbstractFlow
to preserve Flow’s invariant * Separate
buffer
operator composable with buffered operator (
flowOn
,
flowChannel
etc.). No more
bufferSize
constant in operators! * New operators and a lot more! General changes: * Scalable state-of-the-art
Semaphore
implementation * Channels API improved: performance, experimental API and consistent exception handling *
withContext
checks cancellation status on exit to make reasoning about sequential concurrent code easier * JS dispatcher performance * Various API and performance improvements and bug fixes Full changelog: https://github.com/Kotlin/kotlinx.coroutines/releases/tag/1.3.0-M1
👌 8
😍 6
👏 7
😎 6
👍 5
🎉 29
😒uspend: 19
🔥 27
:kotlin: 15
b

basher

06/06/2019, 9:37 PM
Awesome! What does the
-M1
signify?
l

louiscad

06/06/2019, 9:41 PM
@basher Milestone one.
b

basher

06/06/2019, 9:42 PM
Ah! Is there a way to see what upcoming milestones are left and general plan?
l

louiscad

06/06/2019, 9:43 PM
I don't think so, but I'd expect that they want to round up Flow before 1.3.0. You can see remaining open issues tagged with
flow
on GitHub.
👍 1
g

gildor

06/07/2019, 2:07 AM
Maybe I missed something, but isn’t channelFlow and callbackFlow are exactly the same, just alias. Is it for some future changes? Or just to make semantics more clear?
e

elizarov

06/07/2019, 5:29 AM
They are the same. It is just a ploy to target docs to specific use-cases and also clearly express intent in your code.