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