- Der Kotlin-K2-Compiler ist jetzt eine stabile Version. Gegenüber dem bisherigen Compiler bietet er Vorteile wie eine höhere Leistung, schnellere Entwicklung neuer Sprachfunktionen und strukturelle Verbesserungen für Multiplatform-Projekte
- Smart Casts wurden verbessert, unter anderem bei lokalen Variablen und breiteren Scopes, Typprüfungen mit logischen OR-Operationen,
inline-Funktionen, Eigenschaften vom Funktionstyp, Ausnahmebehandlung sowie Inkrement- und Dekrementoperatoren
- In Multiplatform-Projekten werden gemeinsamer und plattformspezifischer Source-Code beim Kompilieren nun strikt getrennt. In
expect/actual-Deklarationen können Sichtbarkeitsstufen jetzt unterschiedlich sein
- Kotlin/Wasm wurde verbessert, unter anderem durch standardmäßige Unterstützung für Optimierungen mit Binaryen, Unterstützung für named export, Unterstützung für unsigned primitive types in
@JsExport-Funktionen und Unterstützung für das Abfangen von JS-Ausnahmen
- Kotlin/JS wurde verbessert, unter anderem durch das neue Kompilierungsziel
es2015, das Kompilieren von suspend-Funktionen in ES-Generatoren, die Übergabe von Argumenten an die main-Funktion, dateibasierte Kompilierung, verbesserte Collection-Interop und das js-plain-objects-Plugin
- Kotlin Multiplatform wurde verbessert, unter anderem durch das Setzen von Compiler-Optionen per Gradle DSL, die Integration des Compose-Compiler-Plugins, Änderungen am Kotlin-Datenordner und das Herunterladen des Kotlin/Native-Compilers bei Bedarf
- In der Standardbibliothek wurden unter anderem generische Funktionen als Ersatz für
values von Enum-Klassen, das AutoCloseable-Interface und gemeinsame Erweiterungsfunktionen auf stable umgestellt
1 Kommentare
Ein kurzer (und extremer) Benchmark zur Compiler-Performance.
https://github.com/ganadist/kotlin_build_performance
Jedes Projekt enthält 200 Klassen, jede Klasse umfasst 2000 Felder
Java: 2 Sekunden
Kotlin 1.9.24: 1 Minute 20 Sekunden
Kotlin 2.0.0: 1 Minute 1 Sekunde
Getestet auf einem MacBook Pro M1 Max.
Das obige Projekt ist ein ziemlich extremer Fall; im Allgemeinen scheint die Kompiliergeschwindigkeit von Kotlin 2.0 im Vergleich zu 1.9 etwa doppelt so hoch zu sein.