aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-08-29 15:40:49 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-08-29 15:40:49 +0000
commit547b119f25dea97ff06cf754f2720e11b50f079f (patch)
tree4b2dbe9423125291e48e79a7b681b674a997b80b
parent2132d9ddeba14ea2ddcbb16fa51ddb16c45c3c6a (diff)
* Support singleton values and nested lists again in `args', but print
a warning.
-rw-r--r--src/libexpr/primops.cc6
-rw-r--r--src/libmain/shared.cc11
2 files changed, 9 insertions, 8 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 65e993708..8a513c521 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -269,7 +269,11 @@ static Expr primDerivationStrict(EvalState & state, const ATermVector & args)
if (key == "args") {
ATermList es;
value = evalExpr(state, value);
- if (!matchList(value, es)) throw Error(format("`args' should be a list %1%") % value);
+ if (!matchList(value, es)) {
+ static bool haveWarned = false;
+ warnOnce(haveWarned, "the `args' attribute should evaluate to a list");
+ es = flattenList(state, value);
+ }
for (ATermIterator i(es); i; ++i) {
string s;
toString(state, *i, context, s);
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 2441cbf01..71be0dd5d 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -44,13 +44,10 @@ Path makeRootName(const Path & gcRoot, int & counter)
void printGCWarning()
{
- static bool warned = false;
- if (!warned) {
- printMsg(lvlInfo,
- "warning: you did not specify `--add-root'; "
- "the result might be removed by the garbage collector");
- warned = true;
- }
+ static bool haveWarned = false;
+ warnOnce(haveWarned,
+ "warning: you did not specify `--add-root'; "
+ "the result might be removed by the garbage collector");
}