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.