Releases: Kotlin/kotlinx.collections.immutable
Releases Β· Kotlin/kotlinx.collections.immutable
v0.4.0
- 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
v0.3.7
- Upgrade Kotlin version up to 1.9.21
- Support wasmJs and wasmWasi targets
v0.3.6
- 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
v0.3.4
- 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
v0.3.2
v0.3.1
Update Kotlin version up to 1.3.70
v0.3
- Turn the JVM-only project into a multiplatform library
- JVM artifact id has changed from
kotlinx-collections-immutable
tokotlinx-collections-immutable-jvm
- Builder iterators are fast-fail only on JVM. On the other platforms modifying the builder during iteration not through the corresponding iterator can invalidate the iterator state in an unspecified way.
- In addition to JVM and JS platforms, macosX64, iosX64, iosArm64, iosArm32, linuxX64, and mingwX64 native platforms are supported.
- JVM artifact id has changed from
- Make conversion to persistent collections consistent
toPersistentMap
/Set
always returns an ordered persistent map/settoPersistentHashMap
/Set
always returns an unordered persistent map/settoImmutableMap
/Set
may return any kind of immutable map/set
- Optimize persistent list [builder] batch update operations
addAll(elements)
operation performs ~3 times faster πaddAll(index, elements)
operation takes O(N + M), down from O(N * M), where N is the size of this collection and M - the size of theelements
collection. πremoveAll(elements)
operation takes O(N * K), down from O(N * M), where K is the time complexity ofcontains
operation on theelements
collection πremoveAll(predicate)
operation takes O(N * P), down from O(N * (P + N)), where P is the time complexity of thepredicate
algorithm π
- Implement set/map backing trie canonicalization
add
operation afterremove
operations performs ~20% faster π- iteration after
remove
operations performs ~3 times faster π