* Use maps and sets in the FState data type. This ensures normalisation of

slices and derivations w.r.t. order of paths, slice elements, etc.
This commit is contained in:
Eelco Dolstra 2003-08-20 14:11:40 +00:00
parent 624c48260f
commit 956801fcc2
5 changed files with 86 additions and 105 deletions

View file

@ -14,28 +14,25 @@ typedef list<FSId> FSIds;
struct SliceElem
{
string path;
FSId id;
Strings refs;
StringSet refs;
};
typedef list<SliceElem> SliceElems;
typedef map<string, SliceElem> SliceElems;
struct Slice
{
Strings roots;
StringSet roots;
SliceElems elems;
};
typedef pair<string, FSId> DeriveOutput;
typedef pair<string, string> StringPair;
typedef list<DeriveOutput> DeriveOutputs;
typedef list<StringPair> StringPairs;
typedef map<string, FSId> DeriveOutputs;
typedef map<string, string> StringPairs;
struct Derive
{
DeriveOutputs outputs;
FSIds inputs;
FSIdSet inputs;
string platform;
string builder;
Strings args;