On 9/24/2011 9:30 AM, Andrei Alexandrescu wrote:
On 9/24/11 1:12 CDT, Rainer Schuetze wrote:

On 9/22/2011 4:10 PM, Andrei Alexandrescu wrote:
On 9/22/11 3:02 AM, Peter Alexander wrote:
On 22/09/11 7:04 AM, Andrei Alexandrescu wrote:
The initial submission got junked so I resubmitted:

http://www.reddit.com/r/programming/comments/knn5p/thoughts_on_immutability_in_d/





Andrei

Thanks for the reddit'ing. I launched up google analytics this morning
and noticed a sudden spike. That could only mean one thing :-)

Out of interest, does anyone have any criticism of my post, esp. if
there's any technical inaccuracies (or just disagreement?)

You could have specified that e.g. mutable state can be implemented
safely with the help of a global hash table.

Andrei

If this is allowed by the compiler, doesn't that break all the
guarantees transitive immutability tries to make? Aren't we back to
"faith based programming" this way?

Not at all. Global mutable memory is what it is to everyone.

Andrei

I'm probably missing something, but what are the guarantees given by the type system, if a property is implemented by a getter function:

int globId;

class C
{
        @property id() const { return ++globId; }
}

int main()
{
        immutable(C) c = new immutable(C);
        return c.id;
}

Is c.id thread-safe? no! Is it constant? no! How does this help in multi-threaded applications that access c?

Reply via email to