Commit graph

  • c190f051ac * Automatically recover the database in case of a crash. Eelco Dolstra 2003-10-14 15:33:00 +0000
  • 1d61e473c8 * New query `nix --query --predecessors' to print the predecessors of a Nix expression. Eelco Dolstra 2003-10-10 15:25:21 +0000
  • 0abe185688 * `nix --verify': check and repair reverse mapping for successors. Eelco Dolstra 2003-10-10 15:14:29 +0000
  • d3d5e77810 * Reverse mappings for the successor and substitute mappings. Eelco Dolstra 2003-10-10 14:46:28 +0000
  • 1eb4da156c * Performance improvement: don't register already registered terms, thus greatly reducing the number of db transactions. Eelco Dolstra 2003-10-10 13:22:29 +0000
  • 08b7319f5b * Follow successors by default (use `--no-successors' to override). Eelco Dolstra 2003-10-09 15:38:31 +0000
  • 6409c215e5 * Fixed nix-switch. Eelco Dolstra 2003-10-09 15:37:20 +0000
  • 6baa2c4420 * Get rid of identifiers since they are redundant now. This greatly simplifies stuff. Eelco Dolstra 2003-10-08 15:06:59 +0000
  • b9f4942bd2 * string -> Path. Eelco Dolstra 2003-10-07 14:37:41 +0000
  • 5d4171f7fb * Synchronise terminology with the ICSE paper (e.g., slice -> closure, fstate -> Nix expression). * Fix src/test.cc. Eelco Dolstra 2003-10-07 12:27:49 +0000
  • 563afb7fcc * Use passive FTP in wget. Eelco Dolstra 2003-10-02 15:48:47 +0000
  • e78f753aa8 * Include the right files in a distribution. Eelco Dolstra 2003-10-02 12:22:19 +0000
  • 4193d62e08 * Nix now respects $TMPDIR for the creation of temporary build directories. * Retry creation of a temporary directory (with a different name) in the case of EEXIST. Eelco Dolstra 2003-10-02 11:55:38 +0000
  • 6d478597c7 * Argggg... Eelco Dolstra 2003-09-24 08:40:40 +0000
  • 9fb94f4f2f * Forgot a file. Eelco Dolstra 2003-09-24 08:39:49 +0000
  • 9ba2397ea9 * Added missing files to `make dist'. Eelco Dolstra 2003-09-24 08:28:04 +0000
  • 41730f5779 * Put the SVN revision number in the version string. Eelco Dolstra 2003-09-23 14:26:58 +0000
  • 1c7d6bf5fc * Removed references to char_traits so that boost/format also works on GCC 2.95. Eelco Dolstra 2003-09-11 10:23:55 +0000
  • d930a9bc5a * Added some missing #includes. Eelco Dolstra 2003-09-11 08:31:29 +0000
  • 803a924b77 * Make nicer dot graphs. Also show the inner structure of slices. Eelco Dolstra 2003-09-03 14:49:58 +0000
  • c0bbed0959 * Factored out dot graph generation into a separate file. Eelco Dolstra 2003-09-03 11:20:18 +0000
  • 0d2bc68681 * Do not show the output of the builder unless the verbosity is at least at debug level (-vvv). The output is still appended to the build log in /nix/var/log/nix. Eelco Dolstra 2003-08-29 13:12:30 +0000
  • 25304af72e * Set a path. Eelco Dolstra 2003-08-28 10:51:52 +0000
  • b018517314 * Do not try to remove write permission from symlinks, since chmod() follows symlinks. (Note that the permissions on symlinks are ignored anyway.) Eelco Dolstra 2003-08-28 10:51:14 +0000
  • c4f1f49574 * nix-push generated invalid (old-style) slices. * nar.sh needs a path. Eelco Dolstra 2003-08-28 10:10:12 +0000
  • 31be53cd0a * Fix the atrocious (exponential? factorial?) time complexity in `nix --query --requisites'. Eelco Dolstra 2003-08-25 14:56:11 +0000
  • 920193beb1 * Don't continue when the call to nix fails. Eelco Dolstra 2003-08-25 14:36:04 +0000
  • a88144215c * Remove write permission from output paths after they have been built. * Point $HOME to a non-existing path when building to prevent certain tools (such as wget) from falling back on /etc/passwd to locate the home directory (which we don't want them to look at since it's not declared as an input). Eelco Dolstra 2003-08-22 20:12:44 +0000
  • 56b98c3857 * Some work on the introduction. Eelco Dolstra 2003-08-22 11:29:20 +0000
  • 956801fcc2 * Use maps and sets in the FState data type. This ensures normalisation of slices and derivations w.r.t. order of paths, slice elements, etc. Eelco Dolstra 2003-08-20 14:11:40 +0000
  • 624c48260f * Change the abstract syntax of slices. It used to be that ids were used as keys to reference slice elements, e.g., Eelco Dolstra 2003-08-20 12:39:56 +0000
  • 710175e6a0 * Bumped the version number to 0.3. Eelco Dolstra 2003-08-20 11:31:15 +0000
  • ed0db2e0d8 * Fixed a serious bug in the computation of slices. Sometimes the slices would not be properly closed under the path reference relation. Eelco Dolstra 2003-08-20 11:30:45 +0000
  • 1472cc4825 * Pipe /dev/null into stdin. Eelco Dolstra 2003-08-19 13:07:38 +0000
  • 2de8504791 * Delete the temporary directories of failed builds by default, and an option `--keep-failed' to override this behaviour. Eelco Dolstra 2003-08-19 09:04:47 +0000
  • 31e4aa6439 * Allow lists in package bindings, e.g., Eelco Dolstra 2003-08-18 16:32:55 +0000
  • ebbb6ce578 * Most shells initialise PATH to some default (/bin:/usr/bin:...) when PATH is not set. We don't want this, so fill it in with some dummy value. Eelco Dolstra 2003-08-18 14:54:54 +0000
  • c32e01eab2 * Revision 300! * Put `@' in front of echo's in the Makefile. Eelco Dolstra 2003-08-18 08:52:49 +0000
  • 08f9cfe267 * No longer automatically download Berkeley DB / ATerm. Eelco Dolstra 2003-08-18 08:35:16 +0000
  • 96c7b98bf0 * Argument support in Fix. Arguments can be passed through the builder using the `args' binding: Eelco Dolstra 2003-08-15 13:01:45 +0000
  • 555347744d * Derivation expressions now can specify arguments to be passed to the builder. Note that this unfortunately causes all Fix-computed hashes to change. Eelco Dolstra 2003-08-15 12:32:37 +0000
  • 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