Moving druntime into the DMD repository

Seb seb at wilzba.ch
Fri Jul 27 11:03:50 UTC 2018


This a thread to explore whether it would be feasible to do so.

Motivation
----------

DRuntime and DMD heavily depend on each other.

It happens very often that a PR needs to touch both and then a 
complicated three-step (or sometimes four-step PR series) needs 
to be done to keep the CIs happy.
Moreover, as the whole testsuite is at dmd, it happens more often 
that an error is caught in the testsuite, but would require a 
druntime PR or the opposite you make a PR to druntime and want 
its accompanying test to be checked by the CI.

How would this happen?
----------------------

A potential migration could look like this:

- lock druntime (e.g. only allowing admins to merge)
- move source code to dmd (of course with the git history, see 
e.g. [1])
- update the druntime/posix.mak build script to forward to the 
new source location
- update other dlang Makefiles
- remove everything else from druntime (optional check for the 
Makefile update step)
- update CIs and build scripts (more on this below)

[1] https://stackoverflow.com/a/10548919/3026245

What would need to be updated?
-----------------------------

- Makefiles for DMD, Druntime, Phobos, Tools, Dlang.org (mostly 
path updates)
- LDC/GDC (I think LDC already includes druntime as git submodule)

If we update the druntime/posix.mak file to call the 
druntime/posix.mak at its new location, then there would be zero 
breakage (druntime already requires dmd to cloned) and over time 
these can be updated:

- CI scripts (all of them explicitly clone druntime, but removing 
that line should be all)
- Release scripts at dlang/installer
- Packager build scripts

(most distros just ship the the libphobos2.{so,a} libraries, but 
if druntime is shipped too, it will require a path update for the 
release after such a potential migration.)

What do you think?
------------------

- Has the dmd/druntime split being annoying you too?
- Do you have a better suggestion?
- Would this break your workflow in a drastic way?


More information about the Digitalmars-d mailing list