Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2011-04-19 | * Handle error messages from the Nix worker containing the `%' | Eelco Dolstra | 1 | -1/+1 | |
character. (Nix/216) | |||||
2011-04-11 | * `nix-env -ub' (`--prebuilt-only') didn't really work because it | Eelco Dolstra | 1 | -17/+20 | |
checked too soon whether substitutes are available. That is, it did so for every available package, rather than those matching installed packages. This was very slow and subject to assertion failures. So do the check much later. Idem for `nix-env -qab' and `nix-env -ib'. | |||||
2011-02-10 | * Don't allocate a big initial GC address space on machines with | Eelco Dolstra | 1 | -11/+24 | |
little RAM. Even if the memory isn't actually used, it can cause problems with the overcommit heuristics in the kernel. So use a VM space of 25% of RAM, up to 384 MB. | |||||
2011-02-09 | * Don't call GC_expand_hp unless we're actually using the garbage | Eelco Dolstra | 2 | -12/+18 | |
collector. | |||||
2011-02-09 | Use $BDW_GC_LIBS instead of a custom variable. | Ludovic Courtès | 2 | -2/+2 | |
2011-02-09 | * Sync with the trunk. | Eelco Dolstra | 1 | -2/+0 | |
2011-02-05 | * Clang compatibility fix. Clang actually checks template definitions | Eelco Dolstra | 1 | -1/+1 | |
when they are defined | |||||
2011-01-14 | Remove useless <config.h> inclusion from public header. | Ludovic Courtès | 1 | -2/+0 | |
2011-01-14 | * builtins.substring: if "start" is beyond the end of the string, | Eelco Dolstra | 1 | -1/+1 | |
return the empty string. | |||||
2010-12-17 | * Do a short sleep after SQLITE_BUSY. | Eelco Dolstra | 1 | -0/+11 | |
2010-12-17 | * Propagate the "100" exit status for failed builds through the Nix | Eelco Dolstra | 3 | -5/+9 | |
daemon. | |||||
2010-12-14 | * I forgot to catch SQLiteBusy in registerValidPaths(). So | Eelco Dolstra | 1 | -38/+31 | |
registerValidPaths() now handles busy errors and registerValidPath() is simply a wrapper around it. | |||||
2010-12-13 | * nix-instantiate: return exit status 100 to denote a permanent build | Eelco Dolstra | 4 | -7/+22 | |
failure. The build hook can use this to distinguish between transient and permanent failures on the remote side. | |||||
2010-12-13 | * Create /nix/var/nix/db if it's missing. | Eelco Dolstra | 1 | -0/+1 | |
2010-12-13 | * createDirs(path): if path already exists, make sure it's a | Eelco Dolstra | 2 | -20/+26 | |
directory. * Provide a C++ wrapper around lstat(). | |||||
2010-12-13 | * Update some comments. | Eelco Dolstra | 2 | -4/+3 | |
2010-12-08 | * Ignore the result of sqlite3_reset(). | Eelco Dolstra | 1 | -3/+4 | |
2010-12-06 | * `nix-store --verify --check-contents': don't hold the global GC lock | Eelco Dolstra | 2 | -11/+49 | |
while checking the contents, since this operation can take a very long time to finish. Also, fill in missing narSize fields in the DB while doing this. | |||||
2010-12-05 | * Retry a transaction if SQLite returns SQLITE_BUSY. This can happen | Eelco Dolstra | 1 | -61/+83 | |
even with a very long busy timeout, because SQLITE_BUSY is also returned to resolve deadlocks. This should get rid of random "database is locked" errors. This is kind of hard to test though. * Fix a horrible bug in deleteFromStore(): deletePathWrapped() should be called after committing the transaction, not before, because the commit might not succeed. | |||||
2010-11-29 | * Quick hack around one of the pathological cases in bsdiff | Eelco Dolstra | 1 | -0/+1 | |
(namely, when there is a long region of 0s). On one 86 MiB case, this cut patch generation time from 44m to 2m. | |||||
2010-11-25 | * Sync with the trunk. | Eelco Dolstra | 1 | -0/+4 | |
2010-11-25 | * DrvInfo contains pointers to expressions, so DrvInfos should be | Eelco Dolstra | 1 | -0/+4 | |
traced by the garbage collector. Otherwise "nix-env -u" can crash randomly. | |||||
2010-11-17 | * Before a build, show the disk space that the downloaded store paths | Eelco Dolstra | 8 | -12/+18 | |
will approximately require. | |||||
2010-11-17 | * Add an operation `nix-store -q --size'. | Eelco Dolstra | 4 | -7/+24 | |
2010-11-17 | * Implement RemoteStore::queryPathInfo(). | Eelco Dolstra | 3 | -1/+27 | |
2010-11-16 | * Store the size of a store path in the database (to be precise, the | Eelco Dolstra | 15 | -90/+143 | |
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 | 25 | -437/+643 | |
2010-10-29 | * Document Boehm GC support. | Eelco Dolstra | 1 | -1/+1 | |
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-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 | 11 | -146/+184 | |
* 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 | * 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 | * 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 | 5 | -14/+29 | |
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-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-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 | 1 | -0/+9 | |
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 | |