DIP 1024--Shared Atomics--Community Review Round 1

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Tue Oct 15 11:28:24 UTC 2019

On Tuesday, 15 October 2019 at 10:25:54 UTC, Gregor Mückl wrote:
> generated by at most one of the running threads. So there is no 
> need to synchronize memory writes when the underlying hardware 
> architecture provides sufficient cache coherency guarantees.

So what you basically is saying is that a low level language 
should be careful about assuming a particular hardware model and 
leave more to intrinsics and libraries. I think that is 
reasonable, because hardware does change and concurrent 
programming strategies change.

So D has to figure out whether it is a low level language for 
many architectures or a specific x86 centric one limited to 
common contemporary programming patterns.

My perception is that D does not need to lock down «shared» but 
can rather improve on these:

1. A set of basic lowlevel building blocks + intrinsics (which D 
has mostly).

2. Metaprogramming features to build libraries that support 
contemporary patterns (which D has mostly).

3. Language features that support clean static analysis tooling 
(perhaps lacking).

But given the history of D, it will probably go with what is 
demanded based on contemporary x86 patterns.

More information about the Digitalmars-d mailing list