On the performance of building D programs

Martin Nowak code at dawg.eu
Sun Apr 7 11:00:10 PDT 2013


On 04/07/2013 07:14 PM, Andrej Mitrovic wrote:
> On 4/7/13, Martin Nowak <code at dawg.eu> wrote:
>> 2.
>> driver assumes that foo.bar depends on foo.baz and has a cached obj for
>> foo.baz:
>> dmd -c foo/bar -rb -rxstd.* -rxfoo.baz
>
> How is this a problem? If foo.baz is not needed, the linker won't link
> it in. All the driver has to do is list the modules which shouldn't be
> recompiled if their modification time hasn't changed.
>
This is a problem because 'something.else' might be a huge library you 
don't need to recompile.
With the current approach you're first recompiling before you know the 
dependencies. It's also the reason why you hardcoded std.* and core.* 
into the exclude list. But this will miss other prebuild libraries, e.g. 
vibe.


More information about the Digitalmars-d mailing list