about summary refs log tree commit diff
path: root/src/libexpr/eval.cc
AgeCommit message (Collapse)AuthorFilesLines
2004-03-19 * `null' is a normal form.Eelco Dolstra1-8/+11
2004-02-16 * Inherited attributes in recursive attribute sets are in scope of theEelco Dolstra1-6/+7
non-inherited attributes.
2004-02-04 * An attribute set update operator (//). E.g.,Eelco Dolstra1-0/+16
{x=1; y=2; z=3;} // {y=4;} => {x=1; y=4; z=3;}
2004-02-04 * Use a map to lookup primops.Eelco Dolstra1-15/+53
* Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.).
2004-02-03 * Verify that all variables in a Nix expression are defined.Eelco Dolstra1-9/+9
2004-02-02 * Added syntactic sugar to the construction of attribute sets toEelco Dolstra1-13/+17
`inherit' variables from the surrounding lexical scope. E.g., {stdenv, libfoo}: derivation { builder = ./bla; inherit stdenv libfoo; xyzzy = 1; } is equivalent to {stdenv, libfoo}: derivation { builder = ./bla; stdenv = stdenv; libfoo = libfoo; xyzzy = 1; } Note that for mutually recursive attribute set definitions (`rec {...}'), this also works, that is, `rec {inherit x;}' is equivalent to `let {fresh = x; body = rec {x = fresh;};}', *not* `rec {x = x}'.
2004-01-30 * Replaced the SDF parser by a substantially faster Bison/FlexEelco Dolstra1-0/+2
parser (roughly 80x faster). The absolutely latest version of Bison (1.875c) is required for reentrant GLR support, as well as a recent version of Flex (say, 2.5.31). Note that most Unix distributions ship with the prehistoric Flex 2.5.4, which doesn't support reentrancy.
2004-01-15 * Catch SIGINT to terminate cleanly when the user tries to interruptEelco Dolstra1-0/+2
Nix. This is to prevent Berkeley DB from becoming wedged. Unfortunately it is not possible to throw C++ exceptions from a signal handler. In fact, you can't do much of anything except change variables of type `volatile sig_atomic_t'. So we set an interrupt flag in the signal handler and check it at various strategic locations in the code (by calling checkInterrupt()). Since this is unlikely to cover all cases (e.g., (semi-)infinite loops), sometimes SIGTERM may now be required to kill Nix.
2003-11-25 * Allow integer bindings in derivations.Eelco Dolstra1-0/+1
2003-11-19 * Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra1-0/+265
that it can be used by multiple programs.