mirror of
https://github.com/NixOS/nix.git
synced 2025-11-08 19:46:02 +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()
|
||||
{
|
||||
/* Ensure that derivations get built in order of their name,
|
||||
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);
|
||||
return "dd$" + std::string(drvPath.name()) + "$" + worker.store.printStorePath(drvPath);
|
||||
}
|
||||
|
||||
void DerivationBuildingGoal::killChild()
|
||||
|
|
|
|||
|
|
@ -52,11 +52,7 @@ DerivationGoal::DerivationGoal(
|
|||
|
||||
std::string DerivationGoal::key()
|
||||
{
|
||||
/* Ensure that derivations get built in order of their name,
|
||||
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{
|
||||
return "db$" + std::string(drvPath.name()) + "$" + SingleDerivedPath::Built{
|
||||
.drvPath = makeConstantStorePathRef(drvPath),
|
||||
.output = wantedOutput,
|
||||
}.to_string(worker.store);
|
||||
|
|
|
|||
|
|
@ -58,11 +58,7 @@ static StorePath pathPartOfReq(const SingleDerivedPath & req)
|
|||
|
||||
std::string DerivationTrampolineGoal::key()
|
||||
{
|
||||
/* Ensure that derivations get built in order of their name,
|
||||
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{
|
||||
return "da$" + std::string(pathPartOfReq(*drvReq).name()) + "$" + DerivedPath::Built{
|
||||
.drvPath = drvReq,
|
||||
.outputs = wantedOutputs,
|
||||
}.to_string(worker.store);
|
||||
|
|
|
|||
|
|
@ -153,8 +153,6 @@ Goal::Co DrvOutputSubstitutionGoal::realisationFetched(
|
|||
|
||||
std::string DrvOutputSubstitutionGoal::key()
|
||||
{
|
||||
/* "a$" ensures substitution goals happen before derivation
|
||||
goals. */
|
||||
return "a$" + std::string(id.to_string());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -456,6 +456,18 @@ public:
|
|||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -58,10 +58,6 @@ public:
|
|||
unreachable();
|
||||
};
|
||||
|
||||
/**
|
||||
* We prepend "a$" to the key name to ensure substitution goals
|
||||
* happen before derivation goals.
|
||||
*/
|
||||
std::string key() override
|
||||
{
|
||||
return "a$" + std::string(storePath.name()) + "$" + worker.store.printStorePath(storePath);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue