On Monday, 15 October 2018 at 20:54:12 UTC, jmh530 wrote:
On Monday, 15 October 2018 at 20:44:35 UTC, Manu wrote:
snip

Are you saying `is(immutable(int) == shared) == true)` ??

From the spec:
"Applying any qualifier to immutable T results in immutable T. This makes immutable a fixed point of qualifier combinations and makes types such as const(immutable(shared T)) impossible to create."

Example:

import std.stdio : writeln;

void main()
{
writeln(is(immutable(int) == shared immutable(int)) == true); //prints true
}

The philosophy of this is that: the value never changes, therefore only one copy of the variable needs to exist (i.e. immutable variables declared at module scope are _not_ thread local) and can be shared between threads with no race conditions.

I'm saying that while what you propose sounds very reasonable, we should make sure that reading immutable variables is still good ;)

Reply via email to