diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-29 15:40:49 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-29 15:40:49 +0000 |
commit | 547b119f25dea97ff06cf754f2720e11b50f079f (patch) | |
tree | 4b2dbe9423125291e48e79a7b681b674a997b80b | |
parent | 2132d9ddeba14ea2ddcbb16fa51ddb16c45c3c6a (diff) |
* Support singleton values and nested lists again in `args', but print
a warning.
-rw-r--r-- | src/libexpr/primops.cc | 6 | ||||
-rw-r--r-- | src/libmain/shared.cc | 11 |
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"); } |