Kotlin/Native 0.9 ist vorbereitet für Kotlin 1.3
Das Major-Release der Programmiersprache Kotlin/Native setzt auf Compiler und Standardbibliothek der zweiten Milestone-Version von Kotlin 1.3 auf.
![Kotlin/Native 0.8 bring Überarbeitungen für Nebenläufigkeit, Bibliothek und iOS](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/4/9/5/8/5/4/schablone-dad2a047aab77fbe.jpeg)
JetBrains hat Version 0.9 der Programmiersprache Kotlin/Native veröffentlicht. Trotz der Versionsnummer handele es sich dabei um ein Major-Release mit Breaking Changes, wie Nikolay Igotti im Blogbeitrag ausdrücklich betont. Kotlin/Native 0.9 ist auf die bevorstehende Veröffentlichung von Kotlin 1.3 vorbereitet. Das neueste Release nutzt bereits Compiler und Standardbibliothek von Kotlin 1.3-M2, sodass Entwickler ab sofort von den Kotlin-Neuerungen profitieren. Unter anderen stehen Inline Classes, Unsigned Types sowie die Common Random Number Generator API für alle Native Targets zur Verfügung.
Unsigned Types und Coroutines
Der tschechische Toolhersteller hat die für Kotlin 1.3 angekündigte Unterstützung von Unsigned Types schon im zweiten Milestone-Release der Programmiersprache umgesetzt. Sie stehen sowohl in der Sprache als auch in deren Standardbibliothek für verschiedene Backends wie JVM, Native und JavaScript parat. Auch an der plattformübergreifenden Interoperabilität hat JetBrains gearbeitet und das Mapping von Unsigned Types in Kotlin auf passende Types in C und Objective-C/Swift umgesetzt. Nach Abschluss der Experimentierphase für Coroutines unterstützt auch Kotlin/Native 0.9 nun die neuen Coroutine APIs. Die experimentellen Coroutines aus kotlin.coroutines.experimental sollten Entwickler daher nicht mehr verwenden.
Nebenläufigkeit
Die gegenüber der Vorversion komplett überarbeiteten Concurrency Primitives sind ab Kotlin/Native 0.9 im neuen kotlin.native.concurrent-Package zusammengefasst. Um den Support für Nebenläufigkeit zu verbessern, hatte JetBrains in Version 0.8 sowohl atomare Werte und Referenzen eingeführt, als auch das Teilen eines unveränderbaren Zustands erlaubt. Im neuen Release haben die Macher einerseits die API-Klassen AtomicInt, AtomicLong, AtomicNativePtr und AtomicReference als auch den Umgang von lazy mit eingefrorenen Objekten weiter optimiert.
Einen kompletten Überblick sowie nähere Details zu den Neuerungen in Kotlin/Native 0.9 bietet der Blogbeitrag. Die Binaries für macOS, Linux und Windows stehen auf der JetBrains-Seite zum Download bereit. Das Projekt findet sich außerdem auf GitHub. (map)