Plan for D

Ola Fosheim Grostad ola.fosheim.grostad at gmail.com
Mon May 17 16:56:37 UTC 2021


On Monday, 17 May 2021 at 16:47:36 UTC, IGotD- wrote:
> On Monday, 17 May 2021 at 10:39:39 UTC, rikki cattermole wrote:
>>
>> It has nothing to do with the compiler.
>>
>> You can implement it fully in your own code base if you want 
>> and select it at runtime.
>>
>> https://github.com/dlang/druntime/blob/master/src/core/gc/registry.d
>> https://github.com/dlang/druntime/blob/master/src/core/gc/config.d#L53
>
> There have been a few tracing GC algorithms but still D is 
> forced to used traced GC.

Yes, the GC runtime interface is not good enough, task based 
should be stackless at suspension points, but use system stack 
for suspension-free functions. That way you can have a massive 
amount of suspended tasks. Another feature that is needed is 
merging GC heaps, so that you can join tasks that has been split 
to maximise parallelism. Etc.

> Unfortunately D ends up in the pit as usual, it is chess mate. 
> Walter do not want to implement reference types/fat pointers 
> types which makes RC impossible by standard.

Not impossible, you can do like C++, use smart pointers, but 
unlike C++ inject a new IR before LLVM IR that does ARC. Also, 
let the smart pointers use compiler intrinsics for ARC.



More information about the Digitalmars-d mailing list