about summary refs log tree commit diff
path: root/src/store.hh (follow)
AgeCommit message (Collapse)AuthorFilesLines
2003-08-01 * In normaliseFState(), wrap registration of the output paths and theEelco Dolstra1-1/+3
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-08-01 * Don't use substitutes in addToStore().Eelco Dolstra1-1/+2
2003-07-22 * Substitutes now should produce a path with the same id as they areEelco Dolstra1-2/+9
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-0/+3
* 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-17 * For debugging: `nix --verify' to check the consistency of theEelco Dolstra1-0/+2
database and store.
2003-07-15 * Basic work on allowing derive expressions to build multiple paths.Eelco Dolstra1-10/+9
This is not entirely trivial since this introduces the possibility of mutual recursion. * Made normal forms self-contained. * Use unique ids, not content hashes, for content referencing.
2003-07-14 * After building, scan for actual file system references asEelco Dolstra1-3/+3
opposed to declared references. This prunes the reference graph, thus allowing better garbage collection and more efficient derivate distribution.
2003-07-11 * Fix a bug that caused Fix not to be deterministic (due to addToStoreEelco Dolstra1-1/+2
returning different paths if the hash of the path to be added was already available in the store under a different name).
2003-07-10 * The policy-free derivate sharing now *almost* works. :-) For anyEelco Dolstra1-0/+4
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-4/+4
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 * Outline of the new scheme for derivate distribution.Eelco Dolstra1-2/+10
2003-07-07 * Make dbRefs a mapping from Hash to [Path].Eelco Dolstra1-3/+6
2003-07-07 * Refactoring on the file names.Eelco Dolstra1-0/+24