The "no gc" crowd

Adam D. Ruppe destructionator at gmail.com
Tue Oct 8 17:12:20 PDT 2013


On Wednesday, 9 October 2013 at 00:00:09 UTC, ponce wrote:
> Resource Guard?

Actually, I've been coming to see the gc as being an 
implementation detail for immutability, and memory safety is a 
secondary piece.

With immutable though, you are guaranteeing that the contents 
never change. Never change means the memory must never be reused 
either - thus never freed.

But we want to reclaim that resource if we can. The GC lets us do 
that without ever breaking the guarantee of immutability.


To this end, I really, really want to see the scope parameter 
(and return value!) thing implemented. All mutable and const 
slices and pointers would be assumed to be scope (or if this 
breaks too much code, strongly recommended to be scope at all 
times). That way, you won't let the reference escape, meaning it 
is safe to manage those resources with destructors on the outer 
layer, while using them for cheap on inner layers by just passing 
the pointer, which can even be implicit, iff scope.

Those wouldn't need the gc.

Immutable resources, however, are always safe to store, so scope 
immutable would be irrelevant. This illusion is maintained with 
the gc.


More information about the Digitalmars-d mailing list