[Nix-dev] parallel make (was: Again: Why don't these people have commit access)
simons at cryp.to
Tue Jan 20 17:08:09 CET 2015
> To find out if a makefile is parallel-safe, we need to try it with
> parallel building enabled. This can only be done package-per-package,
> I cannot quickly build everything with parallel builds on and then
> blacklist what fails.
the rationale behind that choice is that you cannot easily tell whether a
package compiles with parallel make jobs enabled or not. Under-specified
make dependencies lead to race conditions, and these may or may not screw
up your build. Whether an unsafe build actually fails depends on any
number of factors that influence the order in which make schedules the
jobs. You can -- in general -- not enable parallel building, run the build
once, and conclude that it's safe! The number of false positives is going
to be large.
Because of this situation, many NixOS contributors preferred the opt-in
solution that we have today. The aim of that the double opt-in is *not* to
maximize the number of builds that run with parallelism enabled, it is to
minimize the number of non-deterministic failures that someone has to
debug and worry about.
More information about the nix-dev