Commit graph

  • 8a788e38ac * Install config.h. Eelco Dolstra 2010-10-26 10:47:02 +0000
  • 11ccd44e95 * We need Bison 2.4 now. Eelco Dolstra 2010-10-24 21:48:59 +0000
  • 43535499f3 * When allocating an attribute set, reserve enough space for all elements. This prevents the vector from having to resize itself. Eelco Dolstra 2010-10-24 20:09:37 +0000
  • e0b7fb8f27 * Keep attribute sets in sorted order to speed up attribute lookups. * Simplify the representation of attributes in the AST. * Change the behaviour of listToAttrs() in case of duplicate names. Eelco Dolstra 2010-10-24 19:52:33 +0000
  • 2dc6d50941 * Don't create thunks for variable lookups (if possible). This significantly reduces the number of values allocated (e.g. from 8.7m to 4.9m for the Bittorrent test). Eelco Dolstra 2010-10-24 14:20:02 +0000
  • 0b305c534f * Store attribute sets as a vector instead of a map (i.e. a red-black 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.) Eelco Dolstra 2010-10-24 00:41:29 +0000
  • a247d20604 * Fix compiling without Boehm. * Fix the stats. Eelco Dolstra 2010-10-23 22:58:24 +0000
  • 02934b1200 * Regression test for listToAttr's behaviour if an attribute name occurs multiple times. Eelco Dolstra 2010-10-23 22:55:30 +0000
  • b2ba62170c * Optimise string constants by putting them in the symbol table. Eelco Dolstra 2010-10-23 21:11:59 +0000
  • 8ac06726b9 * Make Value smaller by not storing redundant PrimOp info. * Clear pointers in Values after overwriting them to make sure that no objects are kept alive unnecessarily. Eelco Dolstra 2010-10-23 20:07:47 +0000
  • 3f66cfb96b * Remove allocValues(). Eelco Dolstra 2010-10-23 18:18:07 +0000
  • 4dee289550 * In environments, store pointers to values rather than values. This 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. Eelco Dolstra 2010-10-22 15:51:52 +0000
  • cf7e645a48 * Regression test for __overrides. Eelco Dolstra 2010-10-22 15:15:12 +0000
  • 41c45a9b31 * Store Value nodes outside of attribute sets. I.e., Attr now stores 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. Eelco Dolstra 2010-10-22 14:47:42 +0000
  • 64c3325b0b * Make building against the Boehm GC a configure option. Eelco Dolstra 2010-10-22 13:39:15 +0000
  • 76feaf016a * Keep some more stats. Eelco Dolstra 2010-10-20 15:48:00 +0000
  • e879a0371b * Use the Boehm garbage collector to reclaim unused memory in the Nix expression evaluator. Eelco Dolstra 2010-10-20 11:38:30 +0000
  • b0c11cda7e * Evaluator garbage collection branch. Eelco Dolstra 2010-10-20 09:08:39 +0000
  • 64fd29855a * Wrap deleteFromStore() in a transaction. Otherwise there might be a 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. Eelco Dolstra 2010-10-14 15:55:51 +0000
  • 8dadcede65 nix manual: fix 'install' -> 'uninstall' in garbage collection section of introduction Rob Vermaas 2010-10-06 19:04:04 +0000
  • 7119d38287 * In the referrers test, lower the nesting depth from 2500 to 1000 to prevent hitting a stack overflow bug in the garbage collector. Eelco Dolstra 2010-10-04 22:26:38 +0000
  • 705868a8a9 * Make sure that config.h is included before the system headers, 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. Eelco Dolstra 2010-10-04 17:55:38 +0000
  • 95f4f2cf61 * If std::tr1::unordered_set is unavailable, use std::set. Eelco Dolstra 2010-10-04 16:16:19 +0000
  • 36a23e86b6 * "type -P" isn't portable. Eelco Dolstra 2010-10-04 15:50:08 +0000
  • bfa6ee7d91 * Don't use SSH's `-tt' flag because it doesn't seem to work on OpenSolaris when using connection sharing. Instead have the remote side check for disconnection and kill the process group when that happens. Eelco Dolstra 2010-10-04 12:30:46 +0000
  • 71dfe4b90b * Sync with the trunk. Eelco Dolstra 2010-10-04 11:44:47 +0000
  • 450837bcc8 * In printMsg(), ignore failing writes to stderr if we're in an 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. Eelco Dolstra 2010-10-04 11:23:07 +0000
  • 4aa9245083 * Hack needed for GCC 4.3.2 on OpenSolaris. Eelco Dolstra 2010-10-04 10:51:16 +0000
  • 923736df38 * Doh. Remove debug message. Eelco Dolstra 2010-09-14 12:47:19 +0000
  • e4907411c2 * Only do "pragma journal_mode = ..." if the current journal mode differs from the desired mode. There is an open SQLite ticket `Executing "PRAGMA journal_mode" may delete journal file while it is in use.' Eelco Dolstra 2010-09-01 11:36:22 +0000
  • bf0dde9597 * Always print hook output on stderr, even if --no-build-output is 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. Eelco Dolstra 2010-08-31 12:36:24 +0000
  • e2e168f7c2 `nix-store --verify' improvements: * 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. Eelco Dolstra 2010-08-31 11:47:31 +0000
  • 80e722278c * When using the build hook, distinguish between the stderr of the 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. Eelco Dolstra 2010-08-30 14:53:03 +0000
  • 20acd43c25 * Disable the GC reachability check for now (when creating new roots), as it's hopelessly inefficient. Eelco Dolstra 2010-08-30 14:11:57 +0000
  • 766f708418 * Experimental feature: allow a derivation to tell the build hook that it requires a certain feature on the build machine, e.g. Eelco Dolstra 2010-08-27 13:18:13 +0000
  • df50916e46 * Oops - "null" was displayed as "true". Eelco Dolstra 2010-08-27 12:10:56 +0000
  • e41ecbf730 Eelco Dolstra 2010-08-27 11:09:04 +0000
  • e437b08250 * Made the build hook mechanism more efficient. Rather than starting 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. Eelco Dolstra 2010-08-25 20:44:28 +0000
  • 1a396f3789 * Don't call "cat". Eelco Dolstra 2010-08-25 12:19:30 +0000
  • 95deba581d * In the build hook, temporarily register the derivation and its output as GC roots. This prevents a race if the garbage collector is running during the build. Eelco Dolstra 2010-08-25 11:54:11 +0000
  • 1e5f5ea2e9 * Correctly handle SSH failing to establish a connection. Because this didn't work right, the build hook wouldn't fall back to using other machines of the desired type. Eelco Dolstra 2010-08-24 14:27:07 +0000
  • 034f608e00 * Don't complain if the stored hash of a path is zero (unknown). Eelco Dolstra 2010-08-24 14:25:33 +0000
  • f58f51f380 * Handle the unlikely case where a derivation has no dependencies at all. Eelco Dolstra 2010-08-24 11:45:44 +0000
  • 955d11aae7 * Sync with the trunk. Eelco Dolstra 2010-08-24 09:56:28 +0000
  • c67eccc26d * nix-build: pass --cores. Eelco Dolstra 2010-08-24 09:21:59 +0000
  • 2c8e070e5d * Bump the version number. Eelco Dolstra 2010-08-17 15:39:35 +0000
  • ed133e6e64 * rpmBuild already includes the disk image in the output name. Eelco Dolstra 2010-08-17 14:08:44 +0000
  • 2de17f4edc * Update date. Eelco Dolstra 2010-08-17 10:06:26 +0000
  • 86f65edf4e * Document --cores in the manual. Eelco Dolstra 2010-08-17 07:22:05 +0000
  • b75e1043a3 * Typo. Eelco Dolstra 2010-08-16 13:23:45 +0000
  • 8ec6594d6d * Remove the "tarball" jobset argument. Eelco Dolstra 2010-08-16 13:01:31 +0000
  • 12721a3a9a * Nix 0.16 release notes. Eelco Dolstra 2010-08-16 12:38:32 +0000
  • 5fb824e896 * Urgh, this was supposed to go in the trunk... Eelco Dolstra 2010-08-12 13:36:56 +0000
  • 5c5ab2bc12 * Don't link against pthreads. This was added way back in r211 because Berkeley DB needed it on some platforms, but we don't use BDB anymore. Eelco Dolstra 2010-08-12 13:34:34 +0000
  • 6846ed8b44 * Make --cores work when building through the Nix daemon. Eelco Dolstra 2010-08-12 09:21:50 +0000
  • 5f9aad44ca * nix-build: recognise --cores. Eelco Dolstra 2010-08-11 15:28:02 +0000
  • d7875d1648 * Use SQLite 3.7.0.1. Eelco Dolstra 2010-08-06 07:51:27 +0000
  • 587dc8aa00 * Sync with the trunk. Eelco Dolstra 2010-08-04 17:48:29 +0000
  • fd9c77dfc7 * Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lot faster than the old mode when fsyncs are enabled, because it only performs an fsync() when doing a checkpoint, rather than at every commit. Some timings for doing a "nix-instantiate /etc/nixos/nixos -A system" after modifying the stdenv setup script: Eelco Dolstra 2010-08-04 17:35:59 +0000
  • 750be19ae8 * Remove "auto" and "guess" as synonyms for 0 in the handling of build-cores and --cores. They're superfluous and just complicate the parsing. Eelco Dolstra 2010-08-04 12:23:59 +0000
  • 7f893b7a43 * Allow derivations to hint that they should not be built remotely using the build hook mechanism, by setting the derivation attribute "preferLocalBuild" to true. This has a few use cases: Eelco Dolstra 2010-08-04 12:13:58 +0000
  • 315d8fbd75 * Set the default system filter to "*". This ensures that (for instance) "nix-env -i wine" works on x86_64-linux, even though Wine is built on i686-linux. In the event that there are multiple matching derivations, prefer those built for the current system. Eelco Dolstra 2010-08-04 09:32:42 +0000
  • 6d6200f37a * Optimisation in the // operator: if one of the sets is empty, return the other set. Eelco Dolstra 2010-08-02 16:31:05 +0000
  • 7af6a2fd71 * intersectAttrs: optimise for the case where the second set is larger than the first set. (That's usually the case with callPackage.) Eelco Dolstra 2010-08-02 11:54:44 +0000
  • 532d766c27 * Don't barf if the source NAR for a patch has disappeared. Eelco Dolstra 2010-07-21 11:30:23 +0000
  • 7e043d28a6 src/bsdiff-4.3/Makefile.am: include the 'compat-include' directory in distribution tarballs Peter Simons 2010-07-15 14:35:20 +0000
  • 60b632b173 tests/build-hook.hook.sh: prefer more portable ... syntax over $(...) for running sub-shells Peter Simons 2010-06-25 14:05:37 +0000
  • a0d29040f7 Revert "configure.ac: make flex and bison required programs" Peter Simons 2010-06-24 22:22:24 +0000
  • af09fe12dd Fix build of bsdiff-4.3 on machines that don't have <err.h>, such as Solaris. Peter Simons 2010-06-24 17:51:31 +0000
  • d63375d529 configure.ac: Incredibly enough, tr(1) on Solaris doesn't understand A-Z syntax for ranges. Peter Simons 2010-06-24 17:51:24 +0000
  • 4c21c016c5 configure.ac: make flex and bison required programs Peter Simons 2010-06-24 17:51:19 +0000
  • bcec46057c src/libutil/util.cc: include <limit.h> to ensure that PATH_MAX is defined Peter Simons 2010-06-24 17:51:13 +0000
  • a17071fef1 Include <cstring> to ensure that strcpy(), strlen(), and memset() are declared. Peter Simons 2010-06-24 17:51:04 +0000
  • 560ab22f7d * Ignore packages that don't have a version. * Work on a manifest instead of a channel directory. Eelco Dolstra 2010-06-23 21:11:33 +0000
  • 8b7f8b56f1 Added support for passing an (impure) NIX_BUILD_CORES variable to build expressions. Peter Simons 2010-06-23 14:34:08 +0000
  • 87ef5907e9 * Sync. Eelco Dolstra 2010-06-22 14:42:34 +0000
  • 819548d92f * Pass `--fallback' to the remote build to ignore failing substituters. Eelco Dolstra 2010-06-22 14:41:22 +0000
  • 3e5e0faf9c * Okay, putting a lock on the temporary directory used by importPath() doesn't work because the garbage collector doesn't actually look at locks. So r22253 was stupid. Use addTempRoot() instead. Also, locking the temporary directory in exportPath() was silly because it isn't even in the store. Eelco Dolstra 2010-06-21 11:08:09 +0000
  • bf87cc44b4 * Sync with the trunk. Eelco Dolstra 2010-06-21 07:55:38 +0000
  • b57189174f * In importPath() and exportPath(), lock the temporary directory to prevent it from being deleted by the garbage collector. Eelco Dolstra 2010-06-14 08:34:48 +0000
  • f16fe2af8d * builtins.toXML: propagate the string context. This is a regression from the old ATerm-based evaluator. Eelco Dolstra 2010-06-10 10:29:50 +0000
  • d1f6c0cbe3 * Replacing ValidPath rows doesn't work because it causes a constraint violation of the Refs table. So don't do that. Eelco Dolstra 2010-06-08 13:38:28 +0000
  • 07ca66cf24 * Applied a patch from David Brown to prevent `nix-store --optimise' from failing on rename() on BtrFS. Eelco Dolstra 2010-06-04 13:56:11 +0000
  • 1ab67cf437 Eelco Dolstra 2010-06-02 09:43:04 +0000
  • 89865da76d * Turn build errors during evaluation into EvalErrors. Eelco Dolstra 2010-06-01 11:19:32 +0000
  • a443c7573b * Hack to allow derivations to disable chroot builds by setting the attribute "__noChroot = true" (requested by Rob). Eelco Dolstra 2010-06-01 10:01:14 +0000
  • 8bcdd36f10 Add XML output to `nix-store'. Ludovic Courtès 2010-05-31 16:36:24 +0000
  • da52f8bea0 Comment out dead code in `nix-store'. Ludovic Courtès 2010-05-31 16:36:20 +0000
  • 7343e6c8ae * Remove an accidentally committed debug statement. Eelco Dolstra 2010-05-30 20:29:56 +0000
  • b92a2e5cc2 * Sync with the trunk. Eelco Dolstra 2010-05-20 12:36:03 +0000
  • 93cd5a4a13 * The << operator on values should be const. Eelco Dolstra 2010-05-18 10:36:37 +0000
  • 32539e41d5 * Sync with trunk. Eelco Dolstra 2010-05-16 17:16:00 +0000
  • b2235d81d1 * Restore the __overrides feature that was lost somewhere in the fast-eval branch. Eelco Dolstra 2010-05-15 08:10:12 +0000
  • aa45027818 * Sync with the trunk. Eelco Dolstra 2010-05-12 22:13:09 +0000
  • 8032f26ca0 * Merged the `fast-eval' branch. Eelco Dolstra 2010-05-12 13:59:36 +0000
  • bd25ac2260 * Print attributes in sorted order. Eelco Dolstra 2010-05-12 12:15:49 +0000
  • 81a4b4e49b * Implemented tryEval, the last missing primop in the fast-eval branch. Also added a test for tryEval. Eelco Dolstra 2010-05-12 11:23:44 +0000
  • 1a8eb6e3ec Eelco Dolstra 2010-05-07 15:26:33 +0000
  • 83dfa89870 * Sync with the trunk. Eelco Dolstra 2010-05-07 14:46:47 +0000
  • 01e58adce0 * Store position info for inherited attributes. Eelco Dolstra 2010-05-07 12:43:57 +0000