lix/src/libexpr
Eelco Dolstra 77557a6f06 Commit 3000!
* Make the `derivation' primitive much more lazy.  The expression
  `derivation attrs' now evaluates to (essentially)

    attrs // {
      type = "derivation";
      outPath = derivation! attrs;
      drvPath = derivation! attrs;
    }

  where `derivation!' is a primop that does the actual derivation
  instantiation (i.e., it does what `derivation' used to do).  The
  advantage is that it allows commands such as `nix-env -qa' and
  `nix-env -i' to be much faster since they no longer need to
  instantiate all derivations, just the `name' attribute.  (However,
  `nix-env' doesn't yet take advantage of this since it still always
  evaluates the `outPath' and `drvPath' attributes).

  Also, this allows derivations to cyclically reference each other,
  for example,

    webServer = derivation {
      ...
      hostName = "svn.cs.uu.nl";
      services = [svnService];
    };

    svnService = derivation {
      ...
      hostName = webServer.hostName;
    };

  Previously, this would yield a black hole (infinite recursion).
2005-05-07 21:48:49 +00:00
..
eval.cc * string2ATerm -> overloaded toATerm. 2004-11-03 18:12:03 +00:00
eval.hh * Allow certain operations to succeed even if we don't have write 2004-10-25 14:38:23 +00:00
lexer.l * Bug fix in parsing of /* ... */ comments; due to longest match 2004-10-27 13:00:31 +00:00
Makefile.am * Missing dependency; only a problem when building from Subversion. 2005-01-27 19:00:48 +00:00
nixexpr-ast.def * Drop ATmake / ATMatcher also in handling store expressions. 2004-10-29 11:22:49 +00:00
nixexpr.cc * Renamed normalise.cc' -> build.cc', `storeexprs.cc' -> 2005-01-19 16:39:47 +00:00
nixexpr.hh * Primop `__currentSystem' to return the current platform identifier. 2005-04-10 17:38:19 +00:00
parser.cc * Check for duplicate attributes and formal parameters in Nix 2005-03-10 11:33:46 +00:00
parser.hh * Use a map to lookup primops. 2004-02-04 16:03:29 +00:00
parser.y * string2ATerm -> overloaded toATerm. 2004-11-03 18:12:03 +00:00
primops.cc Commit 3000! 2005-05-07 21:48:49 +00:00