Skip to content

Atomics 1.0.2

Compare
Choose a tag to compare
@lorentey lorentey released this 24 Sep 23:43
· 127 commits to main since this release
919eb1d

This is a patch release that introduces initial support for building this package with the Swift 5.5 compiler.

(More fully-featured support with additional Sendable conformances will come in a future minor release.)

Fixes

  • The package now has a workaround for an arm64 code generation issue for double wide atomics in the version of LLVM that ships in Swift 5.5. (#41)
  • When building with Swift 5.5, UnsafeAtomic and UnsafeAtomicLazyReference now only conform to Sendable when their value is. Swift 5.5 implicitly adds unconditional conformances to these types in 1.0.1, which isn't right. (#47)
  • The package now has better support for building with CMake. (#39) (Note that the CMake build configuration is intended only to enable the use of this package within Swift toolchain builds. It isn't part of the package's public API, so it is subject to change in any release.)

Pull Requests

  • #38 [shims] Only define atomic shims in Swift's Clang Importer (by @lorentey)
  • #39 [cmake] Fix building with CMake (by @lorentey)
  • #40 Add support test script (by @lorentey)
  • #43 Implement double-wide loads with compare-exchange on arm64 in debug builds with the Swift 5.5 compiler (by @lorentey)
  • #44 Update utility scripts (by @lorentey)
  • #48 Fix UnsafeAtomic's Sendable conformance (by @lorentey)

Thank you to everyone who contributed to this release!