Skip to content

Commit 153006e

Browse files
feat: 2.3.20.RC EAP release details (#5383)
* feat: adding release details * update: revert CMS GC by default * update: update eap release table for 2.3.20-RC --------- Co-authored-by: Danil Pavlov <danil.pavlov@jetbrains.com>
1 parent 57627f8 commit 153006e

File tree

4 files changed

+9
-38
lines changed

4 files changed

+9
-38
lines changed

docs/kr.tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<toc-element hidden="true" topic="kotlin-tour-intermediate-libraries-and-apis.md"/>
2323
</toc-element>
2424
<toc-element toc-title="What's new in Kotlin">
25-
<toc-element toc-title="Kotlin 2.3.20-Beta2" topic="whatsnew-eap.md"/>
25+
<toc-element toc-title="Kotlin 2.3.20-RC" topic="whatsnew-eap.md"/>
2626
<toc-element toc-title="Kotlin 2.3.0" accepts-web-file-names="whatsnew.html" topic="whatsnew23.md"/>
2727
<toc-element toc-title="Compatibility guide" topic="compatibility-guide-23.md"/>
2828
</toc-element>

docs/topics/eap.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ In this channel, you can also get notifications about new EAP builds.
5353
<th>Build highlights</th>
5454
</tr>
5555
<tr>
56-
<td><strong>2.3.20-Beta2</strong>
57-
<p>Released: <strong>January 29, 2026</strong></p>
58-
<p><a href="https://github.com/JetBrains/kotlin/releases/tag/v2.3.20-Beta2" target="_blank">Release on GitHub</a></p>
56+
<td><strong>2.3.20-RC</strong>
57+
<p>Released: <strong>February 19, 2026</strong></p>
58+
<p><a href="https://github.com/JetBrains/kotlin/releases/tag/v2.3.20-RC" target="_blank">Release on GitHub</a></p>
5959
</td>
6060
<td>
6161
<p>A tooling release with performance improvements, bug fixes, and tooling updates.</p>
62-
<p>For more details, please refer to the <a href="https://github.com/JetBrains/kotlin/releases/tag/v2.3.20-Beta2">changelog</a>.</p>
62+
<p>For more details, please refer to the <a href="https://github.com/JetBrains/kotlin/releases/tag/v2.3.20-RC">changelog</a>.</p>
6363
</td>
6464
</tr>
6565
</table>

docs/topics/whatsnew/whatsnew-eap.md

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ _[Released: %kotlinEapReleaseDate%](eap.md#build-details)_
1616
The Kotlin %kotlinEapVersion% release is out! Here are some details of this EAP release:
1717

1818
* **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)
2020
* **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)
2121
* **Maven**: [Simplified setup for Kotlin projects](#maven-simplified-setup-for-kotlin-projects)
2222
* **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
7171

7272
This change simplifies build configuration and improves the out-of-the-box experience when using Kotlin with JPA frameworks.
7373

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
8075
<primary-label ref="experimental-opt-in"/>
8176

8277
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
124119
Help us examine real-world projects and identify challenging cases.
125120
Whether you encounter any issues or not, share your results in the comments to [this YouTrack issue](https://youtrack.jetbrains.com/issue/KT-83218).
126121
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 Kotlin 2.3.20-Beta1 and Beta2 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-
This is why we're taking a cautious approach here: we're enabling CMS by default only in Beta releases to gather additional feedback. It will be rolled back to PMCS in Kotlin 2.3.20-RC and final releases.
142-
143-
If you observe regressions, switch to PMCS manually. To do 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-
151122
## Gradle
152123
153124
Kotlin %kotlinEapVersion% is compatible with new versions of Gradle and includes changes to Kotlin/JVM compilation in the Kotlin Gradle plugin.

docs/v.list

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<var name="apiVersion" value="2.3"/>
1515

1616
<!-- Kotlin EAP -->
17-
<var name="kotlinEapVersion" value="2.3.20-Beta2"/>
18-
<var name="kotlinEapReleaseDate" value="January 29, 2026"/>
17+
<var name="kotlinEapVersion" value="2.3.20-RC"/>
18+
<var name="kotlinEapReleaseDate" value="February 19, 2026"/>
1919

2020
<!-- Libraries and Frameworks -->
2121
<var name="coroutinesVersion" value="1.10.2"/>

0 commit comments

Comments
 (0)