about summary refs log tree commit diff
path: root/src/store.cc
AgeCommit message (Collapse)AuthorFilesLines
2003-08-04 * Path locking in addToStore() and expandPath().Eelco Dolstra1-0/+15
2003-08-01 * In normaliseFState(), wrap registration of the output paths and theEelco Dolstra1-7/+8
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 * normaliseFState() now locks all output paths prior to building, thusEelco Dolstra1-1/+0
ensuring that simultaneous invocations of Nix don't clobber each other's builds. * Fixed a bug in `make install'.
2003-08-01 * Don't use substitutes in addToStore().Eelco Dolstra1-14/+19
2003-07-31 * Put the database verifier in a transaction.Eelco Dolstra1-17/+23
2003-07-31 * Enclose most operations that update the database in transactions.Eelco Dolstra1-19/+38
* Open all database tables (Db objects) at initialisation time, not every time they are used. This is necessary because tables have to outlive all transactions that refer to them.
2003-07-31 * Started using Berkeley DB environments. This is necessary forEelco Dolstra1-29/+28
transaction support (but we don't actually use transactions yet).
2003-07-29 * Let `nix --install' print out the id of the normal form.Eelco Dolstra1-2/+1
* Some minor refactoring.
2003-07-24 * The `-v' flag no longer takes an argument; it should be repeatedEelco Dolstra1-1/+0
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-1/+1
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 * Substitutes now should produce a path with the same id as they areEelco Dolstra1-18/+15
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 * Canonicalise path.Eelco Dolstra1-1/+1
2003-07-21 * Changes to the command line syntax of Nix.Eelco Dolstra1-0/+9
* 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-8/+3
read()/write() to fix this once and for all.
2003-07-20 * Refactorings.Eelco Dolstra1-1/+1
2003-07-17 * For debugging: `nix --verify' to check the consistency of theEelco Dolstra1-0/+121
database and store.
2003-07-16 * Substitute fixes.Eelco Dolstra1-9/+18
2003-07-15 * Basic work on allowing derive expressions to build multiple paths.Eelco Dolstra1-49/+42
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-13 * Don't check for staleness by default.Eelco Dolstra1-0/+3
2003-07-11 * Fix a bug that caused Fix not to be deterministic (due to addToStoreEelco Dolstra1-7/+6
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-3/+42
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-16/+35
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/+5
2003-07-08 * Canonicalise paths so that Fix produces identical NixEelco Dolstra1-1/+1
expressions for identical inputs.
2003-07-08 * deletePath() now removes the path from the hash2paths mapping.Eelco Dolstra1-1/+22
2003-07-08 * Get rid of the `netsources' database.Eelco Dolstra1-4/+4
* Rename the `refs' database to `hash2paths'.
2003-07-07 * `--realise' -> `--install'.Eelco Dolstra1-3/+0
2003-07-07 * Make dbRefs a mapping from Hash to [Path].Eelco Dolstra1-23/+70
2003-07-07 * Refactoring on the file names.Eelco Dolstra1-0/+132