lix/src/libexpr
Eelco Dolstra 044b6482c1 * Greatly reduced the amount of stack space used by the Nix expression
evaluator.  This was important because the NixOS expressions started
  to hit 2 MB default stack size on Linux.

  GCC is really dumb about stack space: it just adds up all the local
  variables and temporaries of every scope into one huge stack frame.
  This is really bad for deeply recursive functions.  For instance,
  every `throw Error(format("error message"))' causes a format object
  of a few hundred bytes to be allocated on the stack.  As a result,
  every recursive call to evalExpr2() consumed 4680 bytes.  By
  splitting evalExpr2() and by moving the exception-throwing code out
  of the main functions, evalExpr2() now only consumes 40 bytes.
  Similar for evalExpr().
2007-02-27 19:10:45 +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 * Greatly reduced the amount of stack space used by the Nix expression 2007-02-27 19:10:45 +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 now maintains meta info (from the `meta' derivation 2007-02-02 01:52:42 +00:00
get-drvs.hh * nix-env now maintains meta info (from the `meta' derivation 2007-02-02 01:52:42 +00:00
lexer.l * Big cleanup of the semantics of paths, strings, contexts, string 2006-10-16 15:55:34 +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 * Backwards compatibility with old user environment manifests. 2006-10-17 14:01:45 +00:00
nixexpr.cc * nix-env now maintains meta info (from the `meta' derivation 2007-02-02 01:52:42 +00:00
nixexpr.hh * nix-env now maintains meta info (from the `meta' derivation 2007-02-02 01:52:42 +00:00
parser.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
parser.y * Handle multiple indirect symlinks when loading a Nix expression. 2007-01-15 14:50:25 +00:00
primops.cc * computeStorePathForText: take the references into account when 2007-01-29 15:51:37 +00:00