about summary refs log tree commit diff
path: root/src/nix-instantiate
AgeCommit message (Collapse)AuthorFilesLines
2006-12-05 * Allow unprivileged users to run the garbage collector and to doEelco Dolstra1-1/+0
`nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well.
2006-11-30 * Put building in the store API.Eelco Dolstra1-1/+0
2006-11-30 * Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra1-2/+2
containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations.
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-1/+1
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 Dolstra1-1/+3
argument.
2006-09-08 * Remove debug message.Eelco Dolstra1-1/+0
2006-09-04 * Use a proper namespace.Eelco Dolstra1-5/+10
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-24 * Refactoring.Eelco Dolstra1-86/+4
2006-08-24 * Strict evaluation and XML printing of lists.Eelco Dolstra1-1/+7
2006-08-24 * Refactoring: move strictEval to libexpr.Eelco Dolstra1-44/+1
2006-08-23 * Pass the autoArgs to findAlongAttrPath so that "nix-instantiateEelco Dolstra1-4/+6
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 Dolstra1-9/+22
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 Dolstra2-46/+91
so on. * Removed `--print-args', it's subsumed by `--eval-only --xml'.
2006-08-16 * `nix-instantiate --{eval|parse}-only --xml': print an XMLEelco Dolstra1-5/+59
representation instead of an ATerm. * Indent XML output.
2006-08-14 * Put the value in an attribute.Eelco Dolstra1-2/+3
2006-08-03 * `nix-instantiate --print-args': produce XML output so that theEelco Dolstra1-3/+12
result can be used more easily by scripts.
2006-07-28 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra1-11/+21
to functions from the command line. * nix-build: started removing backticks.
2006-07-28 * `nix-instantiate --print-args': print out the valid values forEelco Dolstra1-3/+11
functions arguments that have a domain.
2006-07-26 * Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra1-12/+13
and put it into a separate function findAlongAttrPath().
2006-07-25 * `nix-instantiate --print-args' prints out the arguments of aEelco Dolstra2-4/+25
top-level function.
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra1-2/+3
2006-03-06 * Regularise help text a bit.Eelco Dolstra1-1/+1
2006-02-10 * Enable the --attr in nix-build as well (and add -A as an alias).Eelco Dolstra1-1/+1
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 Dolstra1-4/+11
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 Dolstra1-2/+4
2006-02-10 * Cleanup: use the code shared with nix-env.Eelco Dolstra1-64/+15
2005-07-22 * Build dynamic libraries.Eelco Dolstra1-3/+3
2005-07-12 * In nix-instantiate, at top-level, call functions that have argumentsEelco Dolstra1-0/+17
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 Dolstra1-2/+6
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 Dolstra2-8/+30
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 Dolstra1-1/+1
`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-11-12 * Document --eval-only and --parse-only options in nix-instantiate.Eelco Dolstra1-2/+3
2004-10-29 * Drop ATmake / ATMatcher also in handling store expressions.Eelco Dolstra1-2/+1
2004-10-26 * Don't use ATmake / ATmatch anymore, nor the ATMatcher class.Eelco Dolstra1-2/+3
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 Dolstra1-8/+28
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 Dolstra1-0/+9
2004-04-05 * When something goes wrong in the evaluation of a Nix expression,Eelco Dolstra1-1/+1
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-16 * Allow linking against an external Berkeley DB / ATerm library.Eelco Dolstra1-3/+2
2004-02-04 * Use a map to lookup primops.Eelco Dolstra2-34/+2
* Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.).
2003-12-02 * Add missing files to `make dist'.Eelco Dolstra1-1/+1
2003-12-01 * Help text for all (non-script) programs, so no more:Eelco Dolstra3-3/+28
$ nix-instantiate --help error: unknown flag `--help` Try `nix-instantiate --help' for more information. :-)
2003-11-22 * Fix nix-push.Eelco Dolstra1-2/+2
2003-11-22 * Maintain integrity of the substitute and successor mappings whenEelco Dolstra1-3/+4
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 Dolstra2-0/+128
2003-11-19 * Refactoring: put the Nix expression evaluator in its own library soEelco Dolstra13-1689/+0
that it can be used by multiple programs.
2003-11-19 * Use `sdftable -s' to get warnings about the grammar.Eelco Dolstra3-14/+20
* Several bug fixes in the grammar. * Allow one-line comments (#... and //...) to end in EOF.
2003-11-18 * "Fix expression" -> "Nix expression".Eelco Dolstra9-45/+17
* More refactoring.
2003-11-18 * nix -> nix-store, fix -> nix-instantiate.Eelco Dolstra14-0/+1711
2003-03-24 * Descriptors now have a "system" field specifying the platform thatEelco Dolstra1-85/+0
the build or run action should be perfomed on. This ensures that descriptors have different hashes on different platforms.
2003-03-21 * Fetch sources from the network.Eelco Dolstra1-5/+29