Commit graph

  • c1a18f543e * Fixed format string error. Eelco Dolstra 2004-07-06 11:21:34 +0000
  • 056cd1d3b7 * Don't go into a (sometimes infinite) loop calling the build hook. Eelco Dolstra 2004-07-01 16:24:35 +0000
  • 638ce339a5 * Nix-instantiate now accepts sets of derivations (just like nix-env). Eelco Dolstra 2004-07-01 14:25:26 +0000
  • 292d6468ec * Nix-env operations now by default filter out any derivations for system types other than the current system. I.e., nix-env -i' won't install derivations for other system types, and nix-env -q' won't show them. The flag --system-filter SYSTEM' can be used to override the system type used for filtering (but not for building!). The value *' can be used not to filter anything. Eelco Dolstra 2004-07-01 13:56:56 +0000
  • 8f6254e823 * Align the columns in the output of `nix-env -q'. Eelco Dolstra 2004-07-01 13:35:10 +0000
  • 593bc23d8b * Allow the system attribute of derivations to be queried in nix-env -q'. * Queries can now be combined, e.g., nix-env -q --status --system'. Eelco Dolstra 2004-07-01 13:13:37 +0000
  • b584253af4 * Include some missing headers. Eelco Dolstra 2004-07-01 11:11:16 +0000
  • f5d5ffe536 * Write build logs to disk again. Eelco Dolstra 2004-06-29 09:41:50 +0000
  • 00aadf478b * Use ATerm 2.1. Eelco Dolstra 2004-06-28 14:51:42 +0000
  • 151e61fa5a * By default, nix-env -i' now deletes previously installed derivations with names matching the derivations being installed. The option --preserve-installed / -P' overrides this behaviour. Eelco Dolstra 2004-06-28 14:40:26 +0000
  • 4d2946c516 * In a realisation goal, check the result of the corresponding normalisation goal. Eelco Dolstra 2004-06-28 13:51:24 +0000
  • 24286e15c9 * `nix-env -u' now allows a specific version to be specified when upgrading. Eelco Dolstra 2004-06-28 13:37:05 +0000
  • 2746a879e2 * Typo. Eelco Dolstra 2004-06-28 12:07:07 +0000
  • 91dc023665 * Added a switch `--fallback'. From the manual: Eelco Dolstra 2004-06-28 10:42:57 +0000
  • b113edeab7 * A flag --keep-going / -k' to keep building goals if one fails, as much as possible. (This is similar to GNU Make's -k' flag.) Eelco Dolstra 2004-06-25 15:36:09 +0000
  • e4883211f9 * Don't throw an exception when a build fails. Just terminate the goal and allow the problem to be handled elsewhere (e.g., at top-level). Eelco Dolstra 2004-06-25 10:21:44 +0000
  • 795d9f8b08 * Obsolete. Eelco Dolstra 2004-06-24 14:36:50 +0000
  • a29c8ac51c * Add a test to check that when we cannot realise a closure expression, we should invalidate it and go back to the derivation for which it is a successor. Eelco Dolstra 2004-06-24 14:35:01 +0000
  • ec32627621 * Multiple and/or failing substitutes now work. Eelco Dolstra 2004-06-24 13:40:38 +0000
  • 8052aef486 * A test for multiple and/or failing substitutes. Eelco Dolstra 2004-06-24 12:56:24 +0000
  • 66c7f34759 * Arghhhhhh Eelco Dolstra 2004-06-22 17:07:32 +0000
  • 05a5362d63 * Some more diagnostics changes. Eelco Dolstra 2004-06-22 17:04:10 +0000
  • d051cd40e1 * Nix-instantiate can return multiple store expressions. Eelco Dolstra 2004-06-22 15:17:04 +0000
  • 3093af58a7 * A utility script `nix-build' that builds Nix expressions and prints their output paths (and only that) on standard output. Eelco Dolstra 2004-06-22 15:12:34 +0000
  • b302e5f63b * We don't really need this here. Eelco Dolstra 2004-06-22 15:06:43 +0000
  • 83ae1723da * Well, it's better than printf. Eelco Dolstra 2004-06-22 15:01:01 +0000
  • 72bc9a522f * Started making Nix's diagnostic messages a bit more useful. Eelco Dolstra 2004-06-22 14:48:59 +0000
  • 5e2cf44a4d * Put WEXITSTATUS stuff somewhere else. Eelco Dolstra 2004-06-22 11:03:41 +0000
  • 84007a0958 * Reduce gratuitous cut & pasting. Eelco Dolstra 2004-06-22 10:21:44 +0000
  • c9fbd2dfd5 * Wrapper class around pids. Eelco Dolstra 2004-06-22 09:51:44 +0000
  • 155d7c8dfa * Substitutes should occupy a build slot. Eelco Dolstra 2004-06-22 09:00:31 +0000
  • c4cb6ea2bc * Refactoring. Eelco Dolstra 2004-06-22 08:50:25 +0000
  • 88fb4f6e53 * Missing files added to `make dist'. Eelco Dolstra 2004-06-21 12:20:47 +0000
  • 2db9748221 * Remove debug output. Eelco Dolstra 2004-06-21 10:01:17 +0000
  • 37ee6cef99 * Adapted nix-pull to use the new substitute mechanism. Eelco Dolstra 2004-06-21 09:51:23 +0000
  • 3f3a3ae87b * Acquire a lock on the output path when running a substitute. Also delete obstructing invalid paths. Eelco Dolstra 2004-06-21 09:35:50 +0000
  • 72c857f0eb * Ugh, nasty Heisenbug due to an uninitialiased variable. The bug only caused a crash if the program was *not* invoked with a high verbosity level. Eelco Dolstra 2004-06-21 08:51:55 +0000
  • be1a917beb * Remove obstructing invalid store paths add[Text]ToStore(). Eelco Dolstra 2004-06-21 07:46:02 +0000
  • daf0a923c7 * Wrap calls to registerSubstitute() in a single transaction to improve throughput. * Don't build the `substitute-rev' table for now, since it caused Theta(N^2) time and log file consumption when adding N substitutes. Maybe we can do without it. Eelco Dolstra 2004-06-21 07:38:17 +0000
  • 15c60ca1b6 * Disable calls to fsync() since Berkeley DB's DB_TXN_WRITE_NOSYNC flag doesn't seem to work as advertised. Eelco Dolstra 2004-06-21 07:36:01 +0000
  • 112ee89501 * Re-enable support for substitutes in the normaliser. Eelco Dolstra 2004-06-20 19:17:54 +0000
  • bafb2357d1 * README for the Emacs mode (written a while ago, but forgot to commit). Eelco Dolstra 2004-06-20 19:08:59 +0000
  • 85ae781765 * Refactoring. Eelco Dolstra 2004-06-20 13:37:51 +0000
  • 23bb902d1f * Re-enable build hooks. Eelco Dolstra 2004-06-19 21:45:04 +0000
  • 41ec982f31 * Big refactoring. Move to a much more explicitly state machine based approach. This makes it much easier to add extra complexity in the normaliser / realiser (e.g., build hooks, substitutes). Eelco Dolstra 2004-06-18 18:09:32 +0000
  • 3454c685ee * This is also useful. Eelco Dolstra 2004-06-18 16:52:31 +0000
  • 6ba26f27c3 * Shared (garbage collecting) pointers. Copied from Boost. Eelco Dolstra 2004-06-18 09:20:51 +0000
  • 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