about summary refs log tree commit diff
path: root/src/fix-ng/eval.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/fix-ng/eval.hh')
-rw-r--r--src/fix-ng/eval.hh19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/fix-ng/eval.hh b/src/fix-ng/eval.hh
index 5fcb648a7403..364f28471b79 100644
--- a/src/fix-ng/eval.hh
+++ b/src/fix-ng/eval.hh
@@ -4,19 +4,23 @@
 #include <map>
 
 #include "fix-expr.hh"
+#include "expr.hh"
 
 
 typedef map<Expr, Expr> NormalForms;
-//typedef map<Path, PathSet> PkgPaths;
-//typedef map<Path, Hash> PkgHashes;
+typedef map<Path, PathSet> DrvPaths;
+typedef map<Path, Hash> DrvHashes;
 
 struct EvalState 
 {
     NormalForms normalForms;
-    //    PkgPaths pkgPaths;
-    //    PkgHashes pkgHashes; /* normalised package hashes */
+    DrvPaths drvPaths;
+    DrvHashes drvHashes; /* normalised derivation hashes */
     Expr blackHole;
 
+    unsigned int nrEvaluated;
+    unsigned int nrCached;
+
     EvalState();
 };
 
@@ -27,5 +31,12 @@ Expr evalExpr(EvalState & state, Expr e);
 /* Evaluate an expression read from the given file to normal form. */
 Expr evalFile(EvalState & state, const Path & path);
 
+/* Specific results. */
+string evalString(EvalState & state, Expr e);
+Path evalPath(EvalState & state, Expr e);
+
+/* Print statistics. */
+void printEvalStats(EvalState & state);
+
 
 #endif /* !__EVAL_H */