On 15 November 2012 17:17, Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> wrote:
On 11/15/12 1:08 AM, Manu wrote:
On 14 November 2012 19:54, Andrei Alexandrescu
<SeeWebsiteForEmail@erdani.org <mailto:SeeWebsiteForEmail@erdani.org>>

wrote:
    Yah, the whole point here is that we need something IN THE LANGUAGE
    DEFINITION about atomicLoad and atomicStore. NOT IN THE IMPLEMENTATION.

    THIS IS VERY IMPORTANT.


I won't outright disagree, but this seems VERY dangerous to me.

You need to carefully study all popular architectures, and consider that
if the language is made to depend on these primitives, and the
architecture doesn't support it, or support that particular style of
implementation (fairly likely), than D will become incompatible with a
huge number of architectures on that day.

All contemporary languages that are serious about concurrency support atomic primitives one way or another. We must too. There's no two ways about it.

I can't resist... D may be serious about the idea of concurrency, but it clearly isn't serious about concurrency yet. shared is a prime example of that.
We do support atomic primitives 'one way or another'; there are intrinsics on all compilers. Libraries can use them.
Again, this thread seemed to be about urgent action... D needs a LOT of work on it's concurrency model, but something of an urgent fix to make a key language feature more useful needs to leverage what's there now.