On 15/08/2014 2:58 a.m., Vladimir Panteleev wrote:
On Thursday, 14 August 2014 at 12:56:10 UTC, Rikki Cattermole wrote:
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?
I haven't gone into that, I don't really want to go around modifying dub
if I can help it.
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).