On Monday, 10 December 2018 at 22:18:28 UTC, Neia Neutuladh wrote:
On Mon, 10 Dec 2018 21:53:40 +0000, GoaLitiuM wrote:
The results for touching second file seems like an anomaly to
me,
The generated ninja file had one rule per source file. If your
modules tend to import each other a lot, or if they
transitively import the code that's doing expensive stuff, then
one rule per source file is bad. If your modules have few
transitive dependencies and they're each fast to compile, one
rule per source file is good.
In typical D code, it's usually faster to compile per package
than either all-at-once or per module. Which is why it's the
default in reggae.
My project used Pegged, and a lot of stuff referenced the
grammar. That meant incremental builds went long and it would
have been better to build the whole project at once.
Separating the grammar into a different build would reduce
compile times significantly, and that might make incremental
builds fast.
Using Pegged basically requires a dub subpackage with the grammar
to retain one's sanity.
From discussions on IRC about reducing compile times, though,
using Phobos is a good way to get slow compilation, and I use
Phobos. That alone means incremental builds are likely to go
long.
Yes. Especially with -unittest.