Getting completely (I mean ENTIRELY) rid off GC

Joakim via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 11 11:46:30 PDT 2014


On Thursday, 11 September 2014 at 18:32:10 UTC, Daniel Alves 
wrote:
> You know, currently I spend most of my time programming in 
> ObjC, but I really love C, C++ and D.
>
> Since the Clang Compiler, ObjC dropped the GC entirely. Yes, 
> that's right, no GC at all. And, in fact, it does support 
> concurrent programming and everything else. The magic behind it 
> is ARC - Automated Reference Counting 
> (http://clang.llvm.org/docs/AutomaticReferenceCounting.html): 
> the compiler analyzes your code, figures out object scopes and 
> sets the correct calls to retain/release/autorelease (for those 
> who are not familiar with ObjC, pointers are mostly reference 
> counted). So there is no need for a GC and all its 
> complications.
>
> In addition to that, Rusty also has an approach like ObjC 
> called Region Pointers and objects' Lifetime 
> (http://doc.rust-lang.org/guide-pointers.html#boxes). The idea 
> is the same, but, depending on the type of the pointer, the 
> compiler may add a call for freeing or for decrementing a 
> pointer reference counter.
>
> Finally, it looks like there is a language called Cyclone that 
> goes the same way (paper here: 
> http://www.cs.umd.edu/projects/cyclone/papers/cyclone-regions.pdf)
>
> Since I read Andrei's book, D Programming Language, I've been 
> asking myself why D does not go this way...
>
> Anyone knows about a good reason for that?

There have been some long threads about ARC, including this one 
from a couple months ago:

http://forum.dlang.org/thread/mailman.2370.1402931804.2907.digitalmars-d@puremagic.com

Walter doesn't think ARC can be done efficiently.


More information about the Digitalmars-d mailing list