LDC: Speed up incremental builds with object file caching

Johan Engelen via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Sep 18 02:10:41 PDT 2016


On Sunday, 18 September 2016 at 08:14:47 UTC, Martin Nowak wrote:
>
> Interesting approach to speed up compilation without running 
> into dmd's problems of template instance emission when 
> compiling multiple modules to multiple objects.

I think LDC has the same problems (template instances are emitted 
in the first module not the one that needed the instantiation?). 
Knowing this, you may be able to set up a case where things 
break, but I think it would have to involve recompilation with a 
different set of sources than the first compile. E.g. `ldc2 -c 
a.d b.d c.d` first, then `ldc2 -c b.d c.d`, and then trying to 
link. Which probably doesn't work well without caching either... 
We should deprecate non-singleobj compiles.

> Many people use noatime or relatime when mounting their 
> filesystems, so access time isn't the best eviction strategy 
> unless you touch the files.

I forgot to mention this in the article, thanks! I read that a 
file's last access timestamp  may also not be updated on Windows 
(default Windows 7 setting), so I already had LDC `touch` the 
cached file upon a cache hit. Added it as a footnote in the 
article.



More information about the Digitalmars-d-announce mailing list