1# Change log for kotlinx.atomicfu 2 3# Version 0.16.0 4 5* Update Kotlin to 1.5.0. 6* Supported x86_64-based watchOS simulator target. (#177). 7 8# Version 0.15.2 9 10* Update kotlinx-metadata to 0.2.0. 11* Update Kotlin to 1.4.30. 12* Added kotlin space repository. 13 14# Version 0.15.1 15 16* Maven central publication (#173). 17* Binary compatibility with IR (#170). 18* Supported garbage-free multi-append in debug trace (#172). 19 20# Version 0.15.0 21 22* Tracing atomic operations (#20). 23* Supported delegated properties (#83). 24* Fixed visibility modifiers of synthetic fields and classes (#144). 25* Introduced `size` method for atomic arrays (#149). 26* Update Kotlin to 1.4.10. 27 28# Version 0.14.4 29 30* Fixed bug when Maven plugin wasn't published 31* Migrate to new Kotlin HMPP metadata for multiplatform projects 32* Update Kotlin to 1.4.0 33 34# Version 0.14.3 35 36* Update to Kotlin 1.3.71. 37* Enable HMPP and new JS IR backend compilation. 38 39# Version 0.14.2 40 41* Update to Kotlin 1.3.70. 42 43# Version 0.14.1 44 45* Fixed broken JVM transformer after upgrade to ASM 7.2. 46 47# Version 0.14.0 48 49* Updated to Kotlin 1.3.60. 50* Updated to ASM 7.2. 51* Support locks (SynchronizedObject and ReentrantLock). 52* Freezable atomics on Kotlin/Native. 53 54# Version 0.13.2 55 56* Added release notes. 57* Added the original classesDirs to the friend paths of test compilations. 58 59# Version 0.13.1 60 61* Better diagnostics when LockFreedomTestEnvironment fails to shutdown. 62* Fixed looking for local variables scope labels. 63 64# Version 0.13.0 65 66* Gradle version 5.6.1 with Gradle metadata format version 1.0 (stable) for native modules. 67* Optimized volatile-only fields in JVM. 68* Supported unchecked cast erasure (including array elements). 69* Fixed inline functions on array elements. 70* Fixed shutdown sequence of LockFreedomTestEnvironment. 71 72# Version 0.12.11 73 74* Support suspending functions in LockFreedomTestEnvironment. 75 76# Version 0.12.10 77 78* Updated to Kotlin 1.3.50 79 80# Version 0.12.9 81 82* Updated to Kotlin 1.3.40 83 84# Version 0.12.8 85 86* Fixed getting array elements by named index. 87* Fixed broken npm publishing. 88 89# Version 0.12.7 90 91* Fixed BooleanArray setValue. 92* Fixed removal of inline methods on atomicfu types from bytecode. 93* Adjust kotlin.Metadata in JVM classes to remove atomicfu references completely. 94 95# Version 0.12.6 96 97* Support additional configuration for dependencies and transforms. 98* Get array field fixed (see #61). 99 100# Version 0.12.5 101 102* Fixed Gradle plugin compatibility with `kotlin-multiplatform` plugin. 103 104# Version 0.12.4 105 106* Gradle plugin automatically adds dependencies. 107* Added support for inline extensions on `AtomicXxx` types. 108 109# Version 0.12.3 110 111* Updated to Kotlin 1.3.30 112 113# Version 0.12.2 114 115* Fixed to skip changing source path for unprocessed native output (see #51). 116* Fixed inlining of atomic operations on JS (see #52). 117 118# Version 0.12.1 119 120* Gradle 4.10 with metadata version 0.4. 121* No metadata for everything except native. 122 123# Version 0.12.0 124 125* Kotlin version 1.3.11. 126* Support top-level atomic variables. 127* Support arrays of atomic variables. 128* Project is built with kotlin-multiplatform plugin. 129 130# Version 0.11.11 131 132* Kotlin version Kotlin version 1.3.0-rc-146 (with K/N). 133* Gradle plugin supports projects that use `kotlin-multiplatform` plugin. 134* Disable Gradle metadata publishing for all but native modules. 135* JS transformer is more robust and retains line numbers (see #25). 136 137# Version 0.11.10 138 139* Kotlin version 1.3.0-rc-57 & Kotlin/Native 0.9.2 140 141# Version 0.11.9 142 143* Kotlin/Native version 1.3.0-rc-116 (0.9.3) 144* Kotlin version 1.2.71 145* Incremental JS compilation is fixed in plugin 146 147## Version 0.11.7 148 149* Fixed non-transformed AtomicBoolean and its tests 150* AtomicFUGradlePlugin: More consistent task naming & code refactoring 151 152## Version 0.11.6 153 154* Kotlin/Native version 0.9 155 156## Version 0.11.5 157 158* Gradle plugin for JS: Fixed paths on Windows 159 160## Version 0.11.4 161 162* JS: Transformer added. It is now a compile-only dependency just like on JVM. 163* JVM: Default transformation variant is changed back to JDK6-compatible "FU". 164 * `atomicfu { variant = xxx }` configuration section in Gradle can be used to change it. 165 166## Version 0.11.3 167 168* Fixed lost files during class analysis phase. 169 170## Version 0.11.2 171 172* Kotlin version 1.2.61 173* Kotlin/Native version 0.8.2 174* More user-friendly Gradle plugin for Kotlin/JVM and multi-release jar by default. See updated section in [README.md](README.md#Gradle) 175* Supports `internal` atomic variables that are accessed from a different package in the same module. 176 177## Version 0.11.1 178 179* Kotlin version 1.2.60 180* Kotlin/Native version 0.8.1 181 182## Version 0.11.0 183 184* AtomicBoolean support (see #6) 185* Kotlin/Native 0.9-dev-2922, all platforms, published to Maven Central 186 187## Version 0.10.3-native 188 189* Kotlin 1.2.51. 190* Initial Kotlin/Native support: 191 * Build for Kotlin/Native 0.8. 192 * Only JS-like single-threaded applications are supported (no actual atomics). 193 * Supported targets: "ios_arm64", "ios_arm32", "ios_x64", "macos_x64". 194* NOTE: This version is not available in NPM and Maven Central. Use this Bintray repository: 195 * `maven { url "https://kotlin.bintray.com/kotlinx" }` 196 197## Version 0.10.3 198 199* Kotlin 1.2.50. 200 201## Version 0.10.2 202 203* JS: Main file renamed to kotlinx-atomicfu.js to match NPM module name. 204 205## Version 0.10.1 206 207* JS: NPM deployment. 208 209## Version 0.10.0 210 211* Kotlin 1.2.41. 212* Multiplatform: 213 * Extracted common code into `atomicfu-common` module. 214 * Basic support on JS via `atomicfu-js` module (boxed objects, Bintray publishing only). 215* JVM transformer: 216 * Preserve annotations on atomic fields. 217 * Ignore no-ops in flow analyzer (support more variety of code patterns). 218 219## Version 0.9.2 220 221* Replaced deprecated kotlin-stdlib-jre8 dependency with kotlin-stdlib-jdk8. 222 223## Version 0.9.1 224 225* Kotlin 1.2.0 226 227## Version 0.9 228 229* Support generation of `VarHandle` variant for Java 9. 230 231## Version 0.8 232 233* `atomicfu-gradle-plugin` introduced. 234 235## Version 0.7 236 237* Fixed lost ACC_STATIC on <clinit> methods. 238* Publish to Maven Central. 239 240## Version 0.6 241 242* toString defined for debugging. 243 244## Version 0.5 245 246* Longer timeout to detect stalls in lock-free code, with shutdown logic 247 that detected them even on short runs. 248* Kotlin 1.1.4 249 250## Version 0.4 251 252* Publish sources. 253* Provide top-level `pauseLockFreeOp` for debugging. 254* Stability improvements. 255 256## Version 0.3 257 258* Improved handling of compiler local variables for atomic fields. 259* Support atomicVar.value = constant (with LDC instruction). 260* Provide randomSpinWaitIntermission for lock-freedom tests. 261 262## Version 0.2 263 264* Support non-private atomic fields in nested classes that are accessed by other 265 classes in the same compilation unit. 266* Support for lock-freedom testing on unprocessed code 267 (other potential uses via interceptors in the future). 268 269## Version 0.1 270 271* Initial release. 272