# Change log for kotlinx.atomicfu # 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 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.