719f023f33
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 |
||
---|---|---|
.. | ||
all-packages.nix | ||
guile-2-test.nix | ||
haskell-packages.nix | ||
make-tarball.nix | ||
mingw.nix | ||
perl-packages.nix | ||
platforms.nix | ||
python-packages.nix | ||
release-cross.nix | ||
release-lib.nix | ||
release.nix |