[Nix-dev] Re: make -j<n> howto?

Peter Simons simons at cryp.to
Tue Jun 17 22:22:26 CEST 2008


Hi Eelco.

 > [Nix supports] parallelism between builds, [but] not *within* builds, so
 > if you're rebuilding OpenOffice, [multiple CPUs don't] help you :-(

I see. The problem is that Nix has too simplistic a notion of arguments that
are being passed to an expression. There are two kinds of arguments: those
that influence the result of the build and those that do not influence the
result of the build. An obvious example for the latter kind are warnings: a
binary that has been compiled with "-Wall" does not differ from one that has
been compiled with "-Wno-all". Similarly, a build that has been driven by
"make --silent" doesn't differ from one that was driven by "make --debug".

Nix doesn't know that.

Now, this is not a severe problem, because parallelism can often be achieved
by building several expressions at once, but in the long run this deficit
should be remedied, because lack of -j<n> support also means that Nix cannot
support distcc, etc.


 > Undoubtedly Gentoo people regularly build packages with specific -j
 > flags, so they probably know how much breakage it causes...

Yes, as a matter of fact one of those packages that breaks down in a
concurrent build is Nix itself. The dependencies are incomplete. I suspect
the problem is in the aterm library. I could probably submit a patch. Which
makes me wonder: is it possible to get SVN access? It feels like posting
code and/or patches to the mailing list is not the best way to participate.

Best regards,
Peter




More information about the nix-dev mailing list