On Mon, 11 Jun 2012 07:56:12 -0400, Artur Skawina <art.08...@gmail.com>
wrote:
On 06/11/12 12:35, Steven Schveighoffer wrote:
I wholly disagree. In fact, keeping the full qualifier intact
*enforces* incorrect code, because you are forcing shared semantics on
literally unshared data.
Never would this start ignoring shared on data that is truly shared.
This is why I don't really get your argument.
If you could perhaps explain with an example, it might be helpful.
*The programmer* can then treat shared data just like unshared. Because
every
load and every store will "magically" work. I'm afraid that after more
than
two or three people touch the code, the chances of it being correct
would be
less than 50%...
The fact that you can not (or shouldn't be able to) mix shared and
unshared
freely is one of the main advantages of shared-annotation.
If shared variables aren't doing the right thing with loads and stores,
then we should fix that.
But leaving things "the way they are" doesn't fix any problems:
shared int x;
void main()
{
auto y = x; // typeof(y) == shared(int)
y += 5;
x = y;
}
How is this any more "correct" than if y is int?
-Steve