Kotlin 1.9.0 Released: K2 for the JVM Reaches Beta
Kotlin 1.9.0 brought the K2 compiler for the JVM to Beta, stabilised the enum entries property replacing the values function, and made the open-ended range operator stable.
Historical Archive. This article documents an event from 2023 and is preserved with its original date for reference. It is not current news, and details may have changed since publication.
What happened
Kotlin 1.9.0 was released on July 6, 2023, according to the official Kotlin documentation. Its headline was that the K2 compiler for the JVM reached Beta, with basic support also added for Kotlin/Native and multiplatform projects, as JetBrains continued the long stabilisation effort that would culminate in Kotlin 2.0.
K2 compiler progress
The release let developers test the new K2 compiler by adding a Gradle property, kotlin.experimental.tryK2=true, which sets the language version to 2.0 and reports how many tasks were compiled with K2. Gradle build reports began showing whether the current or K2 compiler was used. The kapt plugin could be used with K2 but with restrictions, automatically falling back to the older compiler.
Stabilised language features
Kotlin 1.9.0 stabilised several features introduced earlier. The entries property for enum classes, a modern and more performant replacement for the synthetic values() function, became stable. The ..< operator for open-ended ranges became stable, data objects gained stable symmetry with data classes including toString, equals and hashCode, and secondary constructors with bodies in inline value classes became available by default.
Native, Wasm and JVM
The release brought advancements to the Kotlin/Native memory manager, including a preview of a custom memory allocator that divides memory into pages for more efficient garbage collection, an Objective-C or Swift object deallocation hook on the main thread, and library-linkage handling aligned with the JVM. On the JVM, the compiler could generate bytecode for JVM 20, and Kotlin/Wasm received size-related optimisations.
Why it mattered
Kotlin 1.9.0 was an important waypoint on the road to Kotlin 2.0. Bringing K2 for the JVM to Beta let a wider audience test the new compiler, while stabilising features like the enum entries property and open-ended ranges delivered concrete, everyday improvements to Kotlin developers.
Related on Skillo
See also: Kotlin 2.0.0's stable K2 compiler.
Sources
Published date reflects the original event date (2023-07-06). This article is original Skillo editorial written from the sources above; facts were verified in September 2026.
Written by
Skillo Staff
0 Comments
Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.