about summary refs log tree commit diff
path: root/src/normalise.hh
AgeCommit message (Collapse)AuthorFilesLines
2003-08-01 * In normaliseFState(), wrap registration of the output paths and theEelco Dolstra1-1/+2
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-29 * Get garbage collection and cache population to work *properly*.Eelco Dolstra1-2/+8
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 * `fstateRefs' now works on derive expressions as well. TODO: makeEelco Dolstra1-1/+1
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-3/+3
* Some minor refactoring.
2003-07-22 * Substitutes now should produce a path with the same id as they areEelco Dolstra1-3/+3
substituting for (obvious, really). * For greater efficiency, nix-pull/unnar will place the output in a path that is probably the same as what is actually needed, thus preventing a path copy. * Even if a output id is given in a Fix package expression, ensure that the resulting Nix derive expression has a different id. This is because Nix expressions that are semantically equivalent (i.e., build the same result) might be different w.r.t. efficiency or divergence. It is absolutely vital for the substitute mechanism that such expressions are not used interchangeably.
2003-07-21 * Changes to the command line syntax of Nix.Eelco Dolstra1-1/+5
* 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 * Refactorings.Eelco Dolstra1-0/+25