[Accepted] SE-0282: Interoperability with the C Atomic Operations Library

The review for SE-0282: Interoperability with the C Atomic Operations Library ran from June 8 to June 25. The core team has decided to accept this proposal. This revision, focused on interop with the C memory model, had more or less unanimous support. However, discussion revealed ambiguity about the interaction of Swift code with memory_order_consume. The following text will be added to the accepted proposal to clarify:

This proposal does not specify whether/how dependency chains arising from the C/C++ memory_order_consume memory ordering work in Swift. The consume ordering as specified in the C/C++ standards is not implemented in any C/C++ compiler, and we join the current version of the C++ standard in encouraging Swift programmers not to use it. We expect to tackle the problem of efficient traversal of concurrent data structures in future proposals. Meanwhile, Swift programmers can start building useful concurrency constructs using relaxed, acquire/release, and sequentially consistent memory orderings imported from C.

Thank you to everyone who participated in both rounds of review!

18 Likes