diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-04-10T17·38+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-04-10T17·38+0000 |
commit | c9c58dba55fc9e46375bb67fdc9e2b55ef3805ff (patch) | |
tree | 12dbb7e740b9916582354619d3286557425a0f43 /src/libexpr/primops.cc | |
parent | b4b51c9f933055e416505e54e446cc27f5f27f56 (diff) |
* Primop `__currentSystem' to return the current platform identifier.
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r-- | src/libexpr/primops.cc | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 4f0a9f1bdbf5..dbb8f51b0243 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -357,21 +357,21 @@ static Expr primFalse(EvalState & state, const ATermVector & args) /* Return the null value. */ -Expr primNull(EvalState & state, const ATermVector & args) +static Expr primNull(EvalState & state, const ATermVector & args) { return makeNull(); } /* Determine whether the argument is the null value. */ -Expr primIsNull(EvalState & state, const ATermVector & args) +static Expr primIsNull(EvalState & state, const ATermVector & args) { return makeBool(matchNull(evalExpr(state, args[0]))); } /* Apply a function to every element of a list. */ -Expr primMap(EvalState & state, const ATermVector & args) +static Expr primMap(EvalState & state, const ATermVector & args) { Expr fun = evalExpr(state, args[0]); Expr list = evalExpr(state, args[1]); @@ -388,11 +388,22 @@ Expr primMap(EvalState & state, const ATermVector & args) } +/* Return a string constant representing the current platform. Note! + that differs between platforms, so Nix expressions using + `__currentSystem' can evaluate to different values on different + platforms. */ +static Expr primCurrentSystem(EvalState & state, const ATermVector & args) +{ + return makeStr(toATerm(thisSystem)); +} + + void EvalState::addPrimOps() { addPrimOp("true", 0, primTrue); addPrimOp("false", 0, primFalse); addPrimOp("null", 0, primNull); + addPrimOp("__currentSystem", 0, primCurrentSystem); addPrimOp("import", 1, primImport); addPrimOp("derivation", 1, primDerivation); |