Commit graph

13149 commits

Author SHA1 Message Date
Eelco Dolstra 95304172a5 * Don't use IPC::Open2, it has a subtle race bug on Mac OS X 10.4. If
the parent runs before the child, it closes some pipe file
  descriptors which causes the child to fail due to a bad file
  descriptor.  So we just use the normal open() function instead.
  
  This fixes NIX-14 (intermittent nix-pull failures).
2005-09-21 17:06:06 +00:00
Eelco Dolstra a864aca44c * This doesn't parse for now. 2005-09-21 17:02:48 +00:00
Eelco Dolstra 8d06842a76 * Configuration options for trusted local builds. 2005-09-21 12:19:39 +00:00
Eelco Dolstra 89cd0f57b1 * Use -all_load on Mac OS X. 2005-09-21 11:12:43 +00:00
Eelco Dolstra ef9e2c8e73 * Typo. 2005-09-20 16:14:00 +00:00
Eelco Dolstra 25d217684b * Use a statically linked ATerm library and build it at -O1, since
higher optimisation levels cause statically linked libraries to
  barf.
2005-09-18 20:27:02 +00:00
Eelco Dolstra f4fe3bd5b1 * Bump the version number to 0.10. 2005-09-16 13:47:03 +00:00
Eelco Dolstra db1a4227a3 * Updated release notes. 2005-09-16 11:28:29 +00:00
Eelco Dolstra c28b8eb699 * svn:ignores.
* Add missing file to dist.
2005-09-16 10:35:48 +00:00
Eelco Dolstra 6f044ab39c * svn:ignore. 2005-09-16 09:05:54 +00:00
Eelco Dolstra d34fa9a6cc * Remove dead file. 2005-09-16 09:05:18 +00:00
Eelco Dolstra 846b53bde4 * Set the current directory to something well-defined. Might help in
setuid installations.
2005-09-16 09:03:24 +00:00
Eelco Dolstra 5c0770ac84 * Include the release notes in the manual. 2005-09-16 08:47:34 +00:00
Eelco Dolstra 1b62c2eba3 * Force release notes in ASCII, not UTF-8. 2005-09-15 20:29:08 +00:00
Eelco Dolstra d1d0271996 * Check for w3m. 2005-09-15 15:21:57 +00:00
Eelco Dolstra 7f384d9c1b * Use a proper temporary directory. 2005-09-15 15:21:35 +00:00
Eelco Dolstra 896c0b92f3 * This is not a GNU project :-P 2005-09-15 09:18:21 +00:00
Eelco Dolstra 5818e8eeaf * Remove dead code. 2005-09-14 18:51:02 +00:00
Eelco Dolstra 025086edea * Release notes in Docbook; ASCII release notes (i.e., the `NEWS'
file) is now generated from that using `w3m' and some XSL hackery.
2005-09-14 18:50:45 +00:00
Eelco Dolstra ed1db42915 * List concatenation must be right-associative for efficiency. 2005-09-14 11:41:59 +00:00
Eelco Dolstra deb75bb414 * Remove debugging code. 2005-09-13 15:54:36 +00:00
Eelco Dolstra 116e939d57 * More debugging. 2005-09-13 14:07:22 +00:00
Eelco Dolstra 55b84357a1 * Debugging. 2005-09-13 13:17:14 +00:00
Eelco Dolstra cf2bb91ec8 * Missing #include. 2005-09-13 13:17:01 +00:00
Eelco Dolstra 699073c337 * Release notes. 2005-09-13 10:57:24 +00:00
Eelco Dolstra cb44aa03b8 * Use aterm 2.4. 2005-09-01 20:48:18 +00:00
Eelco Dolstra 2bcd65ecf6 * `nix-env -e' corrupts memory due to incorrect use of iterators.
Reported by Rob Vermaas.
2005-09-01 18:14:04 +00:00
Eelco Dolstra e1a6fb7870 * `dependencyClosure' now allows a search path, e.g.,
dependencyClosure { ... searchPath = [ ../foo ../bar ]; ... }

* Primop `dirOf' to return the directory part of a path (e.g., dirOf
  /a/b/c == /a/b).

* Primop `relativise' (according to Webster that's a real word!) that
  given paths A and B returns a string representing path B relative
  path to A; e.g., relativise /a/b/c a/b/x/y => "../x/y".
2005-08-14 14:00:39 +00:00
Eelco Dolstra 08c53923db * A primitive operation `dependencyClosure' to do automatic dependency
determination (e.g., finding the header files dependencies of a C
  file) in Nix low-level builds automatically.

  For instance, in the function `compileC' in make/lib/default.nix, we
  find the header file dependencies of C file `main' as follows:

    localIncludes =
      dependencyClosure {
        scanner = file:
          import (findIncludes {
            inherit file;
          });
        startSet = [main];
      };

  The function works by "growing" the set of dependencies, starting
  with the set `startSet', and calling the function `scanner' for each
  file to get its dependencies (which should yield a list of strings
  representing relative paths).  For instance, when `scanner' is
  called on a file `foo.c' that includes the line

    #include "../bar/fnord.h"

  then `scanner' should yield ["../bar/fnord.h"].  This list of
  dependencies is absolutised relative to the including file and added
  to the set of dependencies.  The process continues until no more
  dependencies are found (hence its a closure).

  `dependencyClosure' yields a list that contains in alternation a
  dependency, and its relative path to the directory of the start
  file, e.g.,

    [ /bla/bla/foo.c
      "foo.c"
      /bla/bar/fnord.h
      "../bar/fnord.h"
    ]

  These relative paths are necessary for the builder that compiles
  foo.c to reconstruct the relative directory structure expected by
  foo.c.

  The advantage of `dependencyClosure' over the old approach (using
  the impure `__currentTime') is that it's completely pure, and more
  efficient because it only rescans for dependencies (i.e., by
  building the derivations yielded by `scanner') if sources have
  actually changed.  The old approach rescanned every time.
2005-08-14 12:38:47 +00:00
Eelco Dolstra 714b7256cd * Cleanup; sync with thesis. 2005-08-14 10:19:55 +00:00
Eelco Dolstra 0399365675 * nix-hash: option `--truncate' to truncate the hash to 160 bits. Hmm,
kind of ad hoc ;-)
2005-08-14 10:09:56 +00:00
Eelco Dolstra 2fd22c6360 * Add .libs to svn:ignore. Commit 3500 ;-) 2005-08-01 13:39:56 +00:00
Eelco Dolstra c680f835c9 * Escape ASCII characters < 32 to Unicode FFFD (REPLACEMENT CHARACTER)
so that we don't produce un-wellformed XML.
2005-08-01 13:39:19 +00:00
Eelco Dolstra f450c8ea2f * Oops. XSL stylesheet to mark errors. 2005-08-01 13:24:04 +00:00
Eelco Dolstra 800a6ff845 * Mark error lines in red, and expand subtrees containing errors
automatically.
2005-08-01 13:23:43 +00:00
Eelco Dolstra 78c72bf10e * channels -> channels-v3, catamaran -> nix.cs.uu.nl. 2005-08-01 07:30:35 +00:00
Eelco Dolstra 991a130b1e * Added a list concatenation operator:
[1 2 3] ++ [4 5 6] => [1 2 3 4 5 6]
2005-07-25 15:05:34 +00:00
Eelco Dolstra e6899794ae * Add $prefix/lib to the RPM. 2005-07-25 10:10:24 +00:00
Eelco Dolstra 33efb52e02 * Hack to get around the libtool wrapper script around nix-store not
working when PATH is unset.
2005-07-25 07:25:18 +00:00
Eelco Dolstra 3fae65d4cc * Adhockery. 2005-07-22 20:37:39 +00:00
Eelco Dolstra 4c20a08293 * Build dynamic libraries. 2005-07-22 14:52:45 +00:00
Eelco Dolstra 1a67154d41 * Release notes. 2005-07-19 12:00:38 +00:00
Eelco Dolstra 0f827cc607 * Prevent repeated wrapping of closed terms
(closed(closed(closed(...)))) since this reduces performance by
  producing bigger terms and killing caching (which incidentally also
  prevents useful infinite recursion detection).
2005-07-19 11:48:05 +00:00
Eelco Dolstra 2135e7c041 * Wat cleanups. 2005-07-16 23:19:20 +00:00
Eelco Dolstra 6f82a78de7 * Define paths using regexps, as is done in the Flex definition. 2005-07-16 21:38:15 +00:00
Eelco Dolstra 6f91f02f75 * Make the rejects a bit more compact.
* Add lexical restrictions for keywords.
2005-07-16 20:43:58 +00:00
Eelco Dolstra 9590009a74 * Fix ambiguity. 2005-07-16 15:41:27 +00:00
Eelco Dolstra f797cb5855 * Revive and update the SDF grammar for Nix expressions. 2005-07-16 14:07:35 +00:00
Eelco Dolstra a5ceb5bc0b * nix-build: default to `./default.nix' if no paths are specified.
So when using Nix as a build tool, you can just say `nix-build' and
  it will build the top-level derivation defined in `default.nix'.
2005-07-13 17:39:10 +00:00
Eelco Dolstra d4879b4dfe * Add curl to the RPM dependencies. Should fix NIX-11. 2005-07-12 16:08:10 +00:00