Skip to content

Naming, value types and tests for `Addr#` atomics

vdukhovni requested to merge trac-vdukhovni/ghc:cas-addr into master

The atomic Exchange and CAS operations on integral types are updated to take and return more natural Word# rather than Int# values. These are bit-block not arithmetic operations, and the sign bit plays no special role.

Standardises the names to atomic<OpType><ValType>Addr#, where OpType is one of Cas or Exchange and ValType is presently either Word or Addr. Eventually, variants for Word32 and Word64 can and should be added, once #11953 (closed) and related issues (e.g. #13825 (closed)) are resolved.

Adds tests for Addr# CAS that mirror existing tests for MutableByteArray#.

Edited by vdukhovni

Merge request reports