Eisfunke's Lix Fork
Find a file
Shea Levy 20866a7031 Delay evaulation of with attrs until a variable lookup needs them
Evaluation of attribute sets is strict in the attribute names, which
means immediate evaluation of `with` attribute sets rules out some
potentially interesting use cases (e.g. where the attribute names of one
set depend in some way on another but we want to bring those names into
scope for some values in the second set).

The major example of this is overridable self-referential package sets
(e.g. all-packages.nix). With immediate `with` evaluation, the only
options for such sets are to either make them non-recursive and
explicitly use the name of the overridden set in non-overridden one
every time you want to reference another package, or make the set
recursive and use the `__overrides` hack. As shown in the test case that
comes with this commit, though, delayed `with` evaluation allows a nicer
third alternative.

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-07-31 11:48:39 +02:00
corepkgs buildenv: remove special treatment of python files 2013-07-23 20:13:43 +02:00
doc Add hacking notes plus a script for running nix-shell 2013-07-19 16:51:31 +02:00
misc Rename nix-worker to nix-daemon 2012-10-03 17:59:23 -04:00
perl Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
scripts nix-shell: Set $IN_NIX_SHELL 2013-07-19 14:32:05 +02:00
src Delay evaulation of with attrs until a variable lookup needs them 2013-07-31 11:48:39 +02:00
tests Delay evaulation of with attrs until a variable lookup needs them 2013-07-31 11:48:39 +02:00
.gitignore Rename nix-worker to nix-daemon 2012-10-03 17:59:23 -04:00
AUTHORS * Put something in here. 2004-11-07 20:30:02 +00:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
build.nix Add an experimental nix-make file 2012-05-21 09:43:01 -04:00
configure.ac Add gzip support for channel unpacking 2013-07-12 11:29:37 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
dev-shell Add hacking notes plus a script for running nix-shell 2013-07-19 16:51:31 +02:00
INSTALL * Autoconf / Automake configuration and building. 2003-04-04 16:14:56 +00:00
Makefile.am Garbage collector: Don't follow symlinks arbitrarily 2013-07-12 14:03:36 +02:00
nix.spec.in Add gzip support for channel unpacking 2013-07-12 11:29:37 +02:00
README * Install documentation in $(docdir) (i.e. share/doc/nix). 2008-11-19 13:19:09 +00:00
release.nix Build Fedora 18 RPMs 2013-05-08 14:41:35 +02:00
substitute.mk Prevent config.h from being clobbered 2013-03-08 01:27:04 +01:00
version Bump version 2013-06-17 15:39:45 +02:00

Nix is a purely functional package manager.  For installation and
usage instructions, please read the manual, which can be found in
`docs/manual/manual.html', and additionally at the Nix website at
<http://nixos.org/>.


Acknowledgments

This product includes software developed by the OpenSSL Project for
use in the OpenSSL Toolkit (http://www.OpenSSL.org/).