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.

Reply via email to