Mac Apps That Use Garbage Collection Must Move to ARC

via Digitalmars-d digitalmars-d at puremagic.com
Sun Feb 22 07:20:47 PST 2015


On Sunday, 22 February 2015 at 12:55:17 UTC, Benjamin Thaut wrote:
> 1) We need full percise pointer discovery, even for pointers on 
> the stack.
> 2) We need write barriers.
>
> 1) Is a really complex task for a language like D. There is a 
> reason why java has so a small feature set.

Worse than complex, you need a strongly typed language. D's type 
system is ad hoc, aka broken.

> 2) For some reason nobody likes write barries because the 
> general fear is, that they will cost performance, so it was 
> decided to not implement them. (Without actually measuring 
> performance impact vs GC improvement)

Barriers in a loop is not good...

3. you need to get rid of destructors et al from GC.

> The problem is that, to implement a non stop-the-world-GC you 
> need 2) and to implement a GC which is on par with Java or C# 
> you need 1).

Fortunately you can make do with "stop the GC threads" and still 
have good real time responsiveness. But that requires:

1. minimal scanning (implies significant language and compiler 
changes)

2. non-polluting cache friendly scanning (implies tunable or slow 
scan in favour of real time non-gc threads)



More information about the Digitalmars-d mailing list