Is run.d going to be expand for runtime and the phobos library?

Petar Petar
Sat Jun 13 08:58:56 UTC 2020


On Friday, 12 June 2020 at 07:38:22 UTC, Bastiaan Veelo wrote:
> On Friday, 12 June 2020 at 00:24:41 UTC, 12345swordy wrote:
>> Quite curious that I never see any attempt on it what so ever.
>
> You leave me guessing what run.d is, and so I have no idea what 
> you are curious about.
>
> — Bastiaan.

(This is a message from a day ago that I forgot to send earlier.)

TL;DR
See the Readme file here: 
https://github.com/dlang/dmd/tree/v2.092.1/test and run.d itself: 
https://github.com/dlang/dmd/blob/v2.092.1/test/run.d.
Also you can check: 
https://github.com/dlang/dmd/blob/v2.092.1/src/build.d

---

The basic idea is that we're replacing the ugly makefile mess 
with a build and test system written in pure D. The advantages 
going for a pure D solution are numerous:
- Developers and package maintainers need less external 
dependencies to build and test the code
- There are several Make(1) implementations (e.g. GNUmake, 
BSDmake, DMmake [1]) each with different feature sets and 
limitations. This was especially a problem on Windows, as DMmake 
has much more limited feature set then GNUmake, which prevented 
us from having a single cross-platform Makefile and instead we 
had to maintain posix.mak, win32.mak and win64.mak
- AFAIK, installing a GNUmake on Windows involves installing a 
whole Posix emulation/compatibility environment like cygwin, msys 
or msys2, which brings it's own rats nest of problems
- Even if Make is not a problem, it is still dependent on Posix 
compatible shell, so that's one more variable in the equation
- By implementing the full build system in D we have much more 
flexibility and it's easier to troubleshoot problems. Also we can 
implement features which are unlikely to ever become part of 
make, but would be useful for us.
- For example, it's we can tune the scheduling of the test runner 
relatively easily, while with Make we he no control over that 
(it's just doing topological sorting, without any semantic 
understanding of what each target represents).
- And quite a few other benefits...


[1]: https://digitalmars.com/ctg/make.html


More information about the Digitalmars-d mailing list