about summary refs log tree commit diff
path: root/src/libexpr/eval.hh
AgeCommit message (Collapse)AuthorFilesLines
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-7/+16
concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.)
2006-09-22 * Builtin function `add' to add integers.Eelco Dolstra1-0/+1
* Put common test functions in tests/lang/lib.nix.
2006-09-04 * Use a proper namespace.Eelco Dolstra1-4/+12
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-30 * Okay, that's a bit harder than expected.Eelco Dolstra1-2/+5
2006-08-24 * Refactoring: move strictEval to libexpr.Eelco Dolstra1-0/+4
2006-07-28 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra1-3/+3
to functions from the command line. * nix-build: started removing backticks.
2006-07-26 * Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra1-0/+5
and put it into a separate function findAlongAttrPath().
2006-07-19 * Better error messages (especially wrt types).Eelco Dolstra1-4/+0
2006-05-02 * Optimise null-ary term builders. Also declare all term builderEelco Dolstra1-1/+0
functions as pure, which might improve performance a bit.
2006-05-01 * Allow string concatenations involving derivations, e.g.,Eelco Dolstra1-0/+5
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-23 * In `nix-env', look for derivations inside attribute sets that haveEelco Dolstra1-0/+1
the `recurseForDerivations' attribute set to `true'.
2006-03-10 * `nix-env -qa --description' shows human-readable descriptions ofEelco Dolstra1-0/+1
packages (provided that they have a `meta.description' attribute). E.g., $ ./src/nix-env/nix-env -qa --description gcc gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x
2006-03-09 * Big speedup (factor > 2.5) in all nix-env operations that do actualEelco Dolstra1-0/+5
instantiation, e.g. "nix-env -i" and "nix-env -qas" (but not "nix-env -qa"). It turns out that many redundant calls to addToStore(path) were made, which reads and hashes the entire path. For instance, the bash bootstrap binary in Nixpkgs would be read and hashed many times. As a result nix-env would spend around 92% of its time in the function sha256_block (according to callgrind). Some simple memoization fixes this.
2006-03-08 * Some refactoring of the exception handling code so that we can catchEelco Dolstra1-0/+4
Nix expression assertion failures.
2005-07-25 * Added a list concatenation operator:Eelco Dolstra1-0/+1
[1 2 3] ++ [4 5 6] => [1 2 3 4 5 6]
2004-10-25 * Allow certain operations to succeed even if we don't have writeEelco Dolstra1-2/+2
permission to the Nix store or database. E.g., `nix-env -qa' will work, but `nix-env -qas' won't (the latter needs DB access). The option `--readonly-mode' forces this mode; otherwise, it's only activated when the database cannot be opened.
2004-08-04 * Allow primops with more that 1 arguments.Eelco Dolstra1-7/+8
2004-02-04 * Use a map to lookup primops.Eelco Dolstra1-0/+11
* Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.).
2003-11-19 * Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra1-0/+42
that it can be used by multiple programs.