Kotlin 1.8.0 adds recursive copy, delete for directories
Kotlin 1.8.0 adds recursive copy, delete for directories
Kotlin 1.8.0, an upgrade to the JetBrains-developed, statically typed language for multiplatform mobile, web, and native development, is now available as a production release. The new version introduces experimental functions for recursively copying or deleting directory content on 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 stabilizes extension functions for working with Optional classes in Java.
Announced as a production release January 11, 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 Kotlin 1.8.0 can be found at kotlinlang.org.
Other new features and improvements in the Kotlin 1.8.0 beta:
- Java 19 bytecode is supported for Kotlin/JVM.
- For Kotlin/JS, the IR (intermediate representation) compiler has been stabilized and set incremental compilation is to be used by default. The old Kotlin/JS back end has been deprecated.
- 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 forKotlinSourceSet
entities. - 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.
Copyright © 2023 IDG Communications, Inc.
<!-- var slotName = 'bottomleaderboard'; var slotSize = []; if ($thm.deviceClass == 'mobile') { slotSize = [[300,50],[320,50],[300,250]]; } else if ($thm.deviceClass == 'tablet') { slotSize = [[728,90],[468,60]]; } else { slotSize = [[728,90],[970,90],[970,250]]; } IDG.GPT.addDisplayedAd(slotName, "true"); document.write('
'); IDG.GPT.defineGoogleTagSlot(slotName, slotSize, false, true); document.write('
'); $('#' + slotName).responsiveAd({screenSize:'971 1115', scriptTags: []}, true); //-->