On Thursday, 8 September 2016 at 19:17:42 UTC, Lewis wrote:

Am I crazy in wondering about caching template instantiations? I understand that an incremental build would kind of accomplish this goal, but that comes with its own set of problems.

Not as good as what you propose, but: LDC 1.1.0 can do _codegen_ caching which I guess is some intermediate form of incremental building.

My testcase is a unittest piece from Weka.io that instantiates, oh, I don't remember exactly, 100.000+ templates. It takes about 65 seconds to compile. With codegen caching, the re(!)compile time on cache-hit is reduced to 39s. Note that the front-end still instantiates all those templates, but LDC's codegen at -O0 is not as fast as DMD's (calculating the hash also takes time and could be optimized further).

In summary, for LDC -O3 builds, you can expect a large speed boost by just adding `-ir2obj-cache=<cache dir>` to the commandline (LDC >= 1.1.0-alpha1).

-Johan

Reply via email to