about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2003-08-15 * Fix can now read expressions from stdin (by saying `fix -').Eelco Dolstra1-1/+17
2003-08-14 * Detect infinite loops using blackholing.Eelco Dolstra1-3/+13
2003-08-14 * Function() takes a list of formals.Eelco Dolstra1-4/+14
2003-08-14 * Lam -> Function. Doh!Eelco Dolstra1-1/+1
2003-08-08 * deletePath(): some operating systems (e.g., Mac OS X) don't like itEelco Dolstra1-1/+8
when we delete entries from a directory while we are reading it. So read the directory into memory, then delete its contents.
2003-08-06 * Allow locks on paths to be acquired recursively (that is, if theEelco Dolstra1-2/+4
process is already holding a lock on a path, it may acquire the lock again without blocking or failing). (This might be dangerous, not sure). Necessary for fast builds to work.
2003-08-06 * A flag `--flat' to just compute the MD5 checksum of the contents ofEelco Dolstra1-3/+7
a regular file. I.e., `nix-hash --flat' is equivalent to the coreutils `md5sum' command (which doesn't exist on all systems).
2003-08-06 * App -> Call.Eelco Dolstra1-1/+8
* Allow booleans in package environment bindings (True maps to "1", False maps to "").
2003-08-05 * Conditionals.Eelco Dolstra1-0/+33
2003-08-05 * Cache result of fstatePaths(). TODO: do this in fstore.cc.Eelco Dolstra1-2/+17
2003-08-05 * Allow the top-level expression to be a list of expressions thatEelco Dolstra1-5/+19
normalise to Nix expression.
2003-08-05 * Delete obstructed paths prior to building.Eelco Dolstra1-3/+12
2003-08-04 * Path locking in addToStore() and expandPath().Eelco Dolstra2-1/+16
2003-08-01 * In normaliseFState(), wrap registration of the output paths and theEelco Dolstra6-28/+44
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 * Defensive programming against POSIX locking idiocy.Eelco Dolstra3-25/+18
* Simplified realiseSlice().
2003-08-01 * normaliseFState() now locks all output paths prior to building, thusEelco Dolstra5-30/+151
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 Dolstra2-15/+21
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 Dolstra6-96/+145
* 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 * Use a more reasonable log file size (256 KB instead of 10 MB).Eelco Dolstra1-2/+6
* Checkpoint on exit.
2003-07-31 * Started using Berkeley DB environments. This is necessary forEelco Dolstra11-100/+249
transaction support (but we don't actually use transactions yet).
2003-07-31 * Set execute bit.Eelco Dolstra2-0/+0
2003-07-30 * Don't make the builder executable.Eelco Dolstra1-4/+0
2003-07-29 * Get garbage collection and cache population to work *properly*.Eelco Dolstra5-12/+36
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 Dolstra4-14/+40
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 Dolstra5-34/+35
* Some minor refactoring.
2003-07-28 * `nix --help'.Eelco Dolstra3-37/+116
* `nix --query --graph' to print a dot dependency graph of derive expressions.
2003-07-24 * Fix message.Eelco Dolstra1-1/+2
2003-07-24 * The `-v' flag no longer takes an argument; it should be repeatedEelco Dolstra6-38/+29
instead (e.g., `-vvvv' for lots of output). Default is to only print error messages.
2003-07-24 * Do sync the database, since not doing so caused database changes notEelco Dolstra1-1/+1
to reach the disk at all. Looks like a bug.
2003-07-24 * Debug levels. Use `--verbose / -v LEVEL' to display only messagesEelco Dolstra8-25/+68
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-24 * Don't sync the database on close. This was killing performance.Eelco Dolstra1-1/+1
(Of course, the real problem is that we open the database for *every* operation; we should only open it once. And we should use transactions.)
2003-07-23 * Incorporated Berkeley DB and ATerm into the source tree.Eelco Dolstra1-2/+6
* `make dist'.
2003-07-22 * libdb_cxx-4 -> libdb_cxxEelco Dolstra1-4/+4
2003-07-22 * Substitutes now should produce a path with the same id as they areEelco Dolstra6-46/+72
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-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 * Check for errors.Eelco Dolstra1-1/+1
2003-07-21 * Canonicalise path.Eelco Dolstra1-1/+1
2003-07-21 * Allow the output/expression id to be forced to a certain Eelco Dolstra4-12/+19
value; this potentially dangerous feature enables better sharing for those paths for which the content is known in advance (e.g., because a content hash is given). * Fast builds: if we can expand all output paths of a derive expression, we don't have to build.
2003-07-21 * Changes to the command line syntax of Nix.Eelco Dolstra5-78/+117
* 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-21 * Memoize the evaluation of Fix expressions to speed up computation.Eelco Dolstra2-25/+47
2003-07-20 * Argh, another short-write problem. Added wrappers aroundEelco Dolstra8-36/+43
read()/write() to fix this once and for all.
2003-07-20 * Remove accidentally added file.Eelco Dolstra1-0/+0
2003-07-20 * Refactorings.Eelco Dolstra13-587/+609
2003-07-17 * For debugging: `nix --verify' to check the consistency of theEelco Dolstra7-14/+139
database and store.
2003-07-17 * Preserve the executable bit.Eelco Dolstra1-0/+13
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 * Bug fix: slices are transitive, so if we detect that an Eelco Dolstra1-5/+10
input path is referenced in an output paths, we also have to add all ids referenced by that input path. * Better debug assertions to catch these sorts of errors.