GitXplorerGitXplorer
g

SwiftCompatibleAtomics

public
1 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
5dc2a41b4ee3f655b4386f79573b0bf3b1dee74c

Update README.md

gglessard committed 4 years ago
Verified
1f3c64b3d5cdfa8bbedad58db6f4394db2db0468

point to renamed main branch

gglessard committed 4 years ago
Verified
76c7733983946c74ec5dd6bef7aa7511d8f6127a

Update README.md

gglessard committed 4 years ago
Verified
319c513aff3ed244dc6d78339f20ffc6688a4fc8

Update README.md

gglessard committed 5 years ago
Unverified
56e03e6bf8bb0efef6e6de07897d4d9880fbb3ee

rename internal types and functions

gglessard committed 5 years ago
Verified
cc48d183180c9c046f92819269b965ae16d8c926

Merge pull request #4 from glessard/devel

gglessard committed 5 years ago

README

The README file for this repository.

An official Atomics library for Swift has been released! Get it at https://github.com/apple/swift-atomics

This one is now archived and only exists as a curiosity.

SwiftCompatibleAtomics Build Status

This is a source-compatible version of Karoy Lorentey's pitched Atomics submodule for the Swift standard library. His pitch is here, his implementation is here, the discussion is here.

This package uses Clang's C11 atomics support, and works with Swift 4.1 and up. It cannot make some of the guarantees that the official implementation can make, but code that is legal with import Atomics should also be legal with import SwiftCompatibleAtomics. This gives many Swift users the chance to try out the pitched functionality without having to build a custom toolchain.

While the major version is less than 1, the intention is to keep pace with the pitched implementation of Atomics, incrementing the minor version when a source-breaking change occurs in the Atomics pitch.

If and when the pitch is accepted and its implementation merged, the corresponding compatible implementation will become 1.0.0.

In the meantime, use by adding the following dependency to your project's Package.swift:

.package(url: "https://github.com/glessard/SwiftCompatibleAtomics", from: "0.7.0")

or, if you prefer to avoid source breaking changes:

.package(url: "https://github.com/glessard/SwiftCompatibleAtomics", .upToNextMinor(from: "0.7.0"))

Version History

  • 0.1.0

    Initial version

  • 0.2.0

    Fixed a source compatibility issue

  • 0.3.0

    Renamed 'UnsafeAtomic' to 'UnsafePointerToAtomic', matching pitched implementation as of April 7th

  • 0.4.0

    Implemented the solution in two protocol layers, matching pitched implementation as of April 10th

    This version fixes the compilation issue with downloadable Swift 5.1 toolchains.

  • 0.5.0

    API tweaks, layout improvements for 'AtomicInteger'

  • 0.6.0

    Clean up underlying interface to Clang's C11 atomics

    AtomicProtocol renamed to AtomicValue

  • 0.7.0

    Further cleanup of the underlying interface to C11 atomics