- Updated Kotlin to
2.0.21
(#479). - Removed JS Legacy Transformer and disabled
transformJs
flag by default (#478). - Added
api
kotlinx-atomicfu dependency for JS and WASM targets (#475). - Supported deprecated
linuxArm32Hfp
target (#455). - Run Gradle plugin compilation via the fixed Kotlin compiler version (#472).
- Updated ASM to 9.7 (#473).
- Completed refactoring the library build scripts (#421). Kudos to @dkrasnoff! 🎉
- Added build/configuration caches and scans (#451).
- Got rid of posix interop (#440).
- Apply
atomicfu-gradle-plugin
by idorg.jetbrains.kotlinx.atomicfu
without buildscript configuration (#443)(#445). - Lots of cleanups and improvements in the build scripts. Thanks, @dkrasnoff!
- Updated Kotlin to
2.0.0
(#442). - Updated kotlinx-metadata to
2.0.0
(#441). - Updated Gradle to
8.7
.
- Move the logic from koltin repository atomicfu gradle plugin to the gradle plugin in the library (#406).
- Store the version of
atomicfu-gradle-plugin
inatomicfu.properties
file and read it from this file during application (#405). - Fixed KT-63413, SynchronizedObject does not appear in the project Metadata (#404).
- ReentrantLock expect class declares a default constructor (#411).
- Always add a transitive dependency to the Native target (#380).
- atomicfu-gradle-plugin adds atomicfu compiler plugin dependency transitively, and it's version is resolved on the user's side (#386).
- Fixed the bug with Java sources being lost during bytecode transformation (#395).
- Updated ASM version to 9.6 (#390).
- Updated Kotlin to 1.9.21 (#361).
- Update to Kotlin 1.9.21 fixes regression with klib incompatibility (#365).
- Updated Kotlin to 1.9.20 (#361).
- Updated Gradle version to 8.3.
- Supported transformations for Native targets 🎉 (#363) .
- Introduced WebAssembly target (
wasmJs
andwasmWasi
) 🎉 (#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).
- 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).
- 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).
- Fix for unresolved
kotlinx-atomicfu-runtime
dependency error (https://youtrack.jetbrains.com/issue/KT-57235), please see the corresponding PR for more comments (#290).
- 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).
- Update Kotlin to 1.8.10.
- Support all official K/N targets (#275).
- Update Kotlin to 1.8.0.
- Update LV to 1.8 (#270).
- Prepare atomicfu for including to the Kotlin Aggregate build (#265).
- Support JVM IR compiler plugin (#246).
- Update Kotlin to 1.7.20.
- Added more tests for atomicfu-gradle-plugin (#255).
- Fix KGP compatibility bug with freeCompilerArgs modification (#247).
- Update kotlinx.metadata to 0.5.0 (#245).
- Update gradle version to 6.8.3 (#244)
- Fix for atomicfu-gradle-plugin application to the MPP project (for Kotlin 1.7.20).
- In Kotlin 1.7.10 the name of
atomicfu-runtime
module was reverted back tokotlinx-atomicfu-runtime
, as the renaming was an incompatible change. Fixedatomicfu-gradle-plugin
to addkotlinx-atomicfu-runtime
dependency directly.
- Fix for the compatibility issue: add
atomicfu-runtime
dependency directly since Kotlin 1.7.10.
- 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.
- Adding compiler plugin dependency only for projects with KGP >= 1.6.20 (#226).
- Compiler plugin runtime dependency fixes (#230).
- Update README badges (#228).
- 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.
- Support of
org.jetbrains.kotlin.js
plugin (#218). - Fixed configuration cache bug. (#216).
- Bug fixes for delegated fields support (#179).
- Update Kotlin to 1.6.0.
- Update ASM minimal api version to ASM7 (#203).
- Add explicit module-info for JPMS compatibility (#201).
- Kotlin is updated to 1.5.30.
- All references to Bintray are removed from artefacts POMs.
- Added new Apple Silicon targets for K/N.
- Update Kotlin to 1.5.20.
- ASM 9.1 for Java 15+ support (#190).
- Removing extra atomicfu references from LVT.
- Update Kotlin to 1.5.0.
- Supported x86_64-based watchOS simulator target. (#177).
- Update kotlinx-metadata to 0.2.0.
- Update Kotlin to 1.4.30.
- Added kotlin space repository.
- Maven central publication (#173).
- Binary compatibility with IR (#170).
- Supported garbage-free multi-append in debug trace (#172).
- 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.
- Fixed bug when Maven plugin wasn't published
- Migrate to new Kotlin HMPP metadata for multiplatform projects
- Update Kotlin to 1.4.0
- Update to Kotlin 1.3.71.
- Enable HMPP and new JS IR backend compilation.
- Update to Kotlin 1.3.70.
- Fixed broken JVM transformer after upgrade to ASM 7.2.
- Updated to Kotlin 1.3.60.
- Updated to ASM 7.2.
- Support locks (SynchronizedObject and ReentrantLock).
- Freezable atomics on Kotlin/Native.
- Added release notes.
- Added the original classesDirs to the friend paths of test compilations.
- Better diagnostics when LockFreedomTestEnvironment fails to shutdown.
- Fixed looking for local variables scope labels.
- 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.
- Support suspending functions in LockFreedomTestEnvironment.
- Updated to Kotlin 1.3.50
- Updated to Kotlin 1.3.40
- Fixed getting array elements by named index.
- Fixed broken npm publishing.
- Fixed BooleanArray setValue.
- Fixed removal of inline methods on atomicfu types from bytecode.
- Adjust kotlin.Metadata in JVM classes to remove atomicfu references completely.
- Support additional configuration for dependencies and transforms.
- Get array field fixed (see #61).
- Fixed Gradle plugin compatibility with
kotlin-multiplatform
plugin.
- Gradle plugin automatically adds dependencies.
- Added support for inline extensions on
AtomicXxx
types.
- Updated to Kotlin 1.3.30
- Fixed to skip changing source path for unprocessed native output (see #51).
- Fixed inlining of atomic operations on JS (see #52).
- Gradle 4.10 with metadata version 0.4.
- No metadata for everything except native.
- Kotlin version 1.3.11.
- Support top-level atomic variables.
- Support arrays of atomic variables.
- Project is built with kotlin-multiplatform plugin.
- 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).
- Kotlin version 1.3.0-rc-57 & Kotlin/Native 0.9.2
- Kotlin/Native version 1.3.0-rc-116 (0.9.3)
- Kotlin version 1.2.71
- Incremental JS compilation is fixed in plugin
- Fixed non-transformed AtomicBoolean and its tests
- AtomicFUGradlePlugin: More consistent task naming & code refactoring
- Kotlin/Native version 0.9
- Gradle plugin for JS: Fixed paths on Windows
- 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.
- Fixed lost files during class analysis phase.
- 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
internal
atomic variables that are accessed from a different package in the same module.
- Kotlin version 1.2.60
- Kotlin/Native version 0.8.1
- AtomicBoolean support (see #6)
- Kotlin/Native 0.9-dev-2922, all platforms, published to Maven Central
- 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" }
- Kotlin 1.2.50.
- JS: Main file renamed to kotlinx-atomicfu.js to match NPM module name.
- JS: NPM deployment.
- 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).
- Extracted common code into
- JVM transformer:
- Preserve annotations on atomic fields.
- Ignore no-ops in flow analyzer (support more variety of code patterns).
- Replaced deprecated kotlin-stdlib-jre8 dependency with kotlin-stdlib-jdk8.
- Kotlin 1.2.0
- Support generation of
VarHandle
variant for Java 9.
atomicfu-gradle-plugin
introduced.
- Fixed lost ACC_STATIC on methods.
- Publish to Maven Central.
- toString defined for debugging.
- Longer timeout to detect stalls in lock-free code, with shutdown logic that detected them even on short runs.
- Kotlin 1.1.4
- Publish sources.
- Provide top-level
pauseLockFreeOp
for debugging. - Stability improvements.
- Improved handling of compiler local variables for atomic fields.
- Support atomicVar.value = constant (with LDC instruction).
- Provide randomSpinWaitIntermission for lock-freedom tests.
- 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).
- Initial release.