Smart pointers instead of GC?

Frank Bauer y at z.com
Fri Jan 31 20:33:22 PST 2014


Yes, that is what Rust calls an "owning pointer". While we are at 
it, we might as well dream of "non-owning" or "borrowed" 
pointers, a.k.a. references in Rust. They don't have an effect on 
memory-deallocation when they go out of scope, but they prevent 
the owning pointer they "borrow" from (i.e. are assigned from) 
from being reassigned to a different object as long as there are 
borrowing references in scope. There is more to owning and 
borrowed pointers, but I think that is the essence.

@Andrei (who I believe is the go-to (!) guy for all things 
memeory allocation related right now):
IIRC you mentioned that it was convenient to have the GC around 
for implementing the D language features. Would it just be a 
minor inconvenience to drop that dependency in the generated 
compiler output and replace it with new/delete or something 
equivalent to owning pointers, say over the next one or two 
years? Or would it be a major roadblock that would require too 
much redesign work? Maybe you could test the concept of owning 
and borrowed pointers internally for some compiler components 
before actually bringing them "to the surface" for us to play 
with, if it turns out useful. But only of course, if we could 
leave the rest of D as good as it is today.

I would really like to see the GC-free requesting crowd be taken 
a lttle more seriously. Without asking them to forego D features 
or do manual C++-style memory management. Javas and .NETs garbage 
collectors had enough time to mature and are still unsatisfactory 
for many applications.


More information about the Digitalmars-d mailing list