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 |
||
---|---|---|
.. | ||
applications | ||
build-support | ||
configs/etc | ||
data | ||
desktops | ||
development | ||
games | ||
lib | ||
misc | ||
os-specific | ||
servers | ||
shells | ||
stdenv | ||
test | ||
tools | ||
top-level |