This is for consistency with terminology in stdenv (and the terms
"hostDrv" and "buildDrv" are not very intuitive, even if they're
consistent with GNU terminology).
time and space on the new (non-ATerm) Nix expression evaluator. It
turns out that release.nix relied rather heavily on maximal laziness
for efficiency: every job calls `allPackages { inherit system; }'
for each platform. This causes the dependencies of the job to be
reevaluated for every job/platform combination. This is very slow
and (because the evaluator doesn't have a garbage collector yet)
eventually causes the evaluator to run out of memory and be killed.
As a workaround, I've replaced the calls to `allPackages' with a
quasi-memoised `pkgsFor' function. It "caches" the result by going
through a variable such as `pkgs_x86_64_linux', which is evaluated
only once. Evaluation now only takes 4.4s and 545 MiB on my
machine.
A cleaner solution may be to move the `system' argument outwards so
that entire set of jobs is called only once for each value of
`system'.
svn path=/nixpkgs/trunk/; revision=21966
I want to cross-build utillinux and coreutils, and that play will have to go in stdenv-updates I think.
svn path=/nixpkgs/branches/stdenv-updates/; revision=20506