aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/derivations.cc34
-rw-r--r--src/libstore/derivations.hh4
2 files changed, 1 insertions, 37 deletions
diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc
index 7807089ca..6d0742b4f 100644
--- a/src/libstore/derivations.cc
+++ b/src/libstore/derivations.cc
@@ -745,7 +745,7 @@ static void rewriteDerivation(Store & store, BasicDerivation & drv, const String
}
-std::optional<BasicDerivation> Derivation::tryResolveUncached(Store & store) {
+std::optional<BasicDerivation> Derivation::tryResolve(Store & store) {
BasicDerivation resolved { *this };
// Input paths that we'll want to rewrite in the derivation
@@ -776,36 +776,4 @@ std::optional<BasicDerivation> Derivation::tryResolveUncached(Store & store) {
return resolved;
}
-std::optional<BasicDerivation> Derivation::tryResolve(Store& store)
-{
- auto drvPath = writeDerivation(store, *this, NoRepair, false);
- return Derivation::tryResolve(store, drvPath);
-}
-
-std::optional<BasicDerivation> Derivation::tryResolve(Store& store, const StorePath& drvPath)
-{
- // This is quite dirty and leaky, but will disappear once #4340 is merged
- static Sync<std::map<StorePath, std::optional<Derivation>>> resolutionsCache;
-
- debug("trying to resolve %s", store.printStorePath(drvPath));
-
- {
- auto resolutions = resolutionsCache.lock();
- auto resolvedDrvIter = resolutions->find(drvPath);
- if (resolvedDrvIter != resolutions->end()) {
- auto & [_, resolvedDrv] = *resolvedDrvIter;
- return *resolvedDrv;
- }
- }
-
- /* Try resolve drv and use that path instead. */
- auto drv = store.readDerivation(drvPath);
- auto attempt = drv.tryResolveUncached(store);
- if (!attempt)
- return std::nullopt;
- /* Store in memo table. */
- resolutionsCache.lock()->insert_or_assign(drvPath, *attempt);
- return *attempt;
-}
-
}
diff --git a/src/libstore/derivations.hh b/src/libstore/derivations.hh
index 3d8f19aef..4e5985fab 100644
--- a/src/libstore/derivations.hh
+++ b/src/libstore/derivations.hh
@@ -138,14 +138,10 @@ struct Derivation : BasicDerivation
2. Input placeholders are replaced with realized input store paths. */
std::optional<BasicDerivation> tryResolve(Store & store);
- static std::optional<BasicDerivation> tryResolve(Store & store, const StorePath & drvPath);
Derivation() = default;
Derivation(const BasicDerivation & bd) : BasicDerivation(bd) { }
Derivation(BasicDerivation && bd) : BasicDerivation(std::move(bd)) { }
-
-private:
- std::optional<BasicDerivation> tryResolveUncached(Store & store);
};