summary refs log tree commit diff
path: root/src/libexpr/nixexpr.hh
AgeCommit message (Collapse)Author
2007-04-16* New primop "throw <string>" to throw an error. This is like abort,Eelco Dolstra
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 Dolstra
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 Dolstra
info, sort attribute sets.
2006-10-16* Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra
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 Dolstra
2006-09-04* Remove unnecessary inclusions of aterm2.h.Eelco Dolstra
2006-09-04* Use a proper namespace.Eelco Dolstra
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-23* New primop: abort "error message".Eelco Dolstra
2006-08-04* Fix a few warnings.Eelco Dolstra
2006-07-28* `nix-instantiate --print-args': print out the valid values forEelco Dolstra
functions arguments that have a domain.
2006-07-24* Refactoring to support domain checks.Eelco Dolstra
2006-07-19* Better error messages (especially wrt types).Eelco Dolstra
2006-05-04* Use the new ATermMap.Eelco Dolstra
2006-05-02* Use a linked list of substitutions. This reduces the amount ofEelco Dolstra
copying.
2006-03-06* GCC 4.1 compatibility.Eelco Dolstra
2005-05-08* ATermMap needs an assignment operator, otherwise we are screwed.Eelco Dolstra
2005-04-10* Primop `__currentSystem' to return the current platform identifier.Eelco Dolstra
2004-10-26* Don't use ATmake / ATmatch anymore, nor the ATMatcher class.Eelco Dolstra
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 Dolstra
2004-08-04* Allow primops with more that 1 arguments.Eelco Dolstra
2004-04-05* When something goes wrong in the evaluation of a Nix expression,Eelco Dolstra
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 Dolstra
* 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 Dolstra
2003-11-19* Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra
that it can be used by multiple programs.