You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Kotlin %kotlinEapVersion% release is out! Here are some details of this EAP release:
17
17
18
18
***Kotlin compiler plugins**: [Lombok is Alpha](#lombok-is-now-alpha) and [improved JPA support in the `kotlin.plugin.jpa` plugin](#improved-jpa-support-in-the-kotlin-plugin-jpa-plugin)
19
-
***Kotlin/Native**: [New interoperability mode for C and Objective-C libraries](#new-interoperability-mode-for-c-or-objective-c-libraries) and [concurrent marking in the garbage collector is enabled by default](#default-concurrent-marking-in-garbage-collector)
19
+
***Kotlin/Native**: [New interoperability mode for C and Objective-C libraries](#kotlin-native-new-interoperability-mode-for-c-or-objective-c-libraries)
20
20
***Gradle**: [Compatibility with Gradle 9.3.0](#compatibility-with-gradle-9-3-0) and [Kotlin/JVM compilation uses BTA by default](#kotlin-jvm-compilation-uses-build-tools-api-by-default)
21
21
***Maven**: [Simplified setup for Kotlin projects](#maven-simplified-setup-for-kotlin-projects)
22
22
***Standard library**: [New API for creating immutable copies of `Map.Entry`](#standard-library-new-api-for-creating-immutable-copies-of-map-entry)
@@ -71,12 +71,7 @@ are automatically treated as `open` and receive no-argument constructors without
71
71
72
72
This change simplifies build configuration and improves the out-of-the-box experience when using Kotlin with JPA frameworks.
73
73
74
-
## Kotlin/Native
75
-
76
-
Kotlin %kotlinEapVersion% introduces a new experimental interoperability mode for C and Objective-C libraries
77
-
and enables concurrent marking in the garbage collector by default in the Kotlin 2.3.20-Beta releases.
78
-
79
-
### New interoperability mode for C or Objective-C libraries
74
+
## Kotlin/Native: New interoperability mode for C or Objective-C libraries
80
75
<primary-labelref="experimental-opt-in"/>
81
76
82
77
If you use C or Objective-C libraries in your Kotlin Multiplatform libraries or applications, we invite you to test the new interoperability mode and share the results.
@@ -124,30 +119,6 @@ We're planning to eventually enable it by default. But to achieve that, we need
124
119
Help us examine real-world projects and identify challenging cases.
125
120
Whether you encounter any issues or not, share your results in the comments to [this YouTrack issue](https://youtrack.jetbrains.com/issue/KT-83218).
126
121
127
-
### Default concurrent marking in garbage collector
128
-
<primary-label ref="experimental-opt-in"/>
129
-
130
-
Kotlin 2.0.20 [introduced experimental support](whatsnew2020.md#concurrent-marking-in-garbage-collector) for CMS, also known as concurrent mark and sweep in the garbage collector (GC). Since then, the Kotlin team has fixed several critical and major problems and already uses CMS in [Swift export](native-swift-export.md) in its default setup.
131
-
132
-
As the next step, we're enabling CMS by default for all projects in both Kotlin2.3.20-Beta1andBeta2 releases to gather more feedback and ensure we've discovered all the issues.
133
-
134
-
Compared to the current default parallel mark concurrent sweep (PMCS) setup in the garbage collector, where application threads must be paused while the GC marks objects in the heap, CMS allows the marking phase to run concurrently with application threads.
135
-
136
-
This greatly affects the duration of GC pauses and app responsiveness, which is important for the performance of latency-critical applications. CMS has already shown its effectiveness by significantly improving benchmarks on UI applications built with [Compose Multiplatform](https://blog.jetbrains.com/kotlin/2024/10/compose-multiplatform-1-7-0-released/#performance-improvements-on-ios).
137
-
138
-
#### Leave feedback
139
-
Although CMS GC is the default in this release, it's still [Experimental](components-stability.md#stability-levels-explained). In some cases, it may lead to runtime crashes, throughput issues, or increased memory consumption.
140
-
141
-
Thisis why we're taking a cautious approach here: we're enabling CMS by default only inBeta releases to gather additional feedback. It will be rolled back to PMCSinKotlin2.3.20-RCandfinal releases.
142
-
143
-
If you observe regressions, switch to PMCS manually. Todo that, set the following [binary option](native-binary-options.md) in your `gradle.properties` file:
144
-
145
-
```none
146
-
kotlin.native.binary.gc=pmcs
147
-
```
148
-
149
-
Report any problems to our issue tracker [YouTrack](https://kotl.in/issue).
150
-
151
122
## Gradle
152
123
153
124
Kotlin %kotlinEapVersion% is compatible with new versions of Gradle and includes changes to Kotlin/JVM compilation in the Kotlin Gradle plugin.
0 commit comments