- Kotlin K2コンパイラが正式版になった。従来のコンパイラと比べて性能が向上し、新しい言語機能の開発速度が上がり、マルチプラットフォームプロジェクト向けの構造も改善されている
- ローカル変数とより広いスコープ、論理
or演算子を使った型チェック、inline関数、関数型プロパティ、例外処理、インクリメント/デクリメント演算子などでsmart castが改善された
- マルチプラットフォームプロジェクトでは、共通およびプラットフォームのソースをコンパイルする際に厳密に分離されるようになった。
expect/actual宣言では可視性レベルを異なるものにできるようになった
- Kotlin/Wasmでは、Binaryenを用いた最適化のデフォルトサポート、named exportのサポート、
@JsExport関数でのunsigned primitive typeのサポート、JS exception catchのサポートなどが改善された
- Kotlin/JSでは、es2015コンパイルターゲットの追加、
suspend関数のES generatorへのコンパイル、main関数への引数の受け渡し、ファイル単位のコンパイル、コレクションinteropの改善、js-plain-objectsプラグインなどが改善された
- Kotlin Multiplatformでは、Gradle DSLによるコンパイラオプション設定、Composeコンパイラプラグインの統合、Kotlinデータフォルダの変更、必要時のKotlin/Nativeコンパイラのダウンロードなどが改善された
- 標準ライブラリでは、enumクラスの
valuesジェネリック関数の置き換え、AutoCloseableインターフェース、共通拡張関数などがstableになった
1件のコメント
簡単な、そして極端なコンパイラ性能ベンチマークです。
https://github.com/ganadist/kotlin_build_performance
各プロジェクトに class 200個、各 class には 2000 個のフィールドを含む
java : 2秒
kotlin 1.9.24 : 1分20秒
kotlin 2.0.0 : 1分1秒
Macbook Pro M1 Max で確認しました。
上記プロジェクトはやや極端なケースですが、一般的には kotlin 1.9 と比べて 2.0 のコンパイル速度はおよそ2倍になっているようです.