aboutsummaryrefslogtreecommitdiff
path: root/src/nix-instantiate/main.cc
AgeCommit message (Collapse)Author
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-10-03* toXML: propagate the context to allow derivations to be used in theEelco Dolstra
argument.
2006-09-08* Remove debug message.Eelco Dolstra
2006-09-04* Use a proper namespace.Eelco Dolstra
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-24* Refactoring.Eelco Dolstra
2006-08-24* Strict evaluation and XML printing of lists.Eelco Dolstra
2006-08-24* Refactoring: move strictEval to libexpr.Eelco Dolstra
2006-08-23* Pass the autoArgs to findAlongAttrPath so that "nix-instantiateEelco Dolstra
foo.nix -A attr --arg name value" will work if (name, value) is needed in the evaluation leading up to "attr".
2006-08-17* Print attributes in sorted order, rather than the arbitrary orderEelco Dolstra
produced by ATermMap. Necessary for testing. * `--strict' should also work on stdin.
2006-08-16* More XML output. `--strict' to strictly evaluate attribute sets andEelco Dolstra
so on. * Removed `--print-args', it's subsumed by `--eval-only --xml'.
2006-08-16* `nix-instantiate --{eval|parse}-only --xml': print an XMLEelco Dolstra
representation instead of an ATerm. * Indent XML output.
2006-08-14* Put the value in an attribute.Eelco Dolstra
2006-08-03* `nix-instantiate --print-args': produce XML output so that theEelco Dolstra
result can be used more easily by scripts.
2006-07-28* `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra
to functions from the command line. * nix-build: started removing backticks.
2006-07-28* `nix-instantiate --print-args': print out the valid values forEelco Dolstra
functions arguments that have a domain.
2006-07-26* Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra
and put it into a separate function findAlongAttrPath().
2006-07-25* `nix-instantiate --print-args' prints out the arguments of aEelco Dolstra
top-level function.
2006-02-10* Enable the --attr in nix-build as well (and add -A as an alias).Eelco Dolstra
Example: $ nix-build ./all-packages.nix -A xlibs.libX11 So finally it's easy to perform a test build of a Nix expression!
2006-02-10* In nix-instantiate, allow us to specify a "path" to theEelco Dolstra
derivation(s) we're interested, e.g., $ nix-instantiate ./all-packages.nix --attr xlibs.libX11 List elements can also be selected: $ nix-instantiate ./build-for-release.nix --attr 0.subversion This allows a non-ambiguous specification of a derivation. Of course, this should also be added to nix-env and nix-build.
2006-02-10* Make --parse-only work when *not* reading from stdin.Eelco Dolstra
2006-02-10* Cleanup: use the code shared with nix-env.Eelco Dolstra
2005-07-12* In nix-instantiate, at top-level, call functions that have argumentsEelco Dolstra
with default values automatically. I.e., e -> e {}. This feature makes convenience expressions such as pkgs/system/i686-linux.nix in Nixpkgs obsolete, since we can just do $ nix-instantiate ./pkgs/system/all-packages.nix since all-packages.nix takes a single argument (system) that has a default value (__thisSystem).
2005-02-01* nix-build: use an indirection scheme to make it easier for users toEelco Dolstra
get rid of GC roots. Nix-build places a symlink `result' in the current directory. Previously, removing that symlink would not remove the store path being linked to as a GC root. Now, the GC root created by nix-build is actually a symlink in `/nix/var/nix/gcroots/auto' to `result'. So if that symlink is removed the GC root automatically becomes invalid (since it can no longer be resolved). The root itself is not automatically removed - the garbage collector should delete dangling roots.
2005-02-01* nix-store, nix-instantiate: added an option `--add-root' toEelco Dolstra
immediately add the result as a permanent GC root. This is the only way to prevent a race with the garbage collector. For instance, the old style ln -s $(nix-store -r $(nix-instantiate foo.nix)) \ /nix/var/nix/gcroots/result has two time windows in which the garbage collector can interfere (by GC'ing the derivation and the output, respectively). On the other hand, nix-store --add-root /nix/var/nix/gcroots/result -r \ $(nix-instantiate --add-root /nix/var/nix/gcroots/drv \ foo.nix) is safe. * nix-build: use `--add-root' to prevent GC races.
2005-01-19* Renamed `normalise.cc' -> `build.cc', `storeexprs.cc' ->Eelco Dolstra
`derivations.cc', etc. * Store the SHA-256 content hash of store paths in the database after they have been built/added. This is so that we can check whether the store has been messed with (a la `rpm --verify'). * When registering path validity, verify that the closure property holds.
2004-10-29* Drop ATmake / ATMatcher also in handling store expressions.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* Mode `--parse-only' to parse the input (on stdin, `-'), and printEelco Dolstra
out the AST as an ATerm. * Mode `--eval-only' to parse and evaluate the input, and print the resulting normal form as an ATerm. Neither of these modes require store/DB write permission.
2004-07-01* Nix-instantiate now accepts sets of derivations (just like nix-env).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.).
2003-12-01* Help text for all (non-script) programs, so no more:Eelco Dolstra
$ nix-instantiate --help error: unknown flag `--help` Try `nix-instantiate --help' for more information. :-)
2003-11-22* Fix nix-push.Eelco Dolstra
2003-11-22* Maintain integrity of the substitute and successor mappings whenEelco Dolstra
deleting a path in the store. * Allow absolute paths in Nix expressions. * Get nix-prefetch-url to work again. * Various other fixes.
2003-11-19* Refactoring (step 2).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.
2003-11-18* "Fix expression" -> "Nix expression".Eelco Dolstra
* More refactoring.