Commit graph

  • e374dbf89b * A script `nix-prefetch-url' to fetch a URL, place it in the Nix store, and print its hash. Eelco Dolstra 2003-08-15 10:13:41 +0000
  • 01e30360d4 * Don't use a temporary file. Eelco Dolstra 2003-08-15 09:39:33 +0000
  • 163db7367f * Fix can now read expressions from stdin (by saying `fix -'). Eelco Dolstra 2003-08-15 09:21:19 +0000
  • 161aab582b * Use a catalog when calling xsltproc. Eelco Dolstra 2003-08-14 18:24:40 +0000
  • a24cb19361 * Use xmllint instead of nsgmls to validate the manual. Eelco Dolstra 2003-08-14 18:17:02 +0000
  • 9ee3b7a37a * Function application test cases. Eelco Dolstra 2003-08-14 12:37:50 +0000
  • dc0ef2ca98 * Detect infinite loops using blackholing. Eelco Dolstra 2003-08-14 12:37:31 +0000
  • 2e16ff22ac * Fix man page. Eelco Dolstra 2003-08-14 11:27:02 +0000
  • 5cde23f869 * Function() takes a list of formals. Eelco Dolstra 2003-08-14 09:49:31 +0000
  • 0a2de7f543 * Lam -> Function. Doh! Eelco Dolstra 2003-08-14 09:29:07 +0000
  • 95b49f8044 * Manual updates. Eelco Dolstra 2003-08-13 15:17:57 +0000
  • 68022552d2 * Put the pre-built manual and man pages in the tar distribution. Eelco Dolstra 2003-08-13 15:17:36 +0000
  • c34a153ae5 * Documented the `--query' operation. Eelco Dolstra 2003-08-13 10:45:01 +0000
  • b4f88d0ec3 * Split the book.xml into several xml files. Eelco Dolstra 2003-08-13 09:13:52 +0000
  • 469f1eba56 * Documented some Nix operations. Eelco Dolstra 2003-08-12 15:06:49 +0000
  • e405ca506e * Generate man pages from the manual. Eelco Dolstra 2003-08-12 13:54:42 +0000
  • c602930e08 * deletePath(): some operating systems (e.g., Mac OS X) don't like it when we delete entries from a directory while we are reading it. So read the directory into memory, then delete its contents. Eelco Dolstra 2003-08-08 14:55:56 +0000
  • 4b7b0bd12c * Started on the introduction. Eelco Dolstra 2003-08-07 15:27:14 +0000
  • 74867e72f2 * Start of manual; installation instructions. Eelco Dolstra 2003-08-07 14:17:18 +0000
  • f8035d06f2 * Allow a name to be given to a system configuration through --name NAME'. E.g., on the losser Subversion server, I do nix-switch --name svn $(fix ...)' to atomically upgrade the server (the SVN server uses the Apache and Subversion installations in /nix/var/nix/links/svn). Eelco Dolstra 2003-08-06 14:48:29 +0000
  • 9ad39df282 * `==' is not a valid operator. Eelco Dolstra 2003-08-06 10:00:30 +0000
  • d551062ec4 * Scan for wget and use the full path in fetchurl.sh. * Use nix-hash (not md5sum) in fetchurl.sh. Eelco Dolstra 2003-08-06 09:35:05 +0000
  • 236eb59293 * Allow locks on paths to be acquired recursively (that is, if the process is already holding a lock on a path, it may acquire the lock again without blocking or failing). (This might be dangerous, not sure). Necessary for fast builds to work. Eelco Dolstra 2003-08-06 09:34:04 +0000
  • 720f06e3b0 * A flag --flat' to just compute the MD5 checksum of the contents of a regular file. I.e., nix-hash --flat' is equivalent to the coreutils `md5sum' command (which doesn't exist on all systems). Eelco Dolstra 2003-08-06 09:06:32 +0000
  • 37483672d4 * App -> Call. * Allow booleans in package environment bindings (True maps to "1", False maps to ""). Eelco Dolstra 2003-08-06 09:05:04 +0000
  • d34b4d4f28 * Conditionals. Eelco Dolstra 2003-08-05 13:05:30 +0000
  • b9c9b461ea * Made nix-push much faster. Eelco Dolstra 2003-08-05 12:30:06 +0000
  • 4ce652640b * Cache result of fstatePaths(). TODO: do this in fstore.cc. Eelco Dolstra 2003-08-05 12:29:47 +0000
  • fd30f52cfc * Made nix-pull much faster by performing all Fix instantiations at the same time. Eelco Dolstra 2003-08-05 11:14:24 +0000
  • 17f05dba77 * Allow the top-level expression to be a list of expressions that normalise to Nix expression. Eelco Dolstra 2003-08-05 11:13:38 +0000
  • d6b6b2d3a8 * Delete obstructed paths prior to building. Eelco Dolstra 2003-08-05 09:47:20 +0000
  • d2e963f7a3 * Path locking in addToStore() and expandPath(). Eelco Dolstra 2003-08-04 07:09:36 +0000
  • c95b4ad290 * In normaliseFState(), wrap registration of the output paths and the normal form in a single transaction to ensure that if we crash, either everything is registered or nothing is. This is for recoverability: unregistered paths in the store can be deleted arbitrarily, while registered paths can only be deleted by running the garbage collector. Eelco Dolstra 2003-08-01 15:41:47 +0000
  • d99d04e644 * Defensive programming against POSIX locking idiocy. * Simplified realiseSlice(). Eelco Dolstra 2003-08-01 15:06:23 +0000
  • 545145cd58 * normaliseFState() now locks all output paths prior to building, thus ensuring that simultaneous invocations of Nix don't clobber each other's builds. Eelco Dolstra 2003-08-01 14:11:19 +0000
  • 9df93f30bd * Don't use substitutes in addToStore(). Eelco Dolstra 2003-08-01 09:01:51 +0000
  • 06434072e7 * Put the database verifier in a transaction. Eelco Dolstra 2003-07-31 19:49:11 +0000
  • 06d3d7355d * Enclose most operations that update the database in transactions. Eelco Dolstra 2003-07-31 16:05:35 +0000
  • 177a7782ae * Use a more reasonable log file size (256 KB instead of 10 MB). * Checkpoint on exit. Eelco Dolstra 2003-07-31 14:28:49 +0000
  • 4a013962bd * Started using Berkeley DB environments. This is necessary for transaction support (but we don't actually use transactions yet). Eelco Dolstra 2003-07-31 13:47:13 +0000
  • 758bd4673a * Set execute bit. Eelco Dolstra 2003-07-31 13:13:27 +0000
  • 9f4c19276d * Basic makefile. Eelco Dolstra 2003-07-31 13:13:13 +0000
  • 26ff1cdf89 * A better test case for Nix race conditions. Eelco Dolstra 2003-07-30 14:40:46 +0000
  • 64c617e984 * Directories for the manual. Eelco Dolstra 2003-07-30 14:40:18 +0000
  • 2ac02440dc * Test cases for races. Eelco Dolstra 2003-07-30 13:35:46 +0000
  • aaee69cfde * INSTALL_DATA -> INSTALL_PROGRAM to ensure that the execute bit remains set. Eelco Dolstra 2003-07-30 10:14:58 +0000
  • 83075304e5 * Don't make the builder executable. Eelco Dolstra 2003-07-30 09:49:47 +0000
  • 1cb030736e * Bug: Fix does not allow empty names, so don't generate them. Eelco Dolstra 2003-07-29 17:56:39 +0000
  • a01629894d * Use --query --requisites' and include successors when pushing. Don't use --query --generators' anymore. Eelco Dolstra 2003-07-29 15:19:03 +0000
  • 40f32ae00a * Typo: if -> elsif. Eelco Dolstra 2003-07-29 14:42:14 +0000
  • 8846465934 * Get garbage collection and cache population to work *properly*. Renamed fstateRefs' to fstateRequisites'. The semantics of this function is that it returns a list of all paths necessary to realise a given expression. For a derive expression, this is the union of requisites of the inputs; for a slice expression, it is the path of each element in the slice. Also included are the paths of the expressions themselves. Optionally, one can also include the requisites of successor expressions (to recycle intermediate results). Eelco Dolstra 2003-07-29 14:28:17 +0000
  • dc14a3de46 * Nicer dot graphs. Eelco Dolstra 2003-07-29 10:53:27 +0000
  • 79ba0431db * fstateRefs' now works on derive expressions as well. TODO: make this more efficient. * A flag -n' in 'nix --query' to normalise the argument. Default is not to normalise. Eelco Dolstra 2003-07-29 10:43:12 +0000
  • 5acb45446e * Let `nix --install' print out the id of the normal form. * Some minor refactoring. Eelco Dolstra 2003-07-29 09:45:03 +0000
  • ce5fd1cc12 * Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another glibc so loading barfs. Eelco Dolstra 2003-07-28 16:07:01 +0000
  • dec8fbc52b * Check for the pthread library (db4 needs it on some platforms). Eelco Dolstra 2003-07-28 14:13:42 +0000
  • 949c4fa1a8 * nix --help'. * nix --query --graph' to print a dot dependency graph of derive expressions. Eelco Dolstra 2003-07-28 12:19:23 +0000
  • f21b341957 * Fix message. Eelco Dolstra 2003-07-24 15:03:36 +0000
  • 5d7a20dac3 * Prevent spurious rebuilds of db/aterm. Eelco Dolstra 2003-07-24 14:31:39 +0000
  • 0a0c1fcb4d * The -v' flag no longer takes an argument; it should be repeated instead (e.g., -vvvv' for lots of output). Default is to only print error messages. Eelco Dolstra 2003-07-24 13:43:16 +0000
  • 3b521bb1bd * Do sync the database, since not doing so caused database changes not to reach the disk at all. Looks like a bug. Eelco Dolstra 2003-07-24 13:35:17 +0000
  • 1a7468a57a * Debug levels. Use `--verbose / -v LEVEL' to display only messages up to the given verbosity levels. These currently are: Eelco Dolstra 2003-07-24 08:53:43 +0000
  • b75719b984 * Don't sync the database on close. This was killing performance. (Of course, the real problem is that we open the database for *every* operation; we should only open it once. And we should use transactions.) Eelco Dolstra 2003-07-24 08:24:32 +0000
  • 39ce70025b * Incorporated Berkeley DB and ATerm into the source tree. * `make dist'. Eelco Dolstra 2003-07-23 15:53:34 +0000
  • 9202570f8c * libdb_cxx-4 -> libdb_cxx Eelco Dolstra 2003-07-22 20:02:33 +0000
  • e877c69d78 * Substitutes now should produce a path with the same id as they are substituting for (obvious, really). Eelco Dolstra 2003-07-22 15:15:15 +0000
  • df648c4967 * nix --query --expansion' (-qe') to get any path with content corresponding to the given id. Eelco Dolstra 2003-07-22 10:24:22 +0000
  • d84931ee56 * Changed nix-pull to match nix-push. Eelco Dolstra 2003-07-21 22:05:19 +0000
  • c7bdb76fe4 * Syntax fixes. * When pushing, put the hash in the file name so that the client can verify (proof-carrying file names?). Eelco Dolstra 2003-07-21 21:34:56 +0000
  • d5ee6f8700 * In `--query --generators', print out paths, not ids. (There should really be a switch for this). Eelco Dolstra 2003-07-21 21:31:03 +0000
  • 2616e6a6f3 * Check for errors. Eelco Dolstra 2003-07-21 20:58:34 +0000
  • 9f4ad99e92 * Canonicalise path. Eelco Dolstra 2003-07-21 20:58:21 +0000
  • 249988a787 * Allow the output/expression id to be forced to a certain value; this potentially dangerous feature enables better sharing for those paths for which the content is known in advance (e.g., because a content hash is given). * Fast builds: if we can expand all output paths of a derive expression, we don't have to build. Eelco Dolstra 2003-07-21 20:07:12 +0000
  • 49231fbe41 * Changes to the command line syntax of Nix. * A function to find all Nix expressions whose output ids are completely contained in some set. Useful for uploading relevant Nix expressions to a shared cache. Eelco Dolstra 2003-07-21 14:46:01 +0000
  • 401452e57a * Memoize the evaluation of Fix expressions to speed up computation. Eelco Dolstra 2003-07-21 08:55:49 +0000
  • 7984cfc7c1 * Argh, another short-write problem. Added wrappers around read()/write() to fix this once and for all. Eelco Dolstra 2003-07-20 21:11:43 +0000
  • 667a6afb9d * Remove accidentally added file. Eelco Dolstra 2003-07-20 19:30:53 +0000
  • 6f1a0f948d * Refactorings. Eelco Dolstra 2003-07-20 19:29:38 +0000
  • ab350eafd2 * Generate nar.sh, fetchurl.sh. Eelco Dolstra 2003-07-18 07:42:57 +0000
  • b3fc38bf6a * For debugging: `nix --verify' to check the consistency of the database and store. Eelco Dolstra 2003-07-17 12:27:55 +0000
  • 71cc3ceae5 * Preserve the executable bit. Eelco Dolstra 2003-07-17 11:25:14 +0000
  • 54664b6fb7 * The write() system call can write less than the requested number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix --dump' to fail sometimes. Eelco Dolstra 2003-07-16 21:24:02 +0000
  • 335aa1c35d * Doh! Eelco Dolstra 2003-07-16 20:49:59 +0000
  • 6822fd7bf4 * Bug fix: slices are transitive, so if we detect that an input path is referenced in an output paths, we also have to add all ids referenced by that input path. * Better debug assertions to catch these sorts of errors. Eelco Dolstra 2003-07-16 20:33:29 +0000
  • 9d56ca219f * Substitute fixes. Eelco Dolstra 2003-07-16 20:00:51 +0000
  • b9ecadee6e * Fix the -qr query. Eelco Dolstra 2003-07-16 11:05:59 +0000
  • c11bbcfd26 * Fix self-referential outputs. * Fix -qp query. Eelco Dolstra 2003-07-16 08:30:26 +0000
  • d41d085b77 * Get Fix and Nix to work again. Eelco Dolstra 2003-07-15 22:28:27 +0000
  • 7b3f44e05b * The new normaliser now passes the unit tests. Eelco Dolstra 2003-07-15 21:24:05 +0000
  • f5b6fa5256 * Basic work on allowing derive expressions to build multiple paths. This is not entirely trivial since this introduces the possibility of mutual recursion. * Made normal forms self-contained. * Use unique ids, not content hashes, for content referencing. Eelco Dolstra 2003-07-15 16:28:54 +0000
  • 8898e86b4f * Get the garbage collector to work again. Eelco Dolstra 2003-07-14 10:45:04 +0000
  • 3509299aca * After building, scan for actual file system references as opposed to declared references. This prunes the reference graph, thus allowing better garbage collection and more efficient derivate distribution. Eelco Dolstra 2003-07-14 10:23:11 +0000
  • 135b7d54db * Don't check for staleness by default. Eelco Dolstra 2003-07-13 21:43:57 +0000
  • e6363b05ae * Pass $(prefix) and other variables through -D..., not through config.h, to prevent silly Autoconf problems. Eelco Dolstra 2003-07-13 19:26:00 +0000
  • 9c620e4afa * Generate the scripts so that we can substitute the prefix etc. correctly. * Fixed nix-switch. Eelco Dolstra 2003-07-13 18:58:03 +0000
  • 5304a1eb3a * Fetchurl: check md5 checksum. Eelco Dolstra 2003-07-12 11:03:14 +0000
  • 73b163c1a1 * Fix a bug that caused Fix not to be deterministic (due to addToStore returning different paths if the hash of the path to be added was already available in the store under a different name). Eelco Dolstra 2003-07-11 08:41:03 +0000
  • c834a5c597 * Fix handling of pipes (read(2) may not return the required number of bytes in one call). Eelco Dolstra 2003-07-11 08:16:15 +0000
  • 822c072cfa * Compress Nix archives when pushing them. Eelco Dolstra 2003-07-10 20:34:29 +0000
  • 9bcc31c941 * Working derivate sharing. Eelco Dolstra 2003-07-10 20:13:32 +0000