aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-11-29* Quick hack around one of the pathological cases in bsdiffEelco Dolstra
(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-29* Move the patch generator into a module.Eelco Dolstra
2010-11-29* Don't generate patches if the system type differs.Eelco Dolstra
2010-11-29* Impose a configurable time limit on patch generation. This isEelco Dolstra
necessary because bsdiff has some pathological worst-case behaviour, e.g. O(n^2) on files consisting only of 0s.
2010-11-25* Sync with the trunk.Eelco Dolstra
2010-11-25* DrvInfo contains pointers to expressions, so DrvInfos should beEelco Dolstra
traced by the garbage collector. Otherwise "nix-env -u" can crash randomly.
2010-11-17* Test whether sequences of patches work.Eelco Dolstra
2010-11-17* Oops.Eelco Dolstra
2010-11-17* When checking whether a patch is applicable, for efficiency, useEelco Dolstra
`nix-store -q --hash' to get the hash of the base path rather than `nix-hash'. However, only do this for estimating the size of a download, not for the actual substitution, because sometimes the contents of store paths are modified (which they shouldn't, of course).
2010-11-17* In the download size indication, take binary patches into account.Eelco Dolstra
Hopefully this doesn't slow things down too much.
2010-11-17(no commit message)Eelco Dolstra
2010-11-17* Finally, a test for the binary patch functionality.Eelco Dolstra
2010-11-17* Test that download sizes are shown correctly.Eelco Dolstra
2010-11-17* Fix the test.Eelco Dolstra
2010-11-17* Before a build, show the disk space that the downloaded store pathsEelco Dolstra
will approximately require.
2010-11-17* Store the NAR size in the manifest.Eelco Dolstra
2010-11-17* nix-push: no need to compute the NAR hash, since the Nix databaseEelco Dolstra
already has it (`nix-store -q --hash').
2010-11-17* Add an operation `nix-store -q --size'.Eelco Dolstra
2010-11-17* Implement RemoteStore::queryPathInfo().Eelco Dolstra
2010-11-16* Store the size of a store path in the database (to be precise, theEelco Dolstra
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
2010-10-29* Merge the GC branch.Eelco Dolstra
2010-10-29* Document Boehm GC support.Eelco Dolstra
2010-10-29* Use pkgconfig to locate the Boehm GC (as suggested by Ludo), ifEelco Dolstra
--enable-gc is given.
2010-10-29* Set libgc's initial heap size to 384 MiB to prevent garbageEelco Dolstra
collection in most cases (and therefore its performance overhead).
2010-10-28* new(UseGC) is inexplicably slower than GC_MALLOC, so prefer theEelco Dolstra
latter.
2010-10-28* Handle out of memory condition.Eelco Dolstra
2010-10-26* Install config.h.Eelco Dolstra
2010-10-24* We need Bison 2.4 now.Eelco Dolstra
2010-10-24* When allocating an attribute set, reserve enough space for allEelco Dolstra
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
* 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). ThisEelco Dolstra
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-blackEelco Dolstra
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
* Fix the stats.
2010-10-23* Regression test for listToAttr's behaviour if an attribute nameEelco Dolstra
occurs multiple times.
2010-10-23* Optimise string constants by putting them in the symbol table.Eelco Dolstra
2010-10-23* Make Value smaller by not storing redundant PrimOp info.Eelco Dolstra
* Clear pointers in Values after overwriting them to make sure that no objects are kept alive unnecessarily.
2010-10-23* Remove allocValues().Eelco Dolstra
2010-10-22* In environments, store pointers to values rather than values. ThisEelco Dolstra
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
2010-10-22* Store Value nodes outside of attribute sets. I.e., Attr now storesEelco Dolstra
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
2010-10-20* Keep some more stats.Eelco Dolstra
2010-10-20* Use the Boehm garbage collector to reclaim unused memory in the NixEelco Dolstra
expression evaluator.
2010-10-20* Evaluator garbage collection branch.Eelco Dolstra
2010-10-14* Wrap deleteFromStore() in a transaction. Otherwise there might be aEelco Dolstra
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-06nix manual: fix 'install' -> 'uninstall' in garbage collection section of ↵Rob Vermaas
introduction
2010-10-04* In the referrers test, lower the nesting depth from 2500 to 1000 toEelco Dolstra
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
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