Why do immutable variables need reference counting?

norm norm.rowtree at gmail.com
Mon Apr 11 03:05:19 UTC 2022


On Sunday, 10 April 2022 at 23:19:47 UTC, rikki cattermole wrote:
>
> immutable isn't tied to lifetime semantics.
>
> It only says that this memory will never be modified by anyone 
> during its lifetime.

This is clearly where I am misunderstanding. In my mind immutable 
data means the data will not change and neither will the result 
of reading that data, ever.

I don't get how you can have thread safety guarantees based on 
immutable if reading that data in a thread suddenly becomes 
undefined behaviour and could return anything. That isn't 
immutable then. Once instantiated immutable data persists for the 
remainder of the program. You may not have access if the variable 
goes out of scope, but if you do it will always be there and 
always return the same value when you read from memory.

Thanks for replying, I am not trying to be argumentative here, 
just stating what I thought it meant and why I am confused. I'll 
be doing some more reading of the D spec to better understand 
immutability.

Cheers,
Norm




More information about the Digitalmars-d-learn mailing list