The Future of D Runtime
Mathias Lang
geod24 at gmail.com
Thu Jun 6 18:56:59 UTC 2024
On Wednesday, 5 June 2024 at 23:58:14 UTC, Adam Wilson wrote:
>
> Before I get into the design of the DRT I want to propose rules
> that will allow us to continue to evolve DRT in the future
> without breaking past editions. [...]
We have to take into account the combinatorial explosion that
comes with the `rename` method. For example, should you choose to
change the `Throwable` interface (because it's old and really not
good), you would need to make sure that everything that uses it
is compatible with it. There are known ways to do it in other
languages (https://wiki.qt.io/D-Pointer) but I think the rules
you proposed are incomplete as they only work for functions, not
types.
> For DRT I propose a sharded design with a split between the
> compiler support modules and the universal system interface
> shards. [...]
Layering things / encapsulating them is good, but you also need a
way for inner layers to refer to outer layers, otherwise you
severely limit the capabilities of your system.
Take for example unittests: we would like to provide a much
better out-of-the box experience for unittests. You should get
colors, summary, the ability to run them in parallel, or even a
filewatcher that auto-recompiler them, out of the box. We *might*
consider unittests to be in `Core`, but I'm sure the rest is not.
> Simple, so that we can move beyond the limitations imposed by
> the C Runtime.
A resounding yes. Keeping the ability to easily bind to the
CRuntime is useful (e.g. being able to spin up a socket and just
look at the C documentation), but because it's "good enough", it
was never good at all.
More information about the Digitalmars-d
mailing list