On Saturday, 13 September 2014 at 18:06:47 UTC, Kagamin wrote:
On Thursday, 11 September 2014 at 16:26:37 UTC, Marco Leise
wrote:
Immutable data structures cannot have pointers changed or set
to null. Also they can only reference other immutable data.
This means that they form sort of a big blob that is kept
alive by one or more pointers to it, but the GC never needs
to check the immutable pointers inside of it.
GC still should free unreachable parts of that blob.
Shared/unshared may affect implementations that provide thread
local GC. E.g. only shared data needs to be handled by a
global stop the world GC. I'm not sure though.
Can get in a way, when you need a thread-local immutable object.
Hmm... when is that necessary? Wouldn't `const` be enough?
AFAICS, `immutable` is mostly useful for shared data.