tvl-depot/src/libexpr
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
..
attr-path.cc Templatise tokenizeString() 2012-09-19 15:43:23 -04:00
attr-path.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
common-opts.cc Fix error message 2012-02-09 18:56:48 +01:00
common-opts.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
eval-inline.hh Make sure that thunks are restored properly if an exception occurs 2013-03-14 17:21:13 +01:00
eval.cc Delay evaulation of with attrs until a variable lookup needs them 2013-07-31 11:48:39 +02:00
eval.hh Delay evaulation of with attrs until a variable lookup needs them 2013-07-31 11:48:39 +02:00
get-drvs.cc nix-env -q --out-path: Support multiple outputs 2012-11-28 13:49:44 +01:00
get-drvs.hh nix-env -q --out-path: Support multiple outputs 2012-11-28 13:49:44 +01:00
lexer.l Fix building against Bison 2.6 2013-03-14 18:31:08 +01:00
Makefile.am * Inline some functions and get rid of the indirection through 2012-02-04 13:50:25 +00:00
names.cc * Export the nix-env derivation name parsing and version comparison 2008-07-01 10:10:32 +00:00
names.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
nix.sdf First attempt to update Nix SDF grammar to match the actual bison grammar 2008-06-04 14:36:46 +00:00
nixexpr.cc Show function names in error messages 2013-05-16 19:08:02 +02:00
nixexpr.hh Show function names in error messages 2013-05-16 19:08:02 +02:00
parser.y Show function names in error messages 2013-05-16 19:08:02 +02:00
primops.cc Revert "Prevent config.h from being clobbered" 2013-03-08 01:24:59 +01:00
symbol-table.hh Show function names in error messages 2013-05-16 19:08:02 +02:00
value-to-xml.cc Fix compilation on FreeBSD 2012-03-05 22:04:40 +01:00
value-to-xml.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
value.hh fix use-after-free bug in mkString(Value&, Symbol&) 2012-12-13 11:13:20 +01:00