Mac Apps That Use Garbage Collection Must Move to ARC

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Sun Feb 22 22:50:46 PST 2015


On 2/22/2015 9:53 PM, Manu via Digitalmars-d wrote:
> It's got nothing to do with doing work. ARC (or something like it) is
> almost religiously opposed. We can't even have a reasonable
> conversation about it, or really explore it's implications before
> someone (that ideally know's what they're doing) thinks about writing
> code.

I participated in a very technical thread here on implementing ARC in D. I 
wanted to make it work - nothing was off the table, language changes, special 
features, etc.

http://www.digitalmars.com/d/archives/digitalmars/D/draft_proposal_for_ref_counting_in_D_211885.html

It was just unworkable, and nobody who participated in that thread had workable 
ideas on moving forward with it. Nothing since has come up that changes that. If 
you've got some ideas, please present them taking into account the issues 
brought up in that thread.

Also, please take into account; proposals will not get much of a reception if 
they ignore these points:

1. Increment and decrement, ESPECIALLY DECREMENT, is EXPENSIVE in time and bloat 
because of exceptions. Swift does it by NOT HAVING EXCEPTIONS. This is not an 
option for D.

2. As far as I can tell, the idea of flipping a compiler switch and the GC 
switches to ref counting is a pipe dream fantasy. You can probably make such a 
scheme work with a very limited language like Javascript, but it is never going 
to work with D's support for low level programming. The way RC and GC work is 
different enough that different user coding techniques will be used for them.

3. Memory safety is a requirement for any ARC proposal for D. Swift ignores 
memory safety concerns.

4. DIP25, now implemented, is a way to address memory safety in D while using 
reference counting. Any proposal for ARC needs to, at least, understand that 
proposal.

http://wiki.dlang.org/DIP25


More information about the Digitalmars-d mailing list