about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2003-10-14 * Automatically recover the database in case of a crash.Eelco Dolstra6-38/+201
2003-10-10 * New query `nix --query --predecessors' to print the predecessors ofEelco Dolstra5-2/+29
a Nix expression.
2003-10-10 * `nix --verify': check and repair reverse mapping for successors.Eelco Dolstra2-89/+33
2003-10-10 * Reverse mappings for the successor and substitute mappings.Eelco Dolstra6-25/+66
2003-10-10 * Performance improvement: don't register already registered terms,Eelco Dolstra1-5/+8
thus greatly reducing the number of db transactions.
2003-10-08 * Get rid of identifiers since they are redundant now. This greatlyEelco Dolstra23-624/+478
simplifies stuff. * The format of Nix expressions and the database schema changed because of this, so it's best to delete old Nix installations.
2003-10-07 * string -> Path.Eelco Dolstra2-20/+26
2003-10-07 * Synchronise terminology with the ICSE paper (e.g., slice -> closure,Eelco Dolstra14-266/+252
fstate -> Nix expression). * Fix src/test.cc.
2003-10-02 * Include the right files in a distribution.Eelco Dolstra1-1/+1
2003-10-02 * Nix now respects $TMPDIR for the creation of temporary build directories.Eelco Dolstra3-5/+24
* Retry creation of a temporary directory (with a different name) in the case of EEXIST.
2003-09-11 * Removed references to char_traits so that boost/format also works onEelco Dolstra1-5/+7
GCC 2.95.
2003-09-11 * Added some missing #includes.Eelco Dolstra4-0/+7
2003-09-03 * Make nicer dot graphs. Also show the inner structure of slices.Eelco Dolstra2-15/+86
2003-09-03 * Factored out dot graph generation into a separate file.Eelco Dolstra4-61/+76
2003-08-29 * Do not show the output of the builder unless the verbosity is atEelco Dolstra1-1/+5
least at debug level (-vvv). The output is still appended to the build log in /nix/var/log/nix.
2003-08-28 * Do not try to remove write permission from symlinks, since chmod()Eelco Dolstra2-3/+3
follows symlinks. (Note that the permissions on symlinks are ignored anyway.)
2003-08-25 * Fix the atrocious (exponential? factorial?) time complexity inEelco Dolstra1-4/+9
`nix --query --requisites'.
2003-08-22 * Remove write permission from output paths after they have been built.Eelco Dolstra3-6/+52
* Point $HOME to a non-existing path when building to prevent certain tools (such as wget) from falling back on /etc/passwd to locate the home directory (which we don't want them to look at since it's not declared as an input).
2003-08-20 * Use maps and sets in the FState data type. This ensures normalisation ofEelco Dolstra5-105/+86
slices and derivations w.r.t. order of paths, slice elements, etc.
2003-08-20 * Change the abstract syntax of slices. It used to be that ids were used asEelco Dolstra4-61/+59
keys to reference slice elements, e.g., Slice(["1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["8c99..."]), ...]) This was wrong, since ids represent contents, not locations. Therefore we now have: Slice(["/nix/store/1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["/nix/store/8c99-..."]), ...]) * Fix a bug in the computation of slice closures that could cause slice elements to be duplicated.
2003-08-20 * Fixed a serious bug in the computation of slices. Sometimes the slicesEelco Dolstra1-20/+61
would not be properly closed under the path reference relation.
2003-08-19 * Pipe /dev/null into stdin.Eelco Dolstra1-0/+10
2003-08-19 * Delete the temporary directories of failed builds by default, and anEelco Dolstra5-1/+17
option `--keep-failed' to override this behaviour.
2003-08-18 * Allow lists in package bindings, e.g.,Eelco Dolstra1-0/+12
("srcs", [Relative("foo/bar.c"), Relative("foo/baz.h")]) The result is an environment variable that contains the path names of the inputs separated by spaces (so this is not safe for values containing spaces).
2003-08-18 * Most shells initialise PATH to some default (/bin:/usr/bin:...)Eelco Dolstra1-0/+5
when PATH is not set. We don't want this, so fill it in with some dummy value.
2003-08-15 * Argument support in Fix. Arguments can be passed through theEelco Dolstra1-20/+43
builder using the `args' binding: ("args", ["bla", True, IncludeFix("aterm/aterm.fix")]) Note that packages can also be declared as inputs by specifying them in the argument list.
2003-08-15 * Derivation expressions now can specify arguments to be passed to theEelco Dolstra5-20/+56
builder. Note that this unfortunately causes all Fix-computed hashes to change.
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