On Thursday, 14 August 2014 at 12:56:10 UTC, Rikki Cattermole
Dub automatically handles caching of dependencies such as
vibe-d. So they are not rebuilt.
The only things that get recompiled for example is a single
code unit. This is defined as being the dependency between a
route file and template files (simplified).
How many D modules / object files is that?
The necessary dependencies such as vibe-d then should be added
as part of the build process.
Incremental builds of things such as routes and templates are
not a good idea. Same goes for data models. It could change the
code unit output a little too much. Possibly even cause a
corrupt binary from missing symbols ext.
That approach sounds much more high-level than what I meant, and
I don't see why you'd need to abstract things to that level. I'm
not familiar with how dub builds things, but inter-module
dependencies are a solved problem, thanks to DMD's -v and -deps
switches. Incremental compilation was implemented in older
(D1-era) build tools, such as xfbuild, however has never picked
up due to DMD bugs with incrementally compiling more than one
object file at a time (which might very well be fixed by now).