Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2010-11-16 | * Store the size of a store path in the database (to be precise, the | Eelco Dolstra | 16 | -91/+144 | |
size of the NAR serialisation of the path, i.e., `nix-store --dump PATH'). This is useful for Hydra. | |||||
2010-11-16 | * Sync with the trunk. | Eelco Dolstra | 37 | -444/+722 | |
2010-10-29 | * Merge the GC branch. | Eelco Dolstra | 30 | -413/+678 | |
2010-10-29 | * Document Boehm GC support. | Eelco Dolstra | 4 | -1/+40 | |
2010-10-29 | * Use pkgconfig to locate the Boehm GC (as suggested by Ludo), if | Eelco Dolstra | 2 | -10/+10 | |
--enable-gc is given. | |||||
2010-10-29 | * Set libgc's initial heap size to 384 MiB to prevent garbage | Eelco Dolstra | 1 | -0/+12 | |
collection in most cases (and therefore its performance overhead). | |||||
2010-10-28 | * new(UseGC) is inexplicably slower than GC_MALLOC, so prefer the | Eelco Dolstra | 1 | -4/+4 | |
latter. | |||||
2010-10-28 | * Handle out of memory condition. | Eelco Dolstra | 5 | -10/+28 | |
2010-10-26 | * Install config.h. | Eelco Dolstra | 1 | -0/+2 | |
2010-10-24 | * We need Bison 2.4 now. | Eelco Dolstra | 1 | -1/+2 | |
2010-10-24 | * When allocating an attribute set, reserve enough space for all | Eelco Dolstra | 4 | -28/+21 | |
elements. This prevents the vector from having to resize itself. | |||||
2010-10-24 | * Keep attribute sets in sorted order to speed up attribute lookups. | Eelco Dolstra | 12 | -147/+185 | |
* Simplify the representation of attributes in the AST. * Change the behaviour of listToAttrs() in case of duplicate names. | |||||
2010-10-24 | * Don't create thunks for variable lookups (if possible). This | Eelco Dolstra | 3 | -23/+60 | |
significantly reduces the number of values allocated (e.g. from 8.7m to 4.9m for the Bittorrent test). | |||||
2010-10-24 | * Store attribute sets as a vector instead of a map (i.e. a red-black | Eelco Dolstra | 7 | -90/+129 | |
tree). This saves a lot of memory. The vector should be sorted so that names can be looked up using binary search, but this is not the case yet. (Surprisingly, looking up attributes using linear search doesn't have a big impact on performance.) Memory consumption for $ nix-instantiate /etc/nixos/nixos/tests -A bittorrent.test --readonly-mode on x86_64-linux with GC enabled is now 185 MiB (compared to 946 MiB on the trunk). | |||||
2010-10-23 | * Fix compiling without Boehm. | Eelco Dolstra | 1 | -10/+8 | |
* Fix the stats. | |||||
2010-10-23 | * Regression test for listToAttr's behaviour if an attribute name | Eelco Dolstra | 2 | -2/+3 | |
occurs multiple times. | |||||
2010-10-23 | * Optimise string constants by putting them in the symbol table. | Eelco Dolstra | 4 | -39/+55 | |
2010-10-23 | * Make Value smaller by not storing redundant PrimOp info. | Eelco Dolstra | 2 | -25/+44 | |
* Clear pointers in Values after overwriting them to make sure that no objects are kept alive unnecessarily. | |||||
2010-10-23 | * Remove allocValues(). | Eelco Dolstra | 4 | -36/+14 | |
2010-10-22 | * In environments, store pointers to values rather than values. This | Eelco Dolstra | 2 | -35/+25 | |
improves GC effectiveness a bit more (because a live value doesn't keep other values in the environment plus the parent environments alive), and removes the need for copy nodes. | |||||
2010-10-22 | * Regression test for __overrides. | Eelco Dolstra | 2 | -0/+10 | |
2010-10-22 | * Store Value nodes outside of attribute sets. I.e., Attr now stores | Eelco Dolstra | 15 | -130/+150 | |
a pointer to a Value, rather than the Value directly. This improves the effectiveness of garbage collection a lot: if the Value is stored inside the set directly, then any live pointer to the Value causes all other attributes in the set to be live as well. | |||||
2010-10-22 | * Make building against the Boehm GC a configure option. | Eelco Dolstra | 6 | -14/+42 | |
2010-10-20 | * Keep some more stats. | Eelco Dolstra | 2 | -0/+12 | |
2010-10-20 | * Use the Boehm garbage collector to reclaim unused memory in the Nix | Eelco Dolstra | 5 | -15/+29 | |
expression evaluator. | |||||
2010-10-20 | * Evaluator garbage collection branch. | Eelco Dolstra | 0 | -0/+0 | |
2010-10-14 | * Wrap deleteFromStore() in a transaction. Otherwise there might be a | Eelco Dolstra | 2 | -8/+13 | |
race with other processes that add new referrers to a path, resulting in the garbage collector crashing with "foreign key constraint failed". (Nix/4) * Make --gc --print-dead etc. interruptible. | |||||
2010-10-06 | nix manual: fix 'install' -> 'uninstall' in garbage collection section of ↵ | Rob Vermaas | 1 | -1/+1 | |
introduction | |||||
2010-10-04 | * In the referrers test, lower the nesting depth from 2500 to 1000 to | Eelco Dolstra | 1 | -1/+1 | |
prevent hitting a stack overflow bug in the garbage collector. | |||||
2010-10-04 | * Make sure that config.h is included before the system headers, | Eelco Dolstra | 12 | -29/+29 | |
because it defines _FILE_OFFSET_BITS. Without this, on OpenSolaris the system headers define it to be 32, and then the 32-bit stat() ends up being called with a 64-bit "struct stat", or vice versa. This also ensures that we get 64-bit file sizes everywhere. * Remove the redundant call to stat() in parseExprFromFile(). The file cannot be a symlink because that's the exit condition of the loop before. | |||||
2010-10-04 | * If std::tr1::unordered_set is unavailable, use std::set. | Eelco Dolstra | 2 | -0/+16 | |
2010-10-04 | * "type -P" isn't portable. | Eelco Dolstra | 1 | -1/+1 | |
2010-10-04 | * Don't use SSH's `-tt' flag because it doesn't seem to work | Eelco Dolstra | 1 | -6/+10 | |
on OpenSolaris when using connection sharing. Instead have the remote side check for disconnection and kill the process group when that happens. | |||||
2010-10-04 | * Sync with the trunk. | Eelco Dolstra | 4 | -4/+12 | |
2010-10-04 | * In printMsg(), ignore failing writes to stderr if we're in an | Eelco Dolstra | 1 | -1/+10 | |
exception handler, otherwise throw an exception. We need to ignore write errors in exception handlers to ensure that cleanup code runs to completion if the other side of stderr has been closed unexpectedly. | |||||
2010-10-04 | * Hack needed for GCC 4.3.2 on OpenSolaris. | Eelco Dolstra | 1 | -1/+1 | |
2010-09-14 | * Doh. Remove debug message. | Eelco Dolstra | 1 | -1/+0 | |
2010-09-01 | * Only do "pragma journal_mode = ..." if the current journal mode | Eelco Dolstra | 1 | -1/+10 | |
differs from the desired mode. There is an open SQLite ticket `Executing "PRAGMA journal_mode" may delete journal file while it is in use.' | |||||
2010-08-31 | * Always print hook output on stderr, even if --no-build-output is | Eelco Dolstra | 2 | -6/+17 | |
set. * In the build hook, print a trace message to allow Hydra to pick up the name of the remote machine used for the build. | |||||
2010-08-31 | `nix-store --verify' improvements: | Eelco Dolstra | 3 | -20/+62 | |
* If a path has disappeared, check its referrers first, and don't try to invalidate paths that have valid referrers. Otherwise we get a foreign key constraint violation. * Read the whole Nix store directory instead of statting each valid path, which is slower. * Acquire the global GC lock. | |||||
2010-08-30 | * When using the build hook, distinguish between the stderr of the | Eelco Dolstra | 8 | -29/+47 | |
hook script proper, and the stdout/stderr of the builder. Only the latter should be saved in /nix/var/log/nix/drvs. * Allow the verbosity to be set through an option. * Added a flag --quiet to lower the verbosity level. | |||||
2010-08-30 | * Disable the GC reachability check for now (when creating new roots), | Eelco Dolstra | 1 | -1/+1 | |
as it's hopelessly inefficient. | |||||
2010-08-27 | * Experimental feature: allow a derivation to tell the build hook that | Eelco Dolstra | 4 | -12/+43 | |
it requires a certain feature on the build machine, e.g. requiredSystemFeatures = [ "kvm" ]; We need this in Hydra to make sure that builds that require KVM support are forwarded to machines that have KVM support. Probably this should also be enforced for local builds. | |||||
2010-08-27 | * Oops - "null" was displayed as "true". | Eelco Dolstra | 1 | -1/+1 | |
2010-08-27 | (no commit message) | Eelco Dolstra | 1 | -1/+1 | |
2010-08-25 | * Made the build hook mechanism more efficient. Rather than starting | Eelco Dolstra | 3 | -341/+327 | |
the hook every time we want to ask whether we can run a remote build (which can be very often), we now reuse a hook process for answering those queries until it accepts a build. So if there are N derivations to be built, at most N hooks will be started. | |||||
2010-08-25 | * Don't call "cat". | Eelco Dolstra | 1 | -7/+4 | |
2010-08-25 | * In the build hook, temporarily register the derivation and its | Eelco Dolstra | 1 | -5/+23 | |
output as GC roots. This prevents a race if the garbage collector is running during the build. | |||||
2010-08-24 | * Correctly handle SSH failing to establish a connection. Because | Eelco Dolstra | 1 | -4/+7 | |
this didn't work right, the build hook wouldn't fall back to using other machines of the desired type. | |||||
2010-08-24 | * Don't complain if the stored hash of a path is zero (unknown). | Eelco Dolstra | 1 | -2/+3 | |