blob: 1aca540e1bc567cd0c2d3bae16a32bad7cd1746b [file] [log] [blame] [view] [edit]
# Change log for kotlinx.atomicfu
# Version 0.23.1
* Updated Kotlin to 1.9.21 (#361).
* Update to Kotlin 1.9.21 fixes regression with klib incompatibility (#365).
# Version 0.23.0
* Updated Kotlin to 1.9.20 (#361).
* Updated Gradle version to 8.3.
* Supported transformations for Native targets 🎉 (#363) .
* Introduced WebAssembly target (`wasmJs` and `wasmWasi`) 🎉 (#334).
* Improved integration testing for `atomicfu-gradle-plugin` (#345).
* Updated implementation of native atomics (#336).
* Got rid of `previous-compilation-data.bin` file in META-INF (#344).
# Version 0.22.0
* Updated Kotlin to 1.9.0 (#330).
* Updated gradle version to 8.1 (#319).
* Updated kotlinx.metadata version 0.7.0 (#327).
* Conditionally removed targets that are removed after 1.9.20 (iosArm32, watchosX86). (#320).
* Removed obsolete no longer supported kotlin.mpp.enableCompatibilityMetadataVariant (#326).
* Complied with new compiler restriction on actual declaration annotations (#325).
# Version 0.21.0
* Updated Kotlin to 1.8.20.
* Updated Gradle to 7.3 (#300).
* Updated kotlinx.metadata version to 0.6.0 (#281).
* Minimal supported KGP(1.7.0) and Gradle(7.0) versions are set since this release.
* Removed JS Legacy configurations for KGP >= 1.9.0 (#296).
* Fixed class duplication (from original and transformed directories) in Jar (#301).
* Original class directories are not modified in case of compiler plugin application (#312).
# Version 0.20.2
* Fix for unresolved `kotlinx-atomicfu-runtime` dependency error (https://youtrack.jetbrains.com/issue/KT-57235),
please see the corresponding PR for more comments (#290).
# Version 0.20.1
* Fixed passing `kotlinx-atomicfu-runtime` dependency to the runtime classpath (#283).
* AV/LV set to 1.4 to be compatible with Gradle 7 (#287).
* Enable cinterop commonization (#282).
# Version 0.20.0
* Update Kotlin to 1.8.10.
* Support all official K/N targets (#275).
# Version 0.19.0
* Update Kotlin to 1.8.0.
* Update LV to 1.8 (#270).
* Prepare atomicfu for including to the Kotlin Aggregate build (#265).
# Version 0.18.5
* Support JVM IR compiler plugin (#246).
* Update Kotlin to 1.7.20.
* Added more tests for atomicfu-gradle-plugin (#255).
# Version 0.18.4
* Fix KGP compatibility bug with freeCompilerArgs modification (#247).
* Update kotlinx.metadata to 0.5.0 (#245).
* Update gradle version to 6.8.3 (#244)
# Version 0.18.3
* Fix for atomicfu-gradle-plugin application to the MPP project (for Kotlin 1.7.20).
# Version 0.18.2
* In Kotlin 1.7.10 the name of `atomicfu-runtime` module was reverted back to `kotlinx-atomicfu-runtime`,
as the renaming was an incompatible change.
Fixed `atomicfu-gradle-plugin` to add `kotlinx-atomicfu-runtime` dependency directly.
# Version 0.18.1
* Fix for the compatibility issue: add `atomicfu-runtime` dependency directly since Kotlin 1.7.10.
# Version 0.18.0
* Update Kotlin to 1.7.0.
* Fix kotlin 1.7 compatibility (#222).
* Update JVM target to 1.8 (see KT-45165).
* Fix for parsing Kotlin version in AtomicfuGradlePlugin.
# Version 0.17.3
* Adding compiler plugin dependency only for projects with KGP >= 1.6.20 (#226).
* Compiler plugin runtime dependency fixes (#230).
* Update README badges (#228).
# Version 0.17.2
* Update Kotlin to 1.6.20.
* IR transformation for Kotlin/JS. (#215).
* Update ASM to 9.3 for Java 18 support (#223)
* Update kotlinx.metadata to 0.4.2.
# Version 0.17.1
* Support of `org.jetbrains.kotlin.js` plugin (#218).
* Fixed configuration cache bug. (#216).
* Bug fixes for delegated fields support (#179).
# Version 0.17.0
* Update Kotlin to 1.6.0.
* Update ASM minimal api version to ASM7 (#203).
* Add explicit module-info for JPMS compatibility (#201).
# Version 0.16.3
* Kotlin is updated to 1.5.30.
* All references to Bintray are removed from artefacts POMs.
* Added new Apple Silicon targets for K/N.
# Version 0.16.2
* Update Kotlin to 1.5.20.
* ASM 9.1 for Java 15+ support (#190).
* Removing extra atomicfu references from LVT.
# Version 0.16.0
* Update Kotlin to 1.5.0.
* Supported x86_64-based watchOS simulator target. (#177).
# Version 0.15.2
* Update kotlinx-metadata to 0.2.0.
* Update Kotlin to 1.4.30.
* Added kotlin space repository.
# Version 0.15.1
* Maven central publication (#173).
* Binary compatibility with IR (#170).
* Supported garbage-free multi-append in debug trace (#172).
# Version 0.15.0
* Tracing atomic operations (#20).
* Supported delegated properties (#83).
* Fixed visibility modifiers of synthetic fields and classes (#144).
* Introduced `size` method for atomic arrays (#149).
* Update Kotlin to 1.4.10.
# Version 0.14.4
* Fixed bug when Maven plugin wasn't published
* Migrate to new Kotlin HMPP metadata for multiplatform projects
* Update Kotlin to 1.4.0
# Version 0.14.3
* Update to Kotlin 1.3.71.
* Enable HMPP and new JS IR backend compilation.
# Version 0.14.2
* Update to Kotlin 1.3.70.
# Version 0.14.1
* Fixed broken JVM transformer after upgrade to ASM 7.2.
# Version 0.14.0
* Updated to Kotlin 1.3.60.
* Updated to ASM 7.2.
* Support locks (SynchronizedObject and ReentrantLock).
* Freezable atomics on Kotlin/Native.
# Version 0.13.2
* Added release notes.
* Added the original classesDirs to the friend paths of test compilations.
# Version 0.13.1
* Better diagnostics when LockFreedomTestEnvironment fails to shutdown.
* Fixed looking for local variables scope labels.
# Version 0.13.0
* Gradle version 5.6.1 with Gradle metadata format version 1.0 (stable) for native modules.
* Optimized volatile-only fields in JVM.
* Supported unchecked cast erasure (including array elements).
* Fixed inline functions on array elements.
* Fixed shutdown sequence of LockFreedomTestEnvironment.
# Version 0.12.11
* Support suspending functions in LockFreedomTestEnvironment.
# Version 0.12.10
* Updated to Kotlin 1.3.50
# Version 0.12.9
* Updated to Kotlin 1.3.40
# Version 0.12.8
* Fixed getting array elements by named index.
* Fixed broken npm publishing.
# Version 0.12.7
* Fixed BooleanArray setValue.
* Fixed removal of inline methods on atomicfu types from bytecode.
* Adjust kotlin.Metadata in JVM classes to remove atomicfu references completely.
# Version 0.12.6
* Support additional configuration for dependencies and transforms.
* Get array field fixed (see #61).
# Version 0.12.5
* Fixed Gradle plugin compatibility with `kotlin-multiplatform` plugin.
# Version 0.12.4
* Gradle plugin automatically adds dependencies.
* Added support for inline extensions on `AtomicXxx` types.
# Version 0.12.3
* Updated to Kotlin 1.3.30
# Version 0.12.2
* Fixed to skip changing source path for unprocessed native output (see #51).
* Fixed inlining of atomic operations on JS (see #52).
# Version 0.12.1
* Gradle 4.10 with metadata version 0.4.
* No metadata for everything except native.
# Version 0.12.0
* Kotlin version 1.3.11.
* Support top-level atomic variables.
* Support arrays of atomic variables.
* Project is built with kotlin-multiplatform plugin.
# Version 0.11.11
* Kotlin version Kotlin version 1.3.0-rc-146 (with K/N).
* Gradle plugin supports projects that use `kotlin-multiplatform` plugin.
* Disable Gradle metadata publishing for all but native modules.
* JS transformer is more robust and retains line numbers (see #25).
# Version 0.11.10
* Kotlin version 1.3.0-rc-57 & Kotlin/Native 0.9.2
# Version 0.11.9
* Kotlin/Native version 1.3.0-rc-116 (0.9.3)
* Kotlin version 1.2.71
* Incremental JS compilation is fixed in plugin
## Version 0.11.7
* Fixed non-transformed AtomicBoolean and its tests
* AtomicFUGradlePlugin: More consistent task naming & code refactoring
## Version 0.11.6
* Kotlin/Native version 0.9
## Version 0.11.5
* Gradle plugin for JS: Fixed paths on Windows
## Version 0.11.4
* JS: Transformer added. It is now a compile-only dependency just like on JVM.
* JVM: Default transformation variant is changed back to JDK6-compatible "FU".
* `atomicfu { variant = xxx }` configuration section in Gradle can be used to change it.
## Version 0.11.3
* Fixed lost files during class analysis phase.
## Version 0.11.2
* Kotlin version 1.2.61
* Kotlin/Native version 0.8.2
* More user-friendly Gradle plugin for Kotlin/JVM and multi-release jar by default. See updated section in [README.md](README.md#Gradle)
* Supports `internal` atomic variables that are accessed from a different package in the same module.
## Version 0.11.1
* Kotlin version 1.2.60
* Kotlin/Native version 0.8.1
## Version 0.11.0
* AtomicBoolean support (see #6)
* Kotlin/Native 0.9-dev-2922, all platforms, published to Maven Central
## Version 0.10.3-native
* Kotlin 1.2.51.
* Initial Kotlin/Native support:
* Build for Kotlin/Native 0.8.
* Only JS-like single-threaded applications are supported (no actual atomics).
* Supported targets: "ios_arm64", "ios_arm32", "ios_x64", "macos_x64".
* NOTE: This version is not available in NPM and Maven Central. Use this Bintray repository:
* `maven { url "https://kotlin.bintray.com/kotlinx" }`
## Version 0.10.3
* Kotlin 1.2.50.
## Version 0.10.2
* JS: Main file renamed to kotlinx-atomicfu.js to match NPM module name.
## Version 0.10.1
* JS: NPM deployment.
## Version 0.10.0
* Kotlin 1.2.41.
* Multiplatform:
* Extracted common code into `atomicfu-common` module.
* Basic support on JS via `atomicfu-js` module (boxed objects, Bintray publishing only).
* JVM transformer:
* Preserve annotations on atomic fields.
* Ignore no-ops in flow analyzer (support more variety of code patterns).
## Version 0.9.2
* Replaced deprecated kotlin-stdlib-jre8 dependency with kotlin-stdlib-jdk8.
## Version 0.9.1
* Kotlin 1.2.0
## Version 0.9
* Support generation of `VarHandle` variant for Java 9.
## Version 0.8
* `atomicfu-gradle-plugin` introduced.
## Version 0.7
* Fixed lost ACC_STATIC on <clinit> methods.
* Publish to Maven Central.
## Version 0.6
* toString defined for debugging.
## Version 0.5
* Longer timeout to detect stalls in lock-free code, with shutdown logic
that detected them even on short runs.
* Kotlin 1.1.4
## Version 0.4
* Publish sources.
* Provide top-level `pauseLockFreeOp` for debugging.
* Stability improvements.
## Version 0.3
* Improved handling of compiler local variables for atomic fields.
* Support atomicVar.value = constant (with LDC instruction).
* Provide randomSpinWaitIntermission for lock-freedom tests.
## Version 0.2
* Support non-private atomic fields in nested classes that are accessed by other
classes in the same compilation unit.
* Support for lock-freedom testing on unprocessed code
(other potential uses via interceptors in the future).
## Version 0.1
* Initial release.