On Tuesday, 12 July 2016 at 14:38:27 UTC, ag0aep6g wrote:
I'm not sure what you're saying here. Should unsafe reading and
writing of shared types simply be allowed and have the common
syntax (as it is now), and the programmer should make sure that
things are set up correctly?
That's a reasonable stance, but it's not the one that D takes
towards shared when `shared int x; ++x` is deprecated.
shared only differentiates between shared and unshared data.
Teaching people to write legit concurrent code is a different
task. Increment of a shared variable doesn't have a compelling
use case so whatever happens to it is not important, just storing
shared data is more common.
Supporting non-atomic load in atomicLoad would be weird,
wouldn't it? It would be opposite of what it says on the label.
The name can be different, e.g. fast load, which better reflects
its purpose.
Would the point be that it calls the shared postblit (unlike
casting shared away and then copying)? As mentioned above, I'd
hope that a function that does that can be written.
Postblit is a problem with casting. Performance is a problem with
atomicLoad.