about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2011-12-30 * Sync with the trunk.Eelco Dolstra5-21/+54
2011-12-25 * Make sure that lock files are cleaned up properly when buildingEelco Dolstra1-7/+7
through the build hook.
2011-12-22 * Oops.Eelco Dolstra1-1/+1
2011-12-22 * In the garbage collector, delete invalid paths before deletingEelco Dolstra3-12/+45
unreachable paths. This matters when using --max-freed etc.: unreachable paths could become reachable again, so it's nicer to keep them if there is "real" garbage to be deleted. Also, don't use readDirectory() but read the Nix store and delete invalid paths in parallel. This reduces GC latency on very large Nix stores.
2011-12-22 * Drop unnecessary call to canonPath() (nixStore is already canonical).Eelco Dolstra1-1/+1
2011-12-21 * Another case of lock file permissions being too liberal.Eelco Dolstra1-1/+1
2011-12-21 * The ‘foo.drvPath’ feature was already broken in read-only mode.Eelco Dolstra1-1/+2
Since it's rarely used and fixing it is too much work right now, just document it.
2011-12-21 Revert previous commitShea Levy1-9/+0
It doesn't detect indirect references
2011-12-21 Detect and reject mutually-referential outputsShea Levy1-0/+9
There is probably a more efficient way to do this.
2011-12-21 * Simplify the context handling logic.Eelco Dolstra1-24/+13
2011-12-20 * Fix the build.Eelco Dolstra2-2/+2
2011-12-16 * Sync with the trunk.Eelco Dolstra26-275/+461
2011-12-16 * importPath() -> importPaths(). Because of buffering of the inputEelco Dolstra10-57/+75
stream it's now necessary for the daemon to process the entire sequence of exported paths, rather than letting the client do it.
2011-12-16 * Avoid expensive conversions from char arrays to STL strings.Eelco Dolstra3-13/+25
2011-12-16 * Make the import operation through the daemon much more efficientEelco Dolstra6-44/+68
(way fewer roundtrips) by allowing the client to send data in bigger chunks. * Some refactoring.
2011-12-16 * Clean up exception handling.Eelco Dolstra2-3/+10
2011-12-15 * Refactoring: move sink/source buffering into separate classes.Eelco Dolstra8-90/+125
* Buffer the HashSink. This speeds up hashing a bit because it prevents lots of calls to the hash update functions (e.g. nix-hash went from 9.3s to 8.7s of user time on the closure of my /var/run/current-system).
2011-12-15 * Buffer reads in FdSource. Together with write buffering, thisEelco Dolstra2-10/+32
significantly cuts down the number of syscalls (e.g., for "nix-store -qR /var/run/current-system" via the daemon, it reduced the number of syscalls in the client from 29134 to 4766 and in the daemon from 44266 to 20666).
2011-12-14 * Buffer writes in FdSink. This significantly reduces the number ofEelco Dolstra4-14/+50
system calls / context switches when dumping a NAR and in the worker protocol.
2011-12-14 * Remove the terminate handler, which was only really needed becauseEelco Dolstra1-23/+0
of Berkeley DB (see r8632).
2011-12-05 * Remove unnecessary quotes. showPaths() already adds quotes.Eelco Dolstra1-1/+1
2011-12-02 * In ‘nix-store --verify --check-contents’, repair missing hashesEelco Dolstra1-4/+20
rather than complain about them.
2011-12-02 * Move parseHash16or32 into libutil, and use in nix-hash.Eelco Dolstra5-22/+23
2011-12-01 * Allow '<nixexpr>' syntax to be used in nix-instantiate, nix-buildEelco Dolstra4-3/+15
and nix-env, e.g., $ nix-env -f '<nixpkgs>' -i patchelf or $ nix-build '<nixos/tests>' -A login.test
2011-12-01 * Slight improvement.Eelco Dolstra1-3/+2
2011-12-01 * When doing "nix-store --add-fixed" without "--recursive" via the NixEelco Dolstra3-6/+16
daemon (which is an error), print a nicer error message than "Connection reset by peer" or "broken pipe". * In the daemon, log errors that occur during request parameter processing.
2011-11-29 * Get rid of some superfluous error messages if a substituter fails.Eelco Dolstra2-16/+7
* Say "fetch" instead of "substitute".
2011-11-23 * Add an API function exportPaths() that provides the functionality ofEelco Dolstra4-6/+19
‘nix-store --export’. * Add a Perl module that provides the functionality of ‘nix-copy-closure --to’. This is used by build-remote.pl so it no longer needs to start a separate nix-copy-closure process. Also, it uses the Perl API to do the export, so it doesn't need to start a separate nix-store process either. As a result, nix-copy-closure and build-remote.pl should no longer fail on very large closures due to an "Argument list too long" error. (Note that having very many dependencies in a single derivation can still fail because the environment can become too large. Can't be helped though.)
2011-11-22 * Move initialisation of variables like nixConfDir from libmain toEelco Dolstra5-33/+45
libstore so that the Perl bindings can use it as well. It's vital that the Perl bindings use the configuration file, because otherwise nix-copy-closure will fail with a ‘database locked’ message if the value of ‘use-sqlite-wal’ is changed from the default.
2011-11-21 nix: add /etc/hosts with localhost entry to chroot builds.Rob Vermaas1-0/+3
2011-11-07 * Boldly make SQLite WAL mode the default again. Hopefully theEelco Dolstra1-4/+3
intermittent problems are gone by now. WAL mode is preferrable because it does way fewer fsyncs.
2011-11-06 There's no need to mess with drvPath at allShea Levy1-6/+4
2011-11-06 Fix faulty reversion of my changes to unsafeDiscardOutputDependencyShea Levy1-1/+1
2011-11-06 Respect all outputs passed to the derivation, not just the last oneShea Levy1-1/+3
2011-11-06 Remove the unused sCurrentOutput symbolShea Levy2-2/+1
2011-11-06 Embed output name into the context of the *OutPath attributes and extract it ↵Shea Levy1-2/+9
for input derivations Multiple outputs test passes!
2011-11-06 Include all outputs of derivations in the closure of explicitly-passed ↵Shea Levy8-2/+58
derivation paths This required adding a queryOutputDerivationNames function in the store API
2011-11-06 The 'insert output between = signs' approach was not helpfulShea Levy1-9/+2
2011-11-06 Merge from trunkShea Levy4-8/+12
2011-10-27 * In printValueAsXML, handle the case where a "type" attribute is notEelco Dolstra1-3/+6
a string. This happens in the NixOS option system. * Remove a bogus comparison of a unsigned integer with -1.
2011-09-16 Remove the current output metadata from the string for ↵Shea Levy1-1/+8
unsaveDiscardOutputDependency
2011-09-16 Add information about which output is active to drvPath's contextShea Levy1-4/+6
This will break things that depend on being able to just strip away an equals sign, so those have to be updated next
2011-09-16 Add an sCurrentOutput member to EvalStateShea Levy2-1/+2
2011-09-16 Add a currentOutput attribute to derivations keep track of which output is ↵Shea Levy1-1/+4
active
2011-09-14 First attempt at the output-as-derivation semanticsShea Levy1-9/+27
For each output, this adds a corresponding attribute to the derivation that is the same as the derivation except for outPath, which is set to the path specific to that output. Additionally, an "all" attribute is added that is a list of all of the output derivations. This has to be done outside of derivationStrict as each output is itself a derivation that contains itself (and all other outputs) as an attribute. The derivation itself is equivalent to the first output in the outputs list (or "out" if that list isn't set).
2011-09-12 * Ouch. A store upgrade could cause a substituter to be triggered,Eelco Dolstra3-5/+6
causing a deadlock.
2011-09-06 * Added a command ‘nix-store --verify-paths PATHS’ to check whetherEelco Dolstra4-7/+35
the contents of any of the given store paths have been modified. E.g. $ nix-store --verify-path $(nix-store -qR /var/run/current-system) path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa' All paths are checked; the exit code is 1 if any path has been modified, 0 otherwise.
2011-08-31 * Eliminate all uses of the global variable ‘store’ from libstore.Eelco Dolstra15-89/+95
This should also fix: nix-instantiate: ./../boost/shared_ptr.hpp:254: T* boost::shared_ptr<T>::operator->() const [with T = nix::StoreAPI]: Assertion `px != 0' failed. which was caused by hashDerivationModulo() calling the ‘store’ object (during store upgrades) before openStore() assigned it.
2011-08-06 * Cache the result of file evaluation (i.e, memoize evalFile()). ThisEelco Dolstra2-11/+22
prevents files from being evaluated and stored as values multiple times. For instance, evaluation of the ‘system’ attribute in NixOS causes ‘nixpkgs/pkgs/lib/lists.nix’ to be evaluated 2019 times. Caching gives a modest speedup and a decent memory footprint reduction (e.g., from 1.44s to 1.28s, and from 81 MiB to 59 MiB with GC_INITIAL_HEAP_SIZE=100000 on my system).
2011-08-06 * Handle the case where the search path element is a regular file.Eelco Dolstra1-1/+2