Recompiling D code

Rikki Cattermole via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Aug 14 23:54:24 PDT 2014


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



More information about the Digitalmars-d-announce mailing list