Skip to content

Releases: Kotlin/kotlinx.collections.immutable

v0.5.0

09 Jun 16:36
0727896

Choose a tag to compare

This release renames the copy-returning methods on PersistentCollection, PersistentList, and PersistentMap to participial forms (KEEP-0459) — addadding, putputting, setreplacingAt, clearcleared, and the rest. The old imperative names continue to compile in 0.5.x as @Deprecated(WARNING), become a compile error in 0.6.0, and are removed in 0.7.0. First shipped in 0.5.0-beta01; 0.5.0 is the stable release, with only internal fixes since.

To migrate, apply the IDE quick-fixes, follow the migration guide, or use the 0.5.x migration skill with an AI assistant — each applies the rename the deprecation warnings name.

Changes since 0.4.0:

  • Renamed copy-returning methods to participial forms; deprecated the old names #233
  • Enabled the Kotlin return-value checker (-Xreturn-value-checker=full) for the core module #243
  • Updated Kotlin to 2.3.0 #242
  • Configured JDK release 8 for the Kotlin compiler #239
  • Populated Implementation-* attributes in published JAR manifests #237
  • Enabled Dokka documentation generation, upgraded to Dokka 2.2.0 #225, #245, #248

Full changelog: v0.4.0...v0.5.0

v0.5.0-beta01

13 May 17:47
a6ad2e1

Choose a tag to compare

v0.5.0-beta01 Pre-release
Pre-release

This release renames copy-returning methods on PersistentCollection, PersistentList, and PersistentMap to participial forms — the old imperative names continue to compile in 0.5.x as @Deprecated(WARNING), become a compile error in 0.6.0, and are removed in 0.7.0. Concretely, addadding, putputting, clearcleared, setreplacingAt, removeAtremovingAt, and the rest of the family (see the migration guide for the full table). The rename follows KEEP-0459 — Naming Conventions for Copy-Returning Operations.

If your code uses any of these methods, please read the migration guide for the full rename table, the deprecation timeline, and the recommended IDE quick-fix workflow.

This is a beta — 0.5.0 is planned to drop the -beta suffix soon, and once it ships stable the participial names are committed (any further rename would need its own deprecation cycle). If any of the renames feels awkward or you've hit a migration problem, please share it on issue #232 before then.

What's changed

  • Renamed PersistentCollection mutating-copy methods to participial forms (add/remove/set/put/clearadding/removing/setting/putting/clearing and *ed variants) and deprecated the original names #233
  • Enabled the Kotlin return-value checker (-Xreturn-value-checker=full) for the core module and annotated select internal helpers with @IgnorableReturnValue where discarding the result is intentional #243
  • Updated Kotlin to version 2.3.0 #242
  • Configured JDK release to 8 for the Kotlin compiler #239
  • Populated Implementation-Title/Implementation-Version/Implementation-Vendor in published JAR manifests #237
  • Enabled Dokka documentation generation and upgraded Dokka to 2.2.0 #225, #245, #248

v0.4.0

14 May 14:07
bd5ac10

Choose a tag to compare

  • Fixed the equality bug in PersistentMap — Added proper node promotion during mutable operations to ensure a consistent internal tree structure #217
  • Fixed the bug in PersistentMap equals implementation — Ensured proper node promotion during mutable key removal even when nodes share the same owner #218
  • Fixed the ghost element issue in PersistentHashSet — Corrected condition check order to ensure proper recursive element promotion after collision removal #219
  • Updated Kotlin to version 2.1.20 and core dependencies #213
  • Enabled '-Xjvm-default=disable' explicitly to prevent API dump changes #210

v0.3.8

05 Sep 14:59
fe7b163

Choose a tag to compare

v0.3.8 Pre-release
Pre-release

What's Changed

  • Add extension functions to convert Array to persistent collections #159
  • Don't allocate temporary buffer in SmallPersistentVector.removeAll #164
  • Avoid creating new PersistentList instance when adding empty collection #176
  • Fix memory leak in builders #193

v0.3.7

16 Dec 06:48

Choose a tag to compare

v0.3.7 Pre-release
Pre-release
  • Upgrade Kotlin version up to 1.9.21
  • Support wasmJs and wasmWasi targets

v0.3.6

06 Oct 18:34

Choose a tag to compare

v0.3.6 Pre-release
Pre-release
  • Upgrade Kotlin version up to 1.9.0
  • Support all targets currently supported by the K/N compiler
  • Drop support for the Legacy js target

v0.3.5

12 Jan 18:25

Choose a tag to compare

v0.3.5 Pre-release
Pre-release
  • Upgrade Kotlin version up to 1.6.0
  • Raise the JVM bytecode target to 1.8. Now the library cannot be used on JDK 1.6 and 1.7.
  • Add other Apple K/N targets
  • Implement faster equals function for sets and maps
  • Fix PersistentHashMapBuilder.putAll() #114

v0.3.4

29 Mar 23:48

Choose a tag to compare

v0.3.4 Pre-release
Pre-release
  • Upgrade Kotlin version up to 1.4.30
  • Publish the library to Maven Central instead of Bintray #96.
  • Add license information to published POMs #98.
  • Implement workaround for specialized MutableEntrySet.contains/remove KT-41278.
  • Bug in PersistentList - list is broken after removeAll call #92.
  • Faster bulk operations for non-ordered sets (removeAll, retainAll, containsAll) #91.
  • Faster addAll/putAll implementation for non-ordered sets/maps #83.
  • Add extension functions to convert Sequence to persistent collections 84.
  • Add missing CharSequence.toImmutableSet() extension function.

v0.3.3

22 Aug 03:09

Choose a tag to compare

v0.3.3 Pre-release
Pre-release
  • Support Kotlin 1.4.0
  • Weaken receiver type of toPersistentHashSet to Iterable #77
  • Throw ConcurrentModificationException if hashCode of ordered set element changes #76
  • Fix transition from PersistentVector to SmallPersistentVector #75

v0.3.2

10 Apr 08:05

Choose a tag to compare

v0.3.2 Pre-release
Pre-release
  • Introduce persistentHashSetOf, persistentMapOf and persistentHashMapOf methods that take no arguments and create an empty instance #67.
  • Fix map entries/keys/values iterators including #68.