Incremental garbage collection

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Fri Jan 21 12:26:42 UTC 2022


On Friday, 21 January 2022 at 10:13:17 UTC, Elronnd wrote:
> On Friday, 21 January 2022 at 10:00:17 UTC, IGotD- wrote:
>> The problem is that D as no managed pointers.
>
> Again, this can be solved conservatively at the 
> implementation-level.

It could, in theory, if you change the semantics of @nogc and 
annotate everything with @nogc that the collector must leave 
alone. I suspect that some of the existing @nogc code would have 
to be rewritten. But this approach is very close to introducing a 
new pointer type.

You also need to prevent scannable pointers to be available 
through unions, so a breaking language change is practically 
unavoidable if you want to make a good GC collector for the 
language.

There is also no way for D to force barriers on linked code, 
hence the need for a breaking language level change at some level.

(I assume many approaches are possible, but all require a 
breaking change).



More information about the Digitalmars-d mailing list