aboutsummaryrefslogtreecommitdiff
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 5fcb648a7..364f28471 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 */