v0.3
Pre-release
Pre-release
- Turn the JVM-only project into a multiplatform library
- JVM artifact id has changed from
kotlinx-collections-immutabletokotlinx-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/Setalways returns an ordered persistent map/settoPersistentHashMap/Setalways returns an unordered persistent map/settoImmutableMap/Setmay 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 theelementscollection. πremoveAll(elements)operation takes O(N * K), down from O(N * M), where K is the time complexity ofcontainsoperation on theelementscollection πremoveAll(predicate)operation takes O(N * P), down from O(N * (P + N)), where P is the time complexity of thepredicatealgorithm π
- Implement set/map backing trie canonicalization
addoperation afterremoveoperations performs ~20% faster π- iteration after
removeoperations performs ~3 times faster π