- Le compilateur Kotlin K2 est désormais disponible en version stable. Il offre des gains de performances par rapport au compilateur précédent, accélère le développement de nouvelles fonctionnalités du langage et améliore l’architecture pour les projets multiplateformes
- Le smart cast a été amélioré pour les variables locales et les portées plus larges, les vérifications de type avec l’opérateur logique
or, les fonctions inline, les propriétés de type fonction, la gestion des exceptions, les opérateurs d’incrémentation et de décrémentation, etc.
- Dans les projets multiplateformes, la compilation des sources communes et des sources spécifiques aux plateformes est désormais strictement séparée. Les déclarations
expect/actual peuvent désormais avoir des niveaux de visibilité différents
- Kotlin/Wasm améliore notamment la prise en charge native de l’optimisation via Binaryen, les exports nommés, la prise en charge des types primitifs non signés dans les fonctions
@JsExport et la capture des exceptions JS
- Kotlin/JS ajoute la cible de compilation
es2015, la compilation des fonctions suspend en générateurs ES, le passage d’arguments à la fonction main, la compilation par fichier, une meilleure interopérabilité des collections et le plugin js-plain-objects
- Kotlin Multiplatform améliore notamment la configuration des options du compilateur via la DSL Gradle, l’intégration du plugin du compilateur Compose, les changements du dossier de données Kotlin et le téléchargement du compilateur Kotlin/Native uniquement lorsqu’il est nécessaire
- Dans la bibliothèque standard, le remplacement de la fonction générique
values des classes enum, l’interface AutoCloseable et les fonctions d’extension communes passent au statut stable
1 commentaires
Un benchmark simple (et extrême) des performances du compilateur.
https://github.com/ganadist/kotlin_build_performance
200 classes par projet, avec 2000 champs dans chaque classe
java : 2 secondes
kotlin 1.9.24 : 1 minute 20 secondes
kotlin 2.0.0 : 1 minute 1 seconde
Vérifié sur un Macbook Pro M1 Max.
Le projet ci-dessus est un cas un peu extrême, mais en général, la vitesse de compilation de kotlin 2.0 semble être environ deux fois plus rapide que celle de kotlin 1.9.