8.5 KiB
8.5 KiB
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-runtimemodule was reverted back tokotlinx-atomicfu-runtime, as the renaming was an incompatible change. Fixedatomicfu-gradle-pluginto addkotlinx-atomicfu-runtimedependency directly.
Version 0.18.1
- Fix for the compatibility issue: add
atomicfu-runtimedependency 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.jsplugin (#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
sizemethod 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-multiplatformplugin.
Version 0.12.4
- Gradle plugin automatically adds dependencies.
- Added support for inline extensions on
AtomicXxxtypes.
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-multiplatformplugin. - 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
- Supports
internalatomic 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-commonmodule. - Basic support on JS via
atomicfu-jsmodule (boxed objects, Bintray publishing only).
- Extracted common code into
- 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
VarHandlevariant for Java 9.
Version 0.8
atomicfu-gradle-pluginintroduced.
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
pauseLockFreeOpfor 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.