civodul pushed a commit to tag 1.8
in repository guix.
commit 9e3389c3378df026dcbf66adef8e52002c7b9d2a
Author: Eelco Dolstra <[email protected]>
Date: Mon Nov 24 16:44:35 2014 +0100
Don't create unnecessary substitution goals for derivations
---
src/libstore/build.cc | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 24576f6..72694cf 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -924,6 +924,11 @@ void DerivationGoal::init()
/* The first thing to do is to make sure that the derivation
exists. If it doesn't, it may be created through a
substitute. */
+ if (buildMode == bmNormal && worker.store.isValidPath(drvPath)) {
+ haveDerivation();
+ return;
+ }
+
addWaitee(worker.makeSubstitutionGoal(drvPath));
state = &DerivationGoal::haveDerivation;