aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/normalise.cc27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc
index 994c45c8d..11e144fa7 100644
--- a/src/libstore/normalise.cc
+++ b/src/libstore/normalise.cc
@@ -103,6 +103,12 @@ struct Goal
/* Referenceable paths (i.e., input and output paths). */
PathSet allPaths;
+ /* The normal forms of the input store expressions. */
+ PathSet inputNFs;
+
+ /* The successor mappings for the input store expressions. */
+ map<Path, Path> inputSucs;
+
/* The process ID of the builder. */
pid_t pid;
@@ -119,10 +125,6 @@ struct Goal
Pipe toHook;
Pipe fromHook;
- /* !!! clean up */
- PathSet fnord;
- map<Path, Path> xyzzy;
-
Goal();
~Goal();
@@ -473,8 +475,8 @@ bool Normaliser::prepareBuild(Goal & goal)
checkInterrupt();
Path nfPath = useSuccessor(*i);
realiseClosure(nfPath);
- goal.fnord.insert(nfPath);
- if (nfPath != *i) goal.xyzzy[*i] = nfPath;
+ goal.inputNFs.insert(nfPath);
+ if (nfPath != *i) goal.inputSucs[*i] = nfPath;
/* !!! nfPath should be a root of the garbage collector while
we are building */
StoreExpr ne = storeExprFromPath(nfPath);
@@ -755,6 +757,11 @@ Normaliser::HookReply Normaliser::tryBuildHook(Goal & goal)
return rpAccept;
}
+ /* Write the information that the hook needs to perform the
+ build, i.e., the set of input paths (including closure
+ expressions), the set of output paths, and the successor
+ mappings for the input expressions. */
+
Path inputListFN = goal.tmpDir + "/inputs";
Path outputListFN = goal.tmpDir + "/outputs";
Path successorsListFN = goal.tmpDir + "/successors";
@@ -763,8 +770,8 @@ Normaliser::HookReply Normaliser::tryBuildHook(Goal & goal)
for (ClosureElems::iterator i = goal.inClosures.begin();
i != goal.inClosures.end(); ++i)
s += i->first + "\n";
- for (PathSet::iterator i = goal.fnord.begin();
- i != goal.fnord.end(); ++i)
+ for (PathSet::iterator i = goal.inputNFs.begin();
+ i != goal.inputNFs.end(); ++i)
s += *i + "\n";
writeStringToFile(inputListFN, s);
@@ -775,8 +782,8 @@ Normaliser::HookReply Normaliser::tryBuildHook(Goal & goal)
writeStringToFile(outputListFN, s);
s = "";
- for (map<Path, Path>::iterator i = goal.xyzzy.begin();
- i != goal.xyzzy.end(); ++i)
+ for (map<Path, Path>::iterator i = goal.inputSucs.begin();
+ i != goal.inputSucs.end(); ++i)
s += i->first + " " + i->second + "\n";
writeStringToFile(successorsListFN, s);