ARN

Kotlin 1.8.0 beta introduces experimental functions

Next version of the Kotlin programming language adds support for Java 19 and introduces experimental functions for the JVM to recursively copy or delete directory content.

Kotlin 1.8.0, an upgrade to the JetBrains-developed, statically typed language for multiplatform mobile, web, and native development, is available in a beta release. The new version introduces experimental functions for the JVM.

The standard library in Kotlin 1.8.0 adds new experimental functions for java.nio.file.path that can recursively copy or delete directory content. Experimental functionality also has been added to TimeMarks, allowing elapseNow to read from multiple TimeMarks simultaneously. Opt-in is required for both sets of new functionality. Kotlin 1.8.0 also stabilises extension functions for java.util.Optional.

Announced November 23, Kotlin 1.8.0 also adds capabilities such as Gradle 7.3 compatibility but subtracts support of the old JVM back end, with the -Xuse-old-backend compiler option no longer supported. Instructions on updating to the beta can be found at kotlinlang.org.

Other new features and improvements in the Kotlin 1.8.0 beta include that Java 19 bytecode is supported for Kotlin/JVM.

For Kotlin/JS, the IR (intermediate representation) compiler has been stabilised and set incremental compilation is to be used by default. The old Kotlin/JS back end has been deprecated.

Meanwhile for Kotlin Multiplatform, an Android source set layout was added that can be enabled in the Gradle plugin with kotlin.mpp.androidSourceSetLayoutVersion=2. Also, a new naming schema was added for KotlinSourceSet entities.

And for Kotlin Native, support has been added for the Xcode 14 IDE for Apple development, as well as for the watchosDeviceArm64 target. New annotations are supported to improve Objective-C and Swift language interoperability.

The latest incremental release of Kotlin, Kotlin 1.7.20, arrived in October.