about summary refs log tree commit diff
path: root/src/fix-ng/eval.hh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-10-31T17·09+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-10-31T17·09+0000
commit9210d4d530b68b5f19ac7062f129c88ccdc03e04 (patch)
tree7c6033dba3915c1f16bde9a72531157f6f1eebac /src/fix-ng/eval.hh
parentf1c1a3c97f1dc81b2d9b19f58589b4b8a5ed196e (diff)
* Working evaluator.
* Mutually recursive attribute sets.
* Print evaluator efficiency statistics.

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 */