1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 00:11:17 +02:00

* Fix builtins.

This commit is contained in:
Eelco Dolstra 2010-04-14 22:59:39 +00:00
parent 81de12bc8f
commit 267dc693d2
4 changed files with 30 additions and 28 deletions

View file

@ -999,15 +999,13 @@ void EvalState::createBaseEnv()
{
baseEnv.up = 0;
#if 0
Value & builtins = baseEnv.bindings[symbols.create("builtins")];
builtins.type = tAttrs;
builtins.attrs = new Bindings;
#endif
/* Add global constants such as `true' to the base environment. */
Value v;
/* `builtins' must be first! */
mkAttrs(v);
addConstant("builtins", v);
mkBool(v, true);
addConstant("true", v);
@ -1023,14 +1021,6 @@ void EvalState::createBaseEnv()
mkString(v, thisSystem.c_str());
addConstant("__currentSystem", v);
/* Add a wrapper around the derivation primop that computes the
`drvPath' and `outPath' attributes lazily. */
#if 0
string s = "attrs: let res = derivationStrict attrs; in attrs // { drvPath = res.drvPath; outPath = res.outPath; type = \"derivation\"; }";
mkThunk(v, baseEnv, parseExprFromString(*this, s, "/"));
addConstant("derivation", v);
#endif
// Miscellaneous
addPrimOp("import", 1, prim_import);
addPrimOp("isNull", 1, prim_isNull);
@ -1053,6 +1043,12 @@ void EvalState::createBaseEnv()
// Derivations
addPrimOp("derivationStrict", 1, prim_derivationStrict);
/* Add a wrapper around the derivation primop that computes the
`drvPath' and `outPath' attributes lazily. */
string s = "attrs: let res = derivationStrict attrs; in attrs // { drvPath = res.drvPath; outPath = res.outPath; type = \"derivation\"; }";
mkThunk(v, baseEnv, parseExprFromString(*this, s, "/"));
addConstant("derivation", v);
// Paths
addPrimOp("__toPath", 1, prim_toPath);
#if 0
@ -1105,7 +1101,7 @@ void EvalState::createBaseEnv()
// Versions
addPrimOp("__parseDrvName", 1, prim_parseDrvName);
addPrimOp("__compareVersions", 2, prim_compareVersions);
addPrimOp("__compareVersions", 2, prim_compareVersions);
}