As announced in Kotlin 1.3-M1 blog post coroutines are graduating and are becoming a stable feature in Kotlin 1.3. Migration to the graduated coroutines would require removing experimental
from all the package names as well as adjustments to the usages of certain low-level APIs like Continuation
and advanced functions from intrinsics
package.
We are releasing an updated version of all JetBrains libraries like kotlinx.coroutines
for graduated coroutines. However, if you happen to be using 3rd party library that exposes experimental coroutines in its APIs and the maintainers of that library would not perform a timely update to the Kotlin 1.3 graduated coroutines, then you’ll find that you cannot use the functions in those libraries that expose experimental coroutines if your project is configured with Kotlin language level 1.3 — Kotlin compiler will report an error on an attempt to use them.
Hereby we are gathering feedback to decide on what kind of support we would need to provide for that scenario in Kotlin 1.3 release. Please, respond if you are using any 3rd party non-JetBrains libraries that you do not control and which expose experimental Kotlin coroutines in their APIs. We are interested to know what libraries are those and how exactly the experimental coroutines are exposed by those libraries:
- They expose
suspend
functions. - They receive or return
suspend
functional types. - They receive, return or otherwise expose types from
kotlinx.coroutines.experimental
package and thus would prevent you from fully migrating to the version ofkotlinx.coroutines
library for Kotlin 1.3 which removesexperimental
from all the package names.
Links to your applications and the corresponding libraries’ code (if possible, of course) would be extremely helpful.
Please, feel free to comment if you feel that you would be otherwise inconvenienced by inability to use code that was compiled with Kotlin language level 1.2 and exposes experimental coroutines from the code that is being compiled with Kotlin language level 1.3.