Commit graph

  • 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
  • 81304a6bb5 * Convert tabs to spaces. Eelco Dolstra 2003-07-10 19:27:46 +0000
  • e5fbf58041 * A command to register successor fstate expressions. Eelco Dolstra 2003-07-10 18:48:11 +0000
  • 8511571f65 * Performance enhancement. Eelco Dolstra 2003-07-10 15:24:50 +0000
  • 1d1c3691d2 * The policy-free derivate sharing now *almost* works. :-) For any hash for which no local expansion is available, Nix can execute a `substitute' which should produce a path with such a hash. Eelco Dolstra 2003-07-10 15:11:48 +0000
  • d072485d28 * Get `nix-push' working again. It now uses Nix/Fix to create Nix archives (using the package in corepkgs/nar). * queryPathByHash -> expandHash, and it takes an argument specifying the target path (which may be empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap Nix and install Nix as a Fix package. Eelco Dolstra 2003-07-10 13:41:28 +0000
  • 5d4b90b689 * Actually go through the search directories when looking for files. Eelco Dolstra 2003-07-10 09:21:40 +0000
  • 089b436175 * Deleted the sys directory. Eelco Dolstra 2003-07-10 09:12:52 +0000
  • b96239c657 * Moved the fetchutl package to corepkgs. Eelco Dolstra 2003-07-10 09:11:30 +0000
  • 9ebd78144a * Added a directory for standard Fix descriptors. Eelco Dolstra 2003-07-10 09:09:48 +0000
  • 6011bd0da2 * Outline of the new scheme for derivate distribution. Eelco Dolstra 2003-07-09 16:12:40 +0000
  • 2b95a9dc05 * When computing the set of paths referenced by an expression, also include the paths of the subterms. Eelco Dolstra 2003-07-09 15:02:03 +0000
  • 9a99dc736d * Canonicalise paths so that Fix produces identical Nix expressions for identical inputs. Eelco Dolstra 2003-07-08 20:26:22 +0000
  • cab3f4977a * A path canonicaliser that doesn't depend on the existence of paths (i.e., it doesn't use realpath(3), which is broken in any case). Therefore it doesn't resolve symlinks. Eelco Dolstra 2003-07-08 19:58:41 +0000
  • 333f4963de * The output of a Derive() node is not a referenced path. Eelco Dolstra 2003-07-08 15:33:06 +0000
  • 40274c1f4f * A command to query the paths referenced by an fstate expression. * Use a temporary directory for build actions. Eelco Dolstra 2003-07-08 13:22:08 +0000
  • a279137327 * Get --dump' and --delete' to work again. Eelco Dolstra 2003-07-08 10:00:46 +0000
  • 85a913a3e7 * Renamed id' -> name' to remove the implication of uniqueness. Eelco Dolstra 2003-07-08 09:59:00 +0000
  • 0b38b43bab * deletePath() now removes the path from the hash2paths mapping. Eelco Dolstra 2003-07-08 09:54:47 +0000
  • ab644ad10b * BaseName() primitive for the generation of more sensible names (especially in fetchurl.fix). Eelco Dolstra 2003-07-08 09:53:46 +0000
  • a5a90f501e * Get rid of the netsources' database. * Rename the refs' database to `hash2paths'. Eelco Dolstra 2003-07-08 08:35:06 +0000
  • be96c2189c * --realise' -> --install'. Eelco Dolstra 2003-07-07 09:29:40 +0000
  • 5895c160c4 * Make dbRefs a mapping from Hash to [Path]. Eelco Dolstra 2003-07-07 09:25:26 +0000
  • 609a224848 * Fixed `make check' as well. Eelco Dolstra 2003-07-07 07:44:57 +0000
  • 224c585aba * Refactoring on the file names. Eelco Dolstra 2003-07-07 07:43:58 +0000