about summary refs log tree commit diff
path: root/src/libexpr/primops.cc
AgeCommit message (Collapse)AuthorFilesLines
2004-08-04 * Every real language has a `map' function.Eelco Dolstra1-1/+18
2004-08-04 * Allow primops with more that 1 arguments.Eelco Dolstra1-13/+49
2004-04-05 * When something goes wrong in the evaluation of a Nix expression,Eelco Dolstra1-17/+21
print a nice backtrace of the stack, rather than vomiting a gigantic (and useless) aterm on the screen. Example: error: while evaluating file `.../pkgs/system/test.nix': while evaluating attribute `subversion' at `.../pkgs/system/all-packages-generic.nix', line 533: while evaluating function at `.../pkgs/applications/version-management/subversion/default.nix', line 1: assertion failed at `.../pkgs/applications/version-management/subversion/default.nix', line 13 Since the Nix expression language is lazy, the trace may be misleading. The purpose is to provide a hint as to the location of the problem.
2004-04-02 * Print a more useful error message in case of an invalid derivationEelco Dolstra1-1/+6
binding.
2004-03-28 * Added an operator `~' to select paths within a derivation. E.g.,Eelco Dolstra1-0/+13
{stdenv, bash}: derivation { builder = bash ~ /bin/sh; args = ["-e" "-x" ./builder.sh]; ... } Here the attribute `builder' will evaluate to, e.g., `/nix/store/1234abcd...-bash-2.0.1/bin/sh'.
2004-03-28 * Added plain lambdas, e.g., `let { id = x: x; const = x: y: x; }'.Eelco Dolstra1-33/+37
`bla:' is now no longer parsed as a URL. * Re-enabled support for the `args' attribute in derivations to specify command line arguments to the builder, e.g., ... builder = /usr/bin/python; args = ["-c" ./builder.py]; ...
2004-02-04 * Use a map to lookup primops.Eelco Dolstra1-0/+12
* Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.).
2004-02-02 * Added syntactic sugar to the construction of attribute sets toEelco Dolstra1-1/+1
`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}'.
2003-11-25 * Allow integer bindings in derivations.Eelco Dolstra1-0/+7
2003-11-21 * Uninstallation.Eelco Dolstra1-5/+11
2003-11-19 * Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra1-0/+246
that it can be used by multiple programs.