forked from lix-project/lix
77557a6f06
* Make the `derivation' primitive much more lazy. The expression `derivation attrs' now evaluates to (essentially) attrs // { type = "derivation"; outPath = derivation! attrs; drvPath = derivation! attrs; } where `derivation!' is a primop that does the actual derivation instantiation (i.e., it does what `derivation' used to do). The advantage is that it allows commands such as `nix-env -qa' and `nix-env -i' to be much faster since they no longer need to instantiate all derivations, just the `name' attribute. (However, `nix-env' doesn't yet take advantage of this since it still always evaluates the `outPath' and `drvPath' attributes). Also, this allows derivations to cyclically reference each other, for example, webServer = derivation { ... hostName = "svn.cs.uu.nl"; services = [svnService]; }; svnService = derivation { ... hostName = webServer.hostName; }; Previously, this would yield a black hole (infinite recursion). |
||
---|---|---|
.. | ||
bin2c | ||
boost | ||
bsdiff-4.2 | ||
libexpr | ||
libmain | ||
libstore | ||
libutil | ||
log2xml | ||
nix-env | ||
nix-hash | ||
nix-instantiate | ||
nix-store | ||
aterm-helper.pl | ||
Makefile.am |