On 4 Jul 2015 11:12, "Iain Buclaw" <[email protected]> wrote: > > On 4 July 2015 at 10:39, rsw0x via Digitalmars-d < [email protected]> wrote: >> >> On Saturday, 4 July 2015 at 07:16:09 UTC, Iain Buclaw wrote: >>> >>> On 4 Jul 2015 00:50, "rsw0x via Digitalmars-d" < [email protected]> wrote: >>>>> >>>>> [...] >>> >>> __sync_* builtins to the new (more compatible with how core.atomics is supposed to function) __atomic_* builtins. >>>>> >>>>> [...] >>> >>> accepted as valid, but makes no sense. >>>>> >>>>> [...] >>> >>> both cases to throw a compilation error (using static assert). However I'd like the core druntime team to be on board with this. >>>> >>>> [...] >>> >>> forgot until I read this. >>> >>> [...] >> >> >> This is how it's currently implemented in C++ as of C++14, correct? >> acquire semantics on a write and release semantics on a load make no sense, so this probably should be changed. > > > > Yes, that is correct. I think closely matching the behaviour of C++14 is the safe option given that this module shares a lot in common with std::atomic. > > std::atomic::atomic_compare_exchange_strong -> core.atomic.cas > std::atomic::memory_order -> core.atomic.MemoryOrder > std::atomic::atomic_load -> core.atomic.atomicLoad > std::atomic::atomic_store -> core.atomic.atomicStore > std::atomic::atomic_thread_fence -> core.atomic.atomicFence > > Iain. > >
OK, I've added static asserts to my PR. Iain.
