On 4/5/13, Vladimir Panteleev <[email protected]> wrote: > it must run dmd with -v -o-, and read its verbose output.
IIRC xfbuild used to work around this by both reading the verbose output and simultaneously building. In other words it used 'dmd -deps' without the -o- switch. There's a function called compileAndTrackDeps which did this, but the entire codebase was very hacky which has lead me to abandon the port. Note that using pipes instead of File I/O to read the verbose output of DMD can speed up the entire building process (the new std.process comes in handy for this). However I've come to the same conclusions as you, DMD could do all of this on its own in one process invocation. It won't have to re-parse and re-process any dependencies more than once, which could be a significant boost in speed. Plus, it would be a boon for people new to D who expect things to work in a modern way (no nasty linker errors). Preferably we could introduce another switch -rxp which is used to exclude entire packages, e.g.: dmd -r -rx=somemodule.d -rxp=some.package (The = were just added for readability)
