about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2006-10-19 * Special derivation attribute `allowedReferences' that causes Nix toEelco Dolstra1-0/+31
check that the references of the output of a derivation are in the specified set. For instance, allowedReferences = []; specifies that the output cannot have any references. (This is useful, for instance, for the generation of bootstrap binaries for stdenv-linux, which must not have any references for purity). It could also be used to guard against undesired runtime dependencies, e.g., {gcc, dynlib}: derivation { ... allowedReferences = [dynlib]; } says that the output can refer to the path of `dynlib' but not `gcc'. A `forbiddedReferences' attribute would be more useful for this, though.
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-12/+2
concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.)
2006-10-13 * A helpful message.Eelco Dolstra1-0/+2
2006-10-13 * Don't crash when upgrading the Berkeley DB environment.Eelco Dolstra1-1/+6
2006-09-22 * Use a bounded amount of memory in scanForReferences() by not readingEelco Dolstra1-9/+26
regular files into memory all at once.
2006-09-22 * Don't allocate the buffer twice.Eelco Dolstra1-7/+9
2006-09-22 * Don't allocate more than SIZE_MAX bytes.Eelco Dolstra1-0/+7
2006-09-14 * Fix a huge gaping hole in nix-env w.r.t. the garbage collector.Eelco Dolstra2-10/+15
Nix-env failed to call addPermRoot(), which is necessary to safely add a new root. So if nix-env started after and finished before the garbage collector, the user environment (plus all other new stuff) it built might be garbage collected, leading to a dangling symlink chain in ~/.nix-profile... * Be more explicit if we block on the GC lock ("waiting for the big garbage collector lock..."). * Don't loop trying to create a new generation. It's not necessary anymore since profiles are locked nowadays.
2006-09-04 * Install header files in /nix/include/nix.Eelco Dolstra1-6/+8
2006-09-04 * Remove unnecessary inclusions of aterm2.h.Eelco Dolstra3-1/+5
2006-09-04 * Use a proper namespace.Eelco Dolstra18-82/+193
* Optimise header file usage a bit. * Compile the parser as C++.
2006-09-04 * Store the Nix libraries in ${libdir}/nix instead of ${libdir}.Eelco Dolstra1-1/+1
2006-08-15 On cygwin, disable the check that the output is not group or worldMartin Bravenboer1-0/+2
writable. File permissions on Cygwin are rather complex, and in this case this check introduced a problem with build jobs invoke from outside of Cygwin (MSYS). It seemed almost impossible to fix the permissions of the directory, so for now this safety check is disabled on Cygwin.
2006-08-11 * `nix-store --gc --print-dead': print the total size of the storeEelco Dolstra1-0/+9
objects that would be freed.
2006-08-11 * Don't assume that paths returned by the runtime root finder areEelco Dolstra1-1/+1
valid.
2006-08-01 * Show some progress.Eelco Dolstra1-0/+1
2006-07-20 * Use $(libexecdir) to find find-runtime-roots.pl.Eelco Dolstra3-1/+6
2006-07-20 * Use debug().Eelco Dolstra1-1/+1
2006-07-20 * Call find-runtime-roots.pl from the garbage collector to preventEelco Dolstra2-16/+36
running applications etc. from being garbage collected.
2006-07-06 * Allow the canonical system name to be specified at runtime in theEelco Dolstra2-1/+5
Nix config file.
2006-06-20 * Concurrent GC on Cygwin.Eelco Dolstra3-73/+146
2006-06-19 * Oops.Eelco Dolstra1-1/+2
2006-06-19 * _exit() doesn't seem to work right on Cygwin.Eelco Dolstra1-0/+11
2006-06-19 * On Windows we cannot delete open (lock) files, so we delete lockEelco Dolstra1-4/+47
files after we've closed them. Since this only succeeds if the lock is no longer opened by any process, the token trick used on Unix is not necessary.
2006-06-16 * Show when we're blocked waiting for a lock.Eelco Dolstra1-4/+4
2006-06-15 * In `nix-env -i|-u|-e', lock the profile to prevent races betweenEelco Dolstra2-6/+11
concurrent nix-env operations on the same profile. Fixes NIX-7.
2006-06-01 * Minor cleanup.Eelco Dolstra1-7/+3
2006-05-31 * For fixed-output derivations, pass the environment variables listedEelco Dolstra1-3/+20
in the attribute variable `impureEnvVars' from the caller to the builder.
2006-05-30 * Not all platforms have sys/select.h.Eelco Dolstra1-1/+1
2006-05-29 * Disable the concurrent garbage collector on Cygwin for now.Eelco Dolstra1-0/+8
2006-05-24 * Some Cygwin fixes.Eelco Dolstra1-0/+1
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra1-5/+5
2006-05-11 * 64-bit compatibility fixes (for problems revealed by building on an AthlonEelco Dolstra4-5/+5
64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully.
2006-05-02 * Removed a bunch of ATreverses.Eelco Dolstra1-16/+19
2006-03-10 * Allow `make check' to work in directories that have symlinkEelco Dolstra1-0/+20
components.
2006-03-06 * `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra6-20/+82
will be built or substituted.
2006-03-01 * db.hh shouldn't depend on the Berkeley DB headers.Eelco Dolstra3-3/+10
2006-03-01 * Close the database before the destructor runs.Eelco Dolstra3-0/+12
2006-03-01 * Wrong delete. Thanks valgrind.Eelco Dolstra1-1/+1
2006-03-01 * Remove dead code.Eelco Dolstra1-30/+0
2006-02-16 * Allow the size of the GC reserved file to be specified in nix.confEelco Dolstra3-9/+18
through the new `gc-reserved-space' option.
2006-02-16 * A simple hack to fix NIX-18: the garbage collector cannot run whenEelco Dolstra2-3/+23
the disk is full (because to delete something from the Nix store, we need a Berkeley DB transaction, which takes up disk space). Under normal operation, we make sure that there exists a file /nix/var/nix/db/reserved of 1 MB. When running the garbage collector, we delete that file before we open the Berkeley DB environment.
2006-02-03 * Use setsid instead of setpgrp in child processes. This not onlyEelco Dolstra1-6/+8
creates a new process group but also a new session. New sessions have no controlling tty, so child processes like ssh cannot open /dev/tty (which is bad).
2006-02-02 * When killing a build hook, kill the entire process group (asEelco Dolstra1-0/+1
intended). This ensures that any ssh child processes to remote machines are also killed, and thus the Nix process on the remote machine also exits. Without this, the remote Nix process will continue until it exists or until its stdout buffer gets full and it locks up. (Partially fixes NIX-35.)
2005-12-25 * More GCC 2.95 compatibility.Eelco Dolstra1-1/+1
2005-12-25 * Hack around a GCC 2.95 bug.Eelco Dolstra1-2/+2
2005-12-24 * GCC 2.95 compatibility.Eelco Dolstra1-1/+1
2005-12-23 * Added a flag `--ignore-liveness' to `nix-store --delete'. ItEelco Dolstra2-3/+4
deletes a path even if it is reachable from a root. However, it won't delete a path that still has referrers (since that would violate store invariants). Don't try this at home. It's a useful hack for recovering from certain situations in a somewhat clean way (e.g., holes in closures due to disk corruption).
2005-12-23 * Revived the old "nix-store --delete" operation that deletes theEelco Dolstra2-10/+22
specified paths from the Nix store. However, this operation is safe: it refuses to delete anything that the garbage collector wouldn't delete.
2005-12-15 * `nix-store --gc' prints out the number of bytes freed on stdoutEelco Dolstra4-6/+12
(even when it is interrupted by a signal).