Recompiling D code

Vladimir Panteleev via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Aug 14 07:58:23 PDT 2014


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?

> 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).


More information about the Digitalmars-d-announce mailing list