about summary refs log tree commit diff
path: root/src/libexpr/nixexpr.hh
AgeCommit message (Collapse)AuthorFilesLines
2007-04-16 * New primop "throw <string>" to throw an error. This is like abort,Eelco Dolstra1-0/+1
only thrown errors are caught by the top-level derivation evaluation in nix-env -qa / -i.
2007-02-02 * nix-env now maintains meta info (from the `meta' derivationEelco Dolstra1-1/+1
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-13 * Canonicalise ASTs in `nix-instantiate --eval': remove positionEelco Dolstra1-0/+5
info, sort attribute sets.
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-0/+13
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-20 * Shut up a warning.Eelco Dolstra1-0/+1
2006-09-04 * Remove unnecessary inclusions of aterm2.h.Eelco Dolstra1-2/+0
2006-09-04 * Use a proper namespace.Eelco Dolstra1-1/+7
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-23 * New primop: abort "error message".Eelco Dolstra1-0/+1
2006-08-04 * Fix a few warnings.Eelco Dolstra1-1/+1
2006-07-28 * `nix-instantiate --print-args': print out the valid values forEelco Dolstra1-0/+2
functions arguments that have a domain.
2006-07-24 * Refactoring to support domain checks.Eelco Dolstra1-0/+3
2006-07-19 * Better error messages (especially wrt types).Eelco Dolstra1-0/+7
2006-05-04 * Use the new ATermMap.Eelco Dolstra1-38/+1
2006-05-02 * Use a linked list of substitutions. This reduces the amount ofEelco Dolstra1-1/+26
copying.
2006-03-06 * GCC 4.1 compatibility.Eelco Dolstra1-1/+1
2005-05-08 * ATermMap needs an assignment operator, otherwise we are screwed.Eelco Dolstra1-0/+5
2005-04-10 * Primop `__currentSystem' to return the current platform identifier.Eelco Dolstra1-6/+0
2004-10-26 * Don't use ATmake / ATmatch anymore, nor the ATMatcher class.Eelco Dolstra1-5/+2
Instead we generate data bindings (build and match functions) for the constructors specified in `constructors.def'. In particular this removes the conversions between AFuns and strings, and Nix expression evaluation now seems 3 to 4 times faster.
2004-10-26 * String/path concatenation operator (`+').Eelco Dolstra1-0/+6
2004-08-04 * Allow primops with more that 1 arguments.Eelco Dolstra1-0/+6
2004-04-05 * When something goes wrong in the evaluation of a Nix expression,Eelco Dolstra1-1/+5
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-02-04 * Use a map to lookup primops.Eelco Dolstra1-1/+8
* 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-0/+4
2003-11-19 * Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra1-0/+75
that it can be used by multiple programs.