The Future of D Runtime

Adam Wilson flyboynw at gmail.com
Tue Jun 18 06:12:53 UTC 2024


On Monday, 17 June 2024 at 22:58:13 UTC, Atila Neves wrote:
> On Thursday, 6 June 2024 at 18:00:56 UTC, Sebastiaan Koppe 
> wrote:
>>
>> I think DRT only needs to concern itself with supporting 
>> language features. Anything else needs to go elsewhere.
>
> Same here, and that it should be pay-as-you-go and as small as 
> possible. Anything else should be regular D code.

Ok, then were does the Event Loop go? Or the `std.math` methods 
that the compiler hooks? The basic problem with the premise is 
that you're effectively saying "we're never going to do more than 
DRT does today".

If we put this stuff directly into Phobos then we're back to a 
compiled library as we'll be linking other static/dynamic 
libraries in. Furthermore this is going to lead to an file-size 
explosion in DRT. Very likely what you end up with is a bunch of 
"internal" modules like `std.concurrency.internal.windows` which 
is basically the same thing as a putting them in DRT.

What we are proposing *is* is a PAYGO solution. There is a 
mini-runtime that is just the basics needed to allow the compiler 
to link code. After that there will be larger rings around the 
mini-runtime that support higher level features. If you're 
porting, you must port the mini-runtime or the app won't link, 
but if you don't port the higher level features, you just want be 
able to use them.


More information about the Digitalmars-d mailing list