lix/src/libexpr
Eelco Dolstra 0a84137c45 * checkVarDefs: don't check in closed terms, which don't have
undefined variables by definition.  This matters for the
  implementation of "with", which does a call to checkVarDefs to see
  if the body of the with has no undefined variables.  (It can't be
  checked at parse time because you don't know which variables are in
  the "with" attribute set.)  If we check closed terms, then we check
  not just the with body but also the substituted terms, which are
  typically very large.  This is the cause of the poor nix-env
  performance on Nixpkgs lately.  It didn't happen earlier because
  "with" wasn't used very often in the past.

  This fix improves nix-env performance roughly 60x on current Nixpkgs.
  nix-env -qa is down from 29.3s to 0.5s on my laptop, and nix-env -qa
  --out-path is down from 229s to 3.39s.  Not bad for a 1-line fix :-)
2008-02-21 12:01:24 +00:00
..
attr-path.cc * Cleanup. 2007-01-13 14:21:49 +00:00
attr-path.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
common-opts.cc * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
common-opts.hh * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
eval.cc * New builtin function "isFunction". You're not supposed to use it 2007-05-16 16:17:04 +00:00
eval.hh * Memoize strict evaluation. 2007-01-13 15:41:54 +00:00
expr-to-xml.cc * printTermAsXML: treat derivations specially; emit an element 2007-01-13 15:11:10 +00:00
expr-to-xml.hh * Big cleanup of the semantics of paths, strings, contexts, string 2006-10-16 15:55:34 +00:00
get-drvs.cc * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then the 2007-09-17 16:08:24 +00:00
get-drvs.hh * nix-env -i: instead of breaking package ties by version, break them 2007-05-01 20:33:18 +00:00
lexer.l * Fix the parsing of 2008-02-05 13:38:07 +00:00
Makefile.am * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
nix.sdf * Support `++'. 2006-09-11 13:05:15 +00:00
nixexpr-ast.def * Added a new kind of multi-line string literal delimited by two 2007-11-30 16:48:45 +00:00
nixexpr.cc * checkVarDefs: don't check in closed terms, which don't have 2008-02-21 12:01:24 +00:00
nixexpr.hh * New primop "throw <string>" to throw an error. This is like abort, 2007-04-16 15:03:19 +00:00
parser.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
parser.y * Added a new kind of multi-line string literal delimited by two 2007-11-30 16:48:45 +00:00
primops.cc Probably fixed __exprToString 2008-01-20 20:44:03 +00:00