mirror of
https://github.com/NixOS/nix.git
synced 2025-11-09 03:56:01 +01:00
Make keys of Derivation*Goal more legible
The property that substitution goals come first is still preserved
This commit is contained in:
parent
a629ce3dec
commit
07df87652c
6 changed files with 15 additions and 21 deletions
|
|
@ -66,11 +66,7 @@ DerivationBuildingGoal::~DerivationBuildingGoal()
|
||||||
|
|
||||||
std::string DerivationBuildingGoal::key()
|
std::string DerivationBuildingGoal::key()
|
||||||
{
|
{
|
||||||
/* Ensure that derivations get built in order of their name,
|
return "dd$" + std::string(drvPath.name()) + "$" + worker.store.printStorePath(drvPath);
|
||||||
i.e. a derivation named "aardvark" always comes before
|
|
||||||
"baboon". And substitution goals always happen before
|
|
||||||
derivation goals (due to "bd$"). */
|
|
||||||
return "bd$" + std::string(drvPath.name()) + "$" + worker.store.printStorePath(drvPath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DerivationBuildingGoal::killChild()
|
void DerivationBuildingGoal::killChild()
|
||||||
|
|
|
||||||
|
|
@ -52,11 +52,7 @@ DerivationGoal::DerivationGoal(
|
||||||
|
|
||||||
std::string DerivationGoal::key()
|
std::string DerivationGoal::key()
|
||||||
{
|
{
|
||||||
/* Ensure that derivations get built in order of their name,
|
return "db$" + std::string(drvPath.name()) + "$" + SingleDerivedPath::Built{
|
||||||
i.e. a derivation named "aardvark" always comes before
|
|
||||||
"baboon". And substitution goals always happen before
|
|
||||||
derivation goals (due to "b$"). */
|
|
||||||
return "b$" + std::string(drvPath.name()) + "$" + SingleDerivedPath::Built{
|
|
||||||
.drvPath = makeConstantStorePathRef(drvPath),
|
.drvPath = makeConstantStorePathRef(drvPath),
|
||||||
.output = wantedOutput,
|
.output = wantedOutput,
|
||||||
}.to_string(worker.store);
|
}.to_string(worker.store);
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,7 @@ static StorePath pathPartOfReq(const SingleDerivedPath & req)
|
||||||
|
|
||||||
std::string DerivationTrampolineGoal::key()
|
std::string DerivationTrampolineGoal::key()
|
||||||
{
|
{
|
||||||
/* Ensure that derivations get built in order of their name,
|
return "da$" + std::string(pathPartOfReq(*drvReq).name()) + "$" + DerivedPath::Built{
|
||||||
i.e. a derivation named "aardvark" always comes before "baboon". And
|
|
||||||
substitution goals, derivation goals, and derivation building goals always happen before
|
|
||||||
derivation goals (due to "bt$"). */
|
|
||||||
return "bt$" + std::string(pathPartOfReq(*drvReq).name()) + "$" + DerivedPath::Built{
|
|
||||||
.drvPath = drvReq,
|
.drvPath = drvReq,
|
||||||
.outputs = wantedOutputs,
|
.outputs = wantedOutputs,
|
||||||
}.to_string(worker.store);
|
}.to_string(worker.store);
|
||||||
|
|
|
||||||
|
|
@ -153,8 +153,6 @@ Goal::Co DrvOutputSubstitutionGoal::realisationFetched(
|
||||||
|
|
||||||
std::string DrvOutputSubstitutionGoal::key()
|
std::string DrvOutputSubstitutionGoal::key()
|
||||||
{
|
{
|
||||||
/* "a$" ensures substitution goals happen before derivation
|
|
||||||
goals. */
|
|
||||||
return "a$" + std::string(id.to_string());
|
return "a$" + std::string(id.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -456,6 +456,18 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void timedOut(Error && ex) = 0;
|
virtual void timedOut(Error && ex) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for comparisons. The order matters a bit for scheduling. We
|
||||||
|
* want:
|
||||||
|
*
|
||||||
|
* 1. Substitution
|
||||||
|
* 2. Derivation administrativia
|
||||||
|
* 3. Actual building
|
||||||
|
*
|
||||||
|
* Also, ensure that derivations get processed in order of their
|
||||||
|
* name, i.e. a derivation named "aardvark" always comes before
|
||||||
|
* "baboon".
|
||||||
|
*/
|
||||||
virtual std::string key() = 0;
|
virtual std::string key() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -58,10 +58,6 @@ public:
|
||||||
unreachable();
|
unreachable();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* We prepend "a$" to the key name to ensure substitution goals
|
|
||||||
* happen before derivation goals.
|
|
||||||
*/
|
|
||||||
std::string key() override
|
std::string key() override
|
||||||
{
|
{
|
||||||
return "a$" + std::string(storePath.name()) + "$" + worker.store.printStorePath(storePath);
|
return "a$" + std::string(storePath.name()) + "$" + worker.store.printStorePath(storePath);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue