Am 16.10.2013 21:05, schrieb Sean Kelly:
On Oct 16, 2013, at 11:54 AM, Benjamin Thaut <c...@benjamin-thaut.de> wrote:

The problem is not that there are no GCs around in other languages which satisfy certain 
requirements. The problem is actually implementing them in D. I suggest that you read 
"The Garbage Collection Handbook" which explains this in deep detail. I'm 
currently reading it, and I might write an article about the entire D GC issue once I'm 
done with it.

I think the short version is that D being able to directly call C code is a 
huge problem here.  Incremental GCs all rely on the GC being notified when 
pointers are changed.  We might be able to manage it for SafeD, but then SafeD 
would basically be its own language.


I think a even bigger problem are structs. Because if you need write barriers for pointers on the heap you are going to have a problem with structs. Because you will never know if they are located on the heap or the stack. Additionally making the stack percisely scannable and adding GC-Points will require a lot of compiler support. And even if this is doable in respect to DMD its going to be a big problem for GDC or LDC to change the codegen.

Reply via email to