Published on August 3, 2017 by java

Support for coroutines shipped in Kotlin 1.1 in a massively redesigned form versus the original plan show by Andrey Breslav on JVMLS 2016. This talk assumes familiarity with previous year’s
presentation (only a short overview is given) and focuses on challenges that were encountered during the implementation of the original vision on Kotlin coroutines (a teaser: one of the code
examples that were shown last year had a tricky semantic problem that would result in occasional hard-to-track bugs) and how addressing them led to the change from unambitious stackless
coroutines to coroutines that can suspend execution at any stack depth and is able to fully support Go-like channels and CSP programming style in general with send, receive and select operations implemented in a library. The practical issues with implementation of full-stack coroutines on JVM are highlighted with trade-offs that Kotlin had to make as a result.

Leave a Reply

Be the First to Comment!

Notify of