On Tuesday, 31 July 2018 at 19:54:20 UTC, Steven Schveighoffer
wrote:
On 7/31/18 2:24 PM, Walter Bright wrote:
Since DMD and Druntime require each other, it is the right
thing to do.
I think this is an incorrect relationship.
DMD does NOT require Druntime, *testing* DMD requires Druntime.
Well DMD ships just happens to ship with Druntime ;-)
In fact, I thought the whole point of the -betterC feature was
to eliminate any dependency on druntime.
That's only partially true. Even with -betterC, `object.d` will
still be imported by default and actually many language features
that work in -betterC will be lowered to druntime (even in
betterC):
One simple example: https://run.dlang.io/is/41vvoO
As we move to more and more library-provided hooks and away
from "compiler magic", this coupling will become less and less
prevalent.
On the contrary, DMD will depend more and more on druntime as the
magic is now in druntime and not in the dmd source code.
In fact, most of the changes that require both projects to be
simultaneously to be updated are these magic-removing ones.
Yes and no. Whenever you want to update a library hooks (which
are implementation-defined and not part of the specification),
it's rather complicated to do with keeping all CIs happy.
If anything makes sense, it would be to remove the
compiler-dependencies out of druntime into a smaller runtime
library that is included in the dmd project. Most of druntime
is dependencies for the platform, not the compiler.
Good idea!