* Working evaluator.
* Mutually recursive attribute sets. * Print evaluator efficiency statistics.
This commit is contained in:
parent
f1c1a3c97f
commit
9210d4d530
10 changed files with 540 additions and 309 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue