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!


Reply via email to