1. compiler know in what situation a file need to be recompiled
Consider the file given the same header file, then the obj file of this
will be required for linking, all other files import this file shouldn't
require any recompilation in this case. If a file's header file changes,
thus the interface changes, all files import this file should be
recompiled.
Compiler can emit building command like rebuild does.
I would enjoy:
dmd -buildingcommand abc.d > responsefile
dmd @responsefile
I think we need to eliminate useless recompilation as much as we should
with consideration of the growing d project size.
2. maintaining the build without compiler support costs