Commit graph

  • 0b70231b9d * Refactoring. Eelco Dolstra 2004-06-15 13:49:42 +0000
  • 1bc6afefac * Cleanup. Eelco Dolstra 2004-06-08 13:21:03 +0000
  • e8411948ff * A Nix mode for Emacs. Eelco Dolstra 2004-06-04 14:31:57 +0000
  • 5e4a2272bf * Drain the output of the build hook to show error messages. Ugly hack. Eelco Dolstra 2004-05-18 14:52:35 +0000
  • 19479899fb * Don't set the rpath here --- it's not portable. Eelco Dolstra 2004-05-18 12:57:26 +0000
  • 1d08093b48 * Go back to the old way of generating the system name, and allow it to be specified in configure (using `--with-system=SYSTEM'). Eelco Dolstra 2004-05-18 09:45:46 +0000
  • 8e9fd57ef9 * setpgrp() is not POSIX (and on Mac OS X it's different than on Linux), so use setpgid(). Eelco Dolstra 2004-05-18 09:45:18 +0000
  • ace8872706 * execl() requires a terminating 0. * When a fast build wakes up a goal, try to start that goal in the same iteration of the startBuild() loop of run(). Otherwise no job might be started until the next job terminates. Eelco Dolstra 2004-05-14 12:24:29 +0000
  • 4fc00cbec1 * Distributed builds and load balancing now seem to work pretty well. (Though the `build-remote.pl' script has a gigantic race condition). Eelco Dolstra 2004-05-13 22:52:37 +0000
  • 2fa3304933 * Set the executable bit. Eelco Dolstra 2004-05-13 20:28:20 +0000
  • 25db622454 * Load balancing. `build-remote.pl' will only execute up to a per-machine maximum number of parallel jobs on a remote machine. Eelco Dolstra 2004-05-13 19:35:46 +0000
  • 3426d19547 * Perform all tests. Eelco Dolstra 2004-05-13 19:16:48 +0000
  • a8306cb98f * The build hooks used to implement distributed builds can now be run in parallel. Hooks are more efficient: locks on output paths are only acquired when the hook says that it is willing to accept a build job. Hooks now work in two phases. First, they should first tell Nix whether they are willing to accept a job. Nix guarantuees that no two hooks will ever be in the first phase at the same time (this simplifies the implementation of hooks, since they don't have to perform locking (?)). Second, if they accept a job, they are then responsible for building it (on the remote system), and copying the result back. These can be run in parallel with other hooks and locally executed jobs. Eelco Dolstra 2004-05-13 19:14:49 +0000
  • 5087c8f645 * Use `-j0'. Eelco Dolstra 2004-05-12 14:30:57 +0000
  • efa5fa1a91 * A switch `-j NUMBER' to set the maximum number of parallel jobs (0 = no limit). * Add missing file to distribution. Eelco Dolstra 2004-05-12 14:20:32 +0000
  • 1f48aa0be7 * Broken test. Eelco Dolstra 2004-05-12 13:49:10 +0000
  • aa5a5084e4 * Pass to the build hook all sorts of information useful for distributing a build action to another machine. In particular, the paths in the input closures, the output paths, and successor mapping for sub-derivations. Eelco Dolstra 2004-05-12 13:32:26 +0000
  • 8c0b42f857 * An quick and dirty hack to support distributed builds. Eelco Dolstra 2004-05-12 09:35:51 +0000
  • c8d3882cdc * True parallel builds. Nix can now run as many build jobs in parallel as possible (similar to GNU Make's `-j' switch). This is useful on SMP systems, but it is especially useful for doing builds on multiple machines. The idea is that a large derivation is initiated on one master machine, which then distributes sub-derivations to any number of slave machines. This should not happen synchronously or in lock-step, so the master must be capable of dealing with multiple parallel build jobs. We now have the infrastructure to support this. Eelco Dolstra 2004-05-11 18:05:44 +0000
  • aea436503e * Ignore interrupt signals while handling an exception. * Ignore EINTR in reads and writes. Eelco Dolstra 2004-05-11 13:48:25 +0000
  • a9858c9f26 * A test to verify that Nix executes build jobs in parallel, if possible. Eelco Dolstra 2004-05-04 17:04:17 +0000
  • f044ccf702 * 1000th revision! * A test to verify that locking of output paths (caused by concurrent invocations of Nix) works correctly. Eelco Dolstra 2004-05-04 13:56:30 +0000
  • a7bbe73971 * Another test. Eelco Dolstra 2004-05-04 13:22:33 +0000
  • ef093aac8f * Grrr. TESTS are not included in EXTRA_DIST. Eelco Dolstra 2004-05-04 12:45:04 +0000
  • 256eeab711 * Allow the location of the store etc. to be specified using environment variables. * Started adding some automatic tests. * Do a `make check' when building RPMs. Eelco Dolstra 2004-05-04 12:15:30 +0000
  • fd927c5d25 * Bump the version number. Eelco Dolstra 2004-04-26 13:44:26 +0000
  • 22371cbd3f * Fixed URL. Eelco Dolstra 2004-04-26 09:54:37 +0000
  • bcce9c1ff5 * Only add `-preRELEASE' to the version if STABLE != 1. * Documented release procedures. Eelco Dolstra 2004-04-26 09:52:06 +0000
  • d4779abc04 * Pass SYSTEM through config.h, and allow spaces. Eelco Dolstra 2004-04-23 15:16:08 +0000
  • 759c953196 * Look for GC roots in @localstatedir@/nix/gcroots. Eelco Dolstra 2004-04-22 14:17:57 +0000
  • d7238bc84e * Don't create $(localstatedir)/nix/profiles if --disable-init-state is specified. Eelco Dolstra 2004-04-22 07:47:41 +0000
  • b6df68c942 * Dist error. Eelco Dolstra 2004-04-21 14:57:46 +0000
  • 21655a70f5 * Channels. These allow you to stay current with an evolving set of Nix expressions. Eelco Dolstra 2004-04-21 14:54:05 +0000
  • f79e9c2d22 * Do initialise state (the DB etc.) when doing a make install', unless --disable-init-state' is passed to configure. Eelco Dolstra 2004-04-21 10:54:46 +0000
  • 8e459d919d * Recurse into attribute sets and lists when getting derivations from an expression. Eelco Dolstra 2004-04-21 09:37:37 +0000
  • 7cce0c34e1 * Allow extra parameters to be passed to Curl through the CURL_FLAGS' environment variable. This is useful for passing authentication information (it won't show up in ps'). Hacky - nix-push should abstract over the use of Curl. Eelco Dolstra 2004-04-15 15:14:16 +0000
  • 2c5a8bf49f * Use @storedir@, not @prefix@/store. Eelco Dolstra 2004-04-14 10:45:11 +0000
  • b275f2ed3b * `*.gcroot' files can now containing multiple roots. Eelco Dolstra 2004-04-14 08:09:27 +0000
  • a4d2b22c8c * Be stricter in verifying store paths. Eelco Dolstra 2004-04-14 08:08:55 +0000
  • 87bf541f23 * Documented the primops. Eelco Dolstra 2004-04-08 15:51:26 +0000
  • b0c9baf1b5 * EBNF grammar for the Nix expression language. Eelco Dolstra 2004-04-08 13:31:57 +0000
  • 153429520a * Distributed the wrong file. Eelco Dolstra 2004-04-06 15:55:27 +0000
  • 2be8ac48bb * Make the creation of user environments much faster and more storage efficient by creating only a single symlink to entire directory trees unless a collission occurs. Eelco Dolstra 2004-04-06 11:42:28 +0000
  • bf3863b546 * Fail if prerequisites are missing. Eelco Dolstra 2004-04-06 08:40:19 +0000
  • 03f1d1ecb5 * Switched from wget to curl. * Made the dependencies on bzip2 and the shell explicit. Eelco Dolstra 2004-04-06 08:18:51 +0000
  • 59b94ee18a * When something goes wrong in the evaluation of a Nix expression, print a nice backtrace of the stack, rather than vomiting a gigantic (and useless) aterm on the screen. Example: Eelco Dolstra 2004-04-05 22:27:41 +0000
  • a520b1cbc3 * Print a more useful error message in case of an invalid derivation binding. Eelco Dolstra 2004-04-02 10:49:37 +0000
  • c4ac2a164a * The recent change in nixpkgs of calling stdenv.mkDerivation' instead of derivation' triggered a huge slowdown in the Nix expression evaluator. Total execution time of `nix-env -qa' went up by a factor of 60 or so. Eelco Dolstra 2004-03-30 15:05:35 +0000
  • df101d6fca * Specify Perl as a dependency for the RPM. Eelco Dolstra 2004-03-29 12:10:15 +0000
  • ac4d39f9db * Added an operator ?' to test for attribute existence, e.g., attrs ? x' yields true iff attrs' has an attribute named x'. Eelco Dolstra 2004-03-28 21:15:01 +0000
  • f958bcdf1f * Added an operator `~' to select paths within a derivation. E.g., Eelco Dolstra 2004-03-28 20:58:28 +0000
  • db3e644c1c * Added plain lambdas, e.g., let { id = x: x; const = x: y: x; }'. bla:' is now no longer parsed as a URL. Eelco Dolstra 2004-03-28 20:34:22 +0000
  • f8cd904e05 * Disallow the Nix store or any of its parents from being symlinks. This is because the contents of these symlinks are not incorporated into the hashes of derivations, and could therefore cause a mismatch between the build system and the target system. E.g., if /nix/store' is a symlink to /data/nix/store', then a builder could expand this path and store the result. If on the target system `/nix/store' is not a symlink, or is a symlink that points somewhere else, we have a dangling pointer. Eelco Dolstra 2004-03-27 17:58:04 +0000
  • f0f7a9f299 * Do not close a nesting level twice after close() has been called explicitly on a Nest object. Eelco Dolstra 2004-03-27 15:33:19 +0000
  • 7823db2137 * Some more nesting. Eelco Dolstra 2004-03-22 21:42:28 +0000
  • 777e13b94b * Nix now has three different formats for the log information it writes to stderr: Eelco Dolstra 2004-03-22 20:53:49 +0000
  • 79bb0008ec * `null' is a normal form. Eelco Dolstra 2004-03-19 14:45:45 +0000
  • e6253b58cd * Escape codes to force line breaks to be ignored. Eelco Dolstra 2004-03-18 21:32:15 +0000
  • 3f3c4cce5a * Added an extra escape code to signal "unimportant" messages. If a tree only has unimportant messages, it is collapsed by the default. * Also added an optional integer argument to the escape code for opening a nesting level to indicate lack of importance. If set, the tree is collapsed by default. Eelco Dolstra 2004-03-18 21:04:14 +0000
  • 84c617966b * Collapsable trees. Eelco Dolstra 2004-03-18 18:26:22 +0000
  • c2fc2c13c9 * Use unordered lists, which is more sensible semantically for representing tree structures. Eelco Dolstra 2004-03-18 14:58:16 +0000
  • a784fd5792 * Don't use tables. Konqueror likes this much better. Eelco Dolstra 2004-03-18 13:04:05 +0000
  • 8ce3dd4887 * Display the popup directly over the abbreviation. Eelco Dolstra 2004-03-17 16:55:53 +0000
  • 8330c8202a * A simpler way of implementing the store reference popups, thanks to Martin and CSS guru Martijn Vermaat. Eelco Dolstra 2004-03-17 16:52:48 +0000
  • b5539e7a30 * Store paths are now abbreviated in the generated HTML file. Hovering over the abbreviated path will reveal the full path. This probably only works in Mozilla. Eelco Dolstra 2004-03-16 12:47:09 +0000
  • 9d2669d218 * Added a utility that can be used to produce nice HTML pages from Nix build logs. The program log2xml' converts a Nix build log (read from standard input) into XML file that can then be converted to XHTML by the log2html.xsl' stylesheet. The CSS stylesheet `logfile.css' is necessary to make it look good. Eelco Dolstra 2004-03-15 21:51:14 +0000
  • beda10f5a2 * Make perl a dependency of Nix. Eelco Dolstra 2004-03-15 15:23:53 +0000
  • a5619f1dff * Set the NIX_STORE and NIX_BUILD_TOP environment variables in builders to point to the store and the temporary build directory, respectively. Useful for purity checking. * Also set TEMPDIR, TMPDIR, TEMP, and TEMP to NIX_BUILD_TOP to make sure that tools in the builder store temporary files in the right location. Eelco Dolstra 2004-03-12 10:45:08 +0000
  • 7f0ed370da * Use $(storedir) instead of $(prefix)/store. Eelco Dolstra 2004-02-20 11:32:30 +0000
  • dbf547645d * Resolve an ambiguity between ifs and attribute selection, e.g., `if b then x else y.z'. Eelco Dolstra 2004-02-19 13:11:12 +0000
  • 86b7efbdbe * Don't build ATerm library if we don't need to. Eelco Dolstra 2004-02-16 16:48:06 +0000
  • 0dfdafdf6d * Allow linking against an external Berkeley DB / ATerm library. Eelco Dolstra 2004-02-16 16:37:16 +0000
  • f34de12140 * Allow the location of the store to be specified (--with-store-dir). * Do not create stuff in localstatedir when doing `make install' (since we may not have write access). In general, installation of constant code/data should be separate from the initialisation of mutable state. Eelco Dolstra 2004-02-16 15:23:19 +0000
  • fbc48a469c * Inherited attributes in recursive attribute sets are in scope of the non-inherited attributes. Eelco Dolstra 2004-02-16 09:18:35 +0000
  • 76c0e85929 * The environment variable NIX_ROOT can now be set to execute Nix in a chroot() environment. * A operation `--validpath' to register path validity. Useful for bootstrapping in a pure Nix environment. * Safety checks: ensure that files involved in store operations are in the store. Eelco Dolstra 2004-02-14 21:44:18 +0000
  • 6f5a5ea5ea * Regression fix: realise substitutes and detect cycles. Eelco Dolstra 2004-02-13 10:45:09 +0000
  • 1ad9d11247 * Only include predecessors that are themselves being pushed. Otherwise the substitute mechanism can break in subtle ways. Eelco Dolstra 2004-02-13 10:43:31 +0000
  • 00fe1a506f * When creating a new generation, also make the normal form of the derivation (i.e., the closure store expression) a root of the garbage collector. This ensures that running `nix-collect-garbage --no-successors' is safe. Eelco Dolstra 2004-02-11 10:25:31 +0000
  • 92e832348d * Lots of manual stuff. Reference pages for most Nix commands. * nix-pull now requires the full url to the manifest, i.e., `/MANIFEST/' is no longer automatically appended. * nix-prefetch-url works again. Eelco Dolstra 2004-02-10 16:14:47 +0000
  • 6551b36790 * Print what generation we are switching to; honour --dry-run flag. Eelco Dolstra 2004-02-10 13:42:58 +0000
  • 0616b7feea * Documented the most important nix-env flags. Eelco Dolstra 2004-02-10 11:51:16 +0000
  • 618aa69b01 * In --upgrade': added flags --lt', --leq', --always' to specify whether we want to upgrade if the current version is less than the available version (default), when it is less or equal, or always. Eelco Dolstra 2004-02-09 11:59:39 +0000
  • 06a75a7e0c * A command `--switch-generation' to switch to a specific generation of the current profile, e.g., Eelco Dolstra 2004-02-08 14:07:43 +0000
  • b8675aee54 * In `--list-generations', show what the current generation is. Eelco Dolstra 2004-02-06 16:16:55 +0000
  • 73ab2ed4fd * A command `--list-generations' to show all generations for a profile. Eelco Dolstra 2004-02-06 16:03:27 +0000
  • 7c0fa4474f * More refactoring. Eelco Dolstra 2004-02-06 14:57:10 +0000
  • 7abf9911d9 * Refactoring. Eelco Dolstra 2004-02-06 14:49:41 +0000
  • 49bafe1faf * Use the profile pointed to by ~/.nix-profile if no --profile argument is specified. Eelco Dolstra 2004-02-06 10:59:06 +0000
  • 66e94d3275 * Improvements to profiles. Generations are now per-profile, e.g., Eelco Dolstra 2004-02-06 10:30:20 +0000
  • d445da7a7b * Extended the `inherit' syntax to optionally select attributes from other attribute sets, rather than the current scope. E.g., Eelco Dolstra 2004-02-04 17:23:26 +0000
  • 9d25466b34 * An attribute set update operator (//). E.g., Eelco Dolstra 2004-02-04 16:49:51 +0000
  • 6d46e647ba * Fixed the old envpkgs filename. Eelco Dolstra 2004-02-04 16:20:51 +0000
  • 9b44480612 * Use a map to lookup primops. * Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.). Eelco Dolstra 2004-02-04 16:03:29 +0000
  • c4f7ae4aa5 * Verify that all variables in a Nix expression are defined. Eelco Dolstra 2004-02-03 14:45:34 +0000
  • 1c9c0a5a46 * Added syntactic sugar to the construction of attribute sets to `inherit' variables from the surrounding lexical scope. Eelco Dolstra 2004-02-02 21:39:33 +0000
  • d9f30fe7c7 * Sort nix-env -q' output by derivation name. * --version' flag for all commands. * Manual updates. Eelco Dolstra 2004-02-02 10:51:54 +0000
  • 47c003cb59 * Doh! Eelco Dolstra 2004-01-30 17:14:08 +0000
  • 619f20775d * Parser numbers again. * Include missing files in distributions. Eelco Dolstra 2004-01-30 17:06:03 +0000
  • c625718513 * Detect flex and bison; updated the manual. Eelco Dolstra 2004-01-30 16:32:14 +0000
  • c5baaafae6 * Replaced the SDF parser by a substantially faster Bison/Flex parser (roughly 80x faster). Eelco Dolstra 2004-01-30 15:21:42 +0000