fix(3p/nix): Compatibility with updated SymbolTable
The functions in SymbolTable have been renamed to match the Google Style guide, and some debug-only functions have been removed.
This commit is contained in:
parent
97e85f94e5
commit
c395a48be2
21 changed files with 141 additions and 137 deletions
49
third_party/nix/src/libexpr/primops.cc
vendored
49
third_party/nix/src/libexpr/primops.cc
vendored
|
@ -118,12 +118,12 @@ static void prim_scopedImport(EvalState& state, const Pos& pos, Value** args,
|
|||
mkString(*v2, path, {"=" + path});
|
||||
v2 = state.allocAttr(w, state.sName);
|
||||
mkString(*v2, drv.env["name"]);
|
||||
Value* outputsVal = state.allocAttr(w, state.symbols.create("outputs"));
|
||||
Value* outputsVal = state.allocAttr(w, state.symbols.Create("outputs"));
|
||||
state.mkList(*outputsVal, drv.outputs.size());
|
||||
unsigned int outputs_index = 0;
|
||||
|
||||
for (const auto& o : drv.outputs) {
|
||||
v2 = state.allocAttr(w, state.symbols.create(o.first));
|
||||
v2 = state.allocAttr(w, state.symbols.Create(o.first));
|
||||
mkString(*v2, o.second.path, {"!" + o.first + "!" + path});
|
||||
outputsVal->listElems()[outputs_index] = state.allocValue();
|
||||
mkString(*(outputsVal->listElems()[outputs_index++]), o.first);
|
||||
|
@ -291,7 +291,7 @@ static void prim_typeOf(EvalState& state, const Pos& pos, Value** args,
|
|||
default:
|
||||
abort();
|
||||
}
|
||||
mkString(v, state.symbols.create(t));
|
||||
mkString(v, state.symbols.Create(t));
|
||||
}
|
||||
|
||||
/* Determine whether the argument is the null value. */
|
||||
|
@ -394,7 +394,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
|
|||
|
||||
/* Get the start set. */
|
||||
Bindings::iterator startSet =
|
||||
args[0]->attrs->find(state.symbols.create("startSet"));
|
||||
args[0]->attrs->find(state.symbols.Create("startSet"));
|
||||
if (startSet == args[0]->attrs->end()) {
|
||||
throw EvalError(format("attribute 'startSet' required, at %1%") % pos);
|
||||
}
|
||||
|
@ -407,7 +407,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
|
|||
|
||||
/* Get the operator. */
|
||||
Bindings::iterator op =
|
||||
args[0]->attrs->find(state.symbols.create("operator"));
|
||||
args[0]->attrs->find(state.symbols.Create("operator"));
|
||||
if (op == args[0]->attrs->end()) {
|
||||
throw EvalError(format("attribute 'operator' required, at %1%") % pos);
|
||||
}
|
||||
|
@ -426,7 +426,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
|
|||
|
||||
state.forceAttrs(*e, pos);
|
||||
|
||||
Bindings::iterator key = e->attrs->find(state.symbols.create("key"));
|
||||
Bindings::iterator key = e->attrs->find(state.symbols.Create("key"));
|
||||
if (key == e->attrs->end()) {
|
||||
throw EvalError(format("attribute 'key' required, at %1%") % pos);
|
||||
}
|
||||
|
@ -493,10 +493,10 @@ static void prim_tryEval(EvalState& state, const Pos& pos, Value** args,
|
|||
try {
|
||||
state.forceValue(*args[0]);
|
||||
v.attrs->push_back(Attr(state.sValue, args[0]));
|
||||
mkBool(*state.allocAttr(v, state.symbols.create("success")), true);
|
||||
mkBool(*state.allocAttr(v, state.symbols.Create("success")), true);
|
||||
} catch (AssertionError& e) {
|
||||
mkBool(*state.allocAttr(v, state.sValue), false);
|
||||
mkBool(*state.allocAttr(v, state.symbols.create("success")), false);
|
||||
mkBool(*state.allocAttr(v, state.symbols.Create("success")), false);
|
||||
}
|
||||
v.attrs->sort();
|
||||
}
|
||||
|
@ -846,7 +846,7 @@ static void prim_derivationStrict(EvalState& state, const Pos& pos,
|
|||
state.mkAttrs(v, 1 + drv.outputs.size());
|
||||
mkString(*state.allocAttr(v, state.sDrvPath), drvPath, {"=" + drvPath});
|
||||
for (auto& i : drv.outputs) {
|
||||
mkString(*state.allocAttr(v, state.symbols.create(i.first)), i.second.path,
|
||||
mkString(*state.allocAttr(v, state.symbols.Create(i.first)), i.second.path,
|
||||
{"!" + i.first + "!" + drvPath});
|
||||
}
|
||||
v.attrs->sort();
|
||||
|
@ -987,12 +987,12 @@ static void prim_findFile(EvalState& state, const Pos& pos, Value** args,
|
|||
state.forceAttrs(v2, pos);
|
||||
|
||||
string prefix;
|
||||
Bindings::iterator i = v2.attrs->find(state.symbols.create("prefix"));
|
||||
Bindings::iterator i = v2.attrs->find(state.symbols.Create("prefix"));
|
||||
if (i != v2.attrs->end()) {
|
||||
prefix = state.forceStringNoCtx(*i->value, pos);
|
||||
}
|
||||
|
||||
i = v2.attrs->find(state.symbols.create("path"));
|
||||
i = v2.attrs->find(state.symbols.Create("path"));
|
||||
if (i == v2.attrs->end()) {
|
||||
throw EvalError(format("attribute 'path' missing, at %1%") % pos);
|
||||
}
|
||||
|
@ -1050,7 +1050,7 @@ static void prim_readDir(EvalState& state, const Pos& pos, Value** args,
|
|||
state.mkAttrs(v, entries.size());
|
||||
|
||||
for (auto& ent : entries) {
|
||||
Value* ent_val = state.allocAttr(v, state.symbols.create(ent.name));
|
||||
Value* ent_val = state.allocAttr(v, state.symbols.Create(ent.name));
|
||||
if (ent.type == DT_UNKNOWN) {
|
||||
ent.type = getFileType(path + "/" + ent.name);
|
||||
}
|
||||
|
@ -1301,7 +1301,7 @@ void prim_getAttr(EvalState& state, const Pos& pos, Value** args, Value& v) {
|
|||
string attr = state.forceStringNoCtx(*args[0], pos);
|
||||
state.forceAttrs(*args[1], pos);
|
||||
// !!! Should we create a symbol here or just do a lookup?
|
||||
Bindings::iterator i = args[1]->attrs->find(state.symbols.create(attr));
|
||||
Bindings::iterator i = args[1]->attrs->find(state.symbols.Create(attr));
|
||||
if (i == args[1]->attrs->end()) {
|
||||
throw EvalError(format("attribute '%1%' missing, at %2%") % attr % pos);
|
||||
}
|
||||
|
@ -1318,7 +1318,7 @@ void prim_unsafeGetAttrPos(EvalState& state, const Pos& pos, Value** args,
|
|||
Value& v) {
|
||||
string attr = state.forceStringNoCtx(*args[0], pos);
|
||||
state.forceAttrs(*args[1], pos);
|
||||
Bindings::iterator i = args[1]->attrs->find(state.symbols.create(attr));
|
||||
Bindings::iterator i = args[1]->attrs->find(state.symbols.Create(attr));
|
||||
if (i == args[1]->attrs->end()) {
|
||||
mkNull(v);
|
||||
} else {
|
||||
|
@ -1331,7 +1331,7 @@ static void prim_hasAttr(EvalState& state, const Pos& pos, Value** args,
|
|||
Value& v) {
|
||||
string attr = state.forceStringNoCtx(*args[0], pos);
|
||||
state.forceAttrs(*args[1], pos);
|
||||
mkBool(v, args[1]->attrs->find(state.symbols.create(attr)) !=
|
||||
mkBool(v, args[1]->attrs->find(state.symbols.Create(attr)) !=
|
||||
args[1]->attrs->end());
|
||||
}
|
||||
|
||||
|
@ -1351,7 +1351,7 @@ static void prim_removeAttrs(EvalState& state, const Pos& pos, Value** args,
|
|||
std::set<Symbol> names;
|
||||
for (unsigned int i = 0; i < args[1]->listSize(); ++i) {
|
||||
state.forceStringNoCtx(*args[1]->listElems()[i], pos);
|
||||
names.insert(state.symbols.create(args[1]->listElems()[i]->string.s));
|
||||
names.insert(state.symbols.Create(args[1]->listElems()[i]->string.s));
|
||||
}
|
||||
|
||||
/* Copy all attributes not in that set. Note that we don't need
|
||||
|
@ -1391,10 +1391,13 @@ static void prim_listToAttrs(EvalState& state, const Pos& pos, Value** args,
|
|||
}
|
||||
string name = state.forceStringNoCtx(*j->value, pos);
|
||||
|
||||
Symbol sym = state.symbols.create(name);
|
||||
Symbol sym = state.symbols.Create(name);
|
||||
if (seen.find(sym) == seen.end()) {
|
||||
Bindings::iterator j2 =
|
||||
v2.attrs->find(state.symbols.create(state.sValue));
|
||||
// TODO(tazjin): this line used to construct the symbol again:
|
||||
// state.symbols.Create(state.sValue));
|
||||
// Why?
|
||||
v2.attrs->find(state.sValue);
|
||||
if (j2 == v2.attrs->end()) {
|
||||
throw TypeError(format("'value' attribute missing in a call to "
|
||||
"'listToAttrs', at %1%") %
|
||||
|
@ -1436,7 +1439,7 @@ static void prim_intersectAttrs(EvalState& state, const Pos& pos, Value** args,
|
|||
*/
|
||||
static void prim_catAttrs(EvalState& state, const Pos& pos, Value** args,
|
||||
Value& v) {
|
||||
Symbol attrName = state.symbols.create(state.forceStringNoCtx(*args[0], pos));
|
||||
Symbol attrName = state.symbols.Create(state.forceStringNoCtx(*args[0], pos));
|
||||
state.forceList(*args[1], pos);
|
||||
|
||||
Value* res[args[1]->listSize()];
|
||||
|
@ -2144,7 +2147,7 @@ static void prim_parseDrvName(EvalState& state, const Pos& pos, Value** args,
|
|||
DrvName parsed(name);
|
||||
state.mkAttrs(v, 2);
|
||||
mkString(*state.allocAttr(v, state.sName), parsed.name);
|
||||
mkString(*state.allocAttr(v, state.symbols.create("version")),
|
||||
mkString(*state.allocAttr(v, state.symbols.Create("version")),
|
||||
parsed.version);
|
||||
v.attrs->sort();
|
||||
}
|
||||
|
@ -2430,7 +2433,7 @@ void EvalState::createBaseEnv() {
|
|||
`drvPath' and `outPath' attributes lazily. */
|
||||
string path =
|
||||
canonPath(settings.nixDataDir + "/nix/corepkgs/derivation.nix", true);
|
||||
sDerivationNix = symbols.create(path);
|
||||
sDerivationNix = symbols.Create(path);
|
||||
evalFile(path, v);
|
||||
addConstant("derivation", v);
|
||||
|
||||
|
@ -2440,8 +2443,8 @@ void EvalState::createBaseEnv() {
|
|||
for (auto& i : searchPath) {
|
||||
v2 = v.listElems()[n++] = allocValue();
|
||||
mkAttrs(*v2, 2);
|
||||
mkString(*allocAttr(*v2, symbols.create("path")), i.second);
|
||||
mkString(*allocAttr(*v2, symbols.create("prefix")), i.first);
|
||||
mkString(*allocAttr(*v2, symbols.Create("path")), i.second);
|
||||
mkString(*allocAttr(*v2, symbols.Create("prefix")), i.first);
|
||||
v2->attrs->sort();
|
||||
}
|
||||
addConstant("__nixPath", v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue