about summary refs log tree commit diff
path: root/src/nix.cc
AgeCommit message (Collapse)AuthorFilesLines
2003-08-01 * In normaliseFState(), wrap registration of the output paths and theEelco Dolstra1-2/+4
normal form in a single transaction to ensure that if we crash, either everything is registered or nothing is. This is for recoverability: unregistered paths in the store can be deleted arbitrarily, while registered paths can only be deleted by running the garbage collector.
2003-07-31 * Started using Berkeley DB environments. This is necessary forEelco Dolstra1-0/+2
transaction support (but we don't actually use transactions yet).
2003-07-29 * Get garbage collection and cache population to work *properly*.Eelco Dolstra1-5/+10
Renamed `fstateRefs' to `fstateRequisites'. The semantics of this function is that it returns a list of all paths necessary to realise a given expression. For a derive expression, this is the union of requisites of the inputs; for a slice expression, it is the path of each element in the slice. Also included are the paths of the expressions themselves. Optionally, one can also include the requisites of successor expressions (to recycle intermediate results). * `nix-switch' now distinguishes between an expression and its normal form. Usually, only the normal form is registered as a root of the garbage collector. With the `--source-root' flag, it will also register the original expression as a root. * `nix-collect-garbage' now has a flag `--keep-successors' which causes successors not to be included in the list of garbage paths. * `nix-collect-garbage' now has a flag `--invert' which will print all paths that should *not* be garbage collected.
2003-07-29 * Nicer dot graphs.Eelco Dolstra1-1/+7
2003-07-29 * `fstateRefs' now works on derive expressions as well. TODO: makeEelco Dolstra1-3/+13
this more efficient. * A flag `-n' in 'nix --query' to normalise the argument. Default is not to normalise.
2003-07-29 * Let `nix --install' print out the id of the normal form.Eelco Dolstra1-1/+5
* Some minor refactoring.
2003-07-28 * `nix --help'.Eelco Dolstra1-36/+72
* `nix --query --graph' to print a dot dependency graph of derive expressions.
2003-07-24 * The `-v' flag no longer takes an argument; it should be repeatedEelco Dolstra1-10/+2
instead (e.g., `-vvvv' for lots of output). Default is to only print error messages.
2003-07-24 * Debug levels. Use `--verbose / -v LEVEL' to display only messagesEelco Dolstra1-3/+13
up to the given verbosity levels. These currently are: lvlError = 0, lvlNormal = 5, lvlDebug = 10, lvlDebugMore = 15 although only lvlError and lvlDebug are actually used right now.
2003-07-22 * `nix --query --expansion' (`-qe') to get any path with contentEelco Dolstra1-3/+13
corresponding to the given id.
2003-07-21 * In `--query --generators', print out paths, not ids.Eelco Dolstra1-1/+1
(There should really be a switch for this).
2003-07-21 * Changes to the command line syntax of Nix.Eelco Dolstra1-72/+56
* A function to find all Nix expressions whose output ids are completely contained in some set. Useful for uploading relevant Nix expressions to a shared cache.
2003-07-20 * Argh, another short-write problem. Added wrappers aroundEelco Dolstra1-14/+3
read()/write() to fix this once and for all.
2003-07-20 * Refactorings.Eelco Dolstra1-2/+1
2003-07-17 * For debugging: `nix --verify' to check the consistency of theEelco Dolstra1-0/+9
database and store.
2003-07-16 * The write() system call can write less than the requested Eelco Dolstra1-3/+7
number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix --dump' to fail sometimes. Note that this bug went unnoticed because the call to `nix --dump' is in a pipeline, and the shell ignores non-zero exit codes from all but the last element in the pipeline. Is there any way to check the result of the initial elements in the pipeline? (In other words, is it at all possible to write reliable shell scripts?)
2003-07-16 * Fix the -qr query.Eelco Dolstra1-8/+4
2003-07-16 * Fix self-referential outputs.Eelco Dolstra1-4/+5
* Fix -qp query.
2003-07-15 * Get Fix and Nix to work again.Eelco Dolstra1-20/+19
2003-07-11 * Fix handling of pipes (read(2) may not return the requiredEelco Dolstra1-5/+7
number of bytes in one call).
2003-07-10 * A command to register successor fstate expressions.Eelco Dolstra1-0/+18
Unifying substitutes and successors isn't very feasible for now, since substitutes are only used when no path with a certain is known. Therefore, a normal form of some expression stored as a substitute would not be used unless the expression itself was missing.
2003-07-10 * The policy-free derivate sharing now *almost* works. :-) For anyEelco Dolstra1-6/+19
hash for which no local expansion is available, Nix can execute a `substitute' which should produce a path with such a hash. This is policy-free since Nix does not in any way specify how the substitute should work, i.e., it's an arbitrary (unnormalised) fstate expression. For example, `nix-pull' registers substitutes that fetch Nix archives from the network (through `wget') and unpack them, but any other method is possible as well. This is an improvement over the old Nix sharing scheme, which had a policy (fetching through `wget') built in. The sharing scheme doesn't work completely yet because successors from fstate rewriting have to be registered on the receiving side. Probably the whole successor stuff can be folded up into the substitute mechanism; this would be a nice simplification.
2003-07-10 * Get `nix-push' working again. It now uses Nix/Fix to create NixEelco Dolstra1-9/+15
archives (using the package in corepkgs/nar). * queryPathByHash -> expandHash, and it takes an argument specifying the target path (which may be empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap Nix and install Nix as a Fix package.
2003-07-09 * When computing the set of paths referenced by an expression, alsoEelco Dolstra1-3/+8
include the paths of the subterms.
2003-07-08 * The output of a Derive() node is not a referenced path.Eelco Dolstra1-1/+1
2003-07-08 * A command to query the paths referenced by an fstate expression.Eelco Dolstra1-17/+73
* Use a temporary directory for build actions.
2003-07-08 * Get `--dump' and `--delete' to work again.Eelco Dolstra1-51/+17
2003-07-07 * `--realise' -> `--install'.Eelco Dolstra1-5/+5
2003-07-07 * Refactoring on the file names.Eelco Dolstra1-2/+2
2003-07-04 * Refactoring: move initialisation and argument parsing into a sharedEelco Dolstra1-50/+6
file.
2003-07-04 * Caching of expression successors.Eelco Dolstra1-11/+22
2003-06-25 * Minor cleanups.Eelco Dolstra1-2/+2
2003-06-23 * `nix --delete' command.Eelco Dolstra1-1/+13
2003-06-23 * `nix --restore' command.Eelco Dolstra1-6/+38
2003-06-23 * A function to restore from a Nix archive.Eelco Dolstra1-1/+2
* addValue() can now import any dumpable FS object.
2003-06-20 * Flags to indicate how values are specified on the command lineEelco Dolstra1-60/+116
(--hash, --file, --name).
2003-06-20 * Refactoring: move dump function into archive.cc.Eelco Dolstra1-0/+1
2003-06-18 * `nix --dump' command.Eelco Dolstra1-3/+26
2003-06-17 * Started integrating the new evaluation model into Nix.Eelco Dolstra1-644/+100
* Cleaned up command-line syntax.
2003-06-16 * Started implementing the new evaluation model.Eelco Dolstra1-154/+2
* Lots of refactorings. * Unit tests.
2003-06-16 * AST for Nix expressions.Eelco Dolstra1-3/+67
2003-06-15 * Refactoring: hash class.Eelco Dolstra1-104/+103
2003-05-30 * Send log output to stderr.Eelco Dolstra1-2/+2
2003-05-30 * Log the output of builders to $prefix/var/log/nix.Eelco Dolstra1-42/+67
2003-05-26 * FreeBSD / ISO C++ compatibility fixes.Eelco Dolstra1-1/+1
2003-05-26 * Removed some debug code that prevented packages from building.Eelco Dolstra1-2/+0
2003-05-26 * Some refactoring.Eelco Dolstra1-115/+27
2003-05-26 * Nix can now fetch prebuilts (and other files) from the network, iffEelco Dolstra1-41/+85
a mapping from the hash to a url has been registered through `nix regurl'. * Bug fix in nix: don't pollute stdout when running tar, it made nix-switch barf. * Bug fix in nix-push-prebuilts: don't create a subdirectory on the target when rsync'ing.
2003-05-25 * Prebuilt package sharing. We allow transparent binary deployment byEelco Dolstra1-5/+57
sharing package directories (i.e., the result of building a Nix descriptor). `nix-pull-prebuilts' obtains a list of all known prebuilts by consulting the paths and URLs specified in $prefix/etc/nix/prebuilts.conf. The mappings ($pkghash, $prebuilthash) and ($prebuilthash, $location) are registered with Nix so that it can use the prebuilt with hash $prebuilthash when installing a package with hash $pkghash by downloading and unpacking $location. `nix-push-prebuilts' creates prebuilts for all packages for which no prebuilt is known to exist. It can then optionally upload these to the network through rsync. `nix-[pull|push]-prebuilts' just provide a policy. Nix provides the mechanism through the `nix [export|regprebuilt|regurl]' commands.
2003-04-25 * Remove build directory from a package directory after building it.Eelco Dolstra1-3/+8