I find that the attached patch saves a few minutes for parallel builds on a four core machine. What it does is to build both eval.go and psyntax.pp.go serially before the rest is built in parallel (when make is given -j).
Here's an attempt at explanation why this saves time:
Let's denote the .go objects by numbers 1, 2, ... where 1 is eval.go and 2 is psyntax.pp.go. We also prepend a prefix "S" for a slow build with interpreted psyntax.pp and "F" for a fast build.
Assuming a four core machine, we previously had something like:
S1
S2 S3 S4 S5
S6 S7 S8 (since S2 builds so slowly)
F9 F10 ...
Now, instead, we have:
S1
S2
F3 F4 F5 F6
...
On my machine, the patch saved 10 minutes out of 55 minutes without the patch.
To which branch should this be applied, stable-2.2 or master?
Best regards,
Mikael