* Report evaluation errors per job, and don't bail out if a job fails

[?]
Mar 7, 2009, 2:06 PM
7YCFGMZBCWDOOO3DHSJ3ZWPUWFMEO6OLQGDZWLULAPER3YZOYUJAC

Dependencies

  • [2] KD5237CU * eval-jobs now efficiently evaluates all Hydra jobs from a
  • [3] 4LWGZL33
  • [4] 4N5APGRG * Start of a helper tool to evaluate job expressions efficiently.

Change contents

  • edit in src/c/eval-jobs.cc at line 65
    [2.1405]
    [2.1405]
    }
    static void showArgsUsed(XMLWriter & doc, const ATermMap & argsUsed)
    {
    foreach (ATermMap::const_iterator, i, argsUsed) {
    XMLAttrs xmlAttrs2;
    xmlAttrs2["name"] = aterm2String(i->key);
    xmlAttrs2["value"] = showValue(i->value);
    doc.writeEmptyElement("arg", xmlAttrs2);
    }
  • replacement in src/c/eval-jobs.cc at line 79
    [2.1413][2.1413:1470]()
    static void findJobs(EvalState & state, XMLWriter & doc,
    [2.1413]
    [2.1470]
    static void findJobsWrapped(EvalState & state, XMLWriter & doc,
  • replacement in src/c/eval-jobs.cc at line 113
    [3.1148][2.1577:1863]()
    foreach (ATermMap::const_iterator, i, argsUsed) {
    XMLAttrs xmlAttrs2;
    xmlAttrs2["name"] = aterm2String(i->key);
    xmlAttrs2["value"] = showValue(i->value);
    doc.writeEmptyElement("arg", xmlAttrs2);
    }
    [3.1148]
    [3.1148]
    showArgsUsed(doc, argsUsed);
  • replacement in src/c/eval-jobs.cc at line 128
    [2.2029][2.2029:2102]()
    printMsg(lvlError, format("unknown value: %1%") % showValue(e));
    [2.2029]
    [3.541]
    throw TypeError(format("unknown value: %1%") % showValue(e));
    }
    static void findJobs(EvalState & state, XMLWriter & doc,
    const ATermMap & argsUsed, const ATermMap & argsLeft,
    Expr e, const string & attrPath)
    {
    try {
    findJobsWrapped(state, doc, argsUsed, argsLeft, e, attrPath);
    } catch (Error & e) {
    XMLAttrs xmlAttrs;
    xmlAttrs["location"] = attrPath;
    xmlAttrs["msg"] = e.msg();
    XMLOpenElement _(doc, "error", xmlAttrs);
    showArgsUsed(doc, argsUsed);
    }
  • replacement in src/c/eval-jobs.cc at line 156
    [3.711][2.2127:2157]()
    if (arg == "--arg") {
    [3.711]
    [2.2157]
    if (arg == "--arg" || arg == "--argstr") {
  • replacement in src/c/eval-jobs.cc at line 165
    [2.2604][2.2604:2674]()
    Expr e = parseExprFromString(state, value, absPath("."));
    [2.2604]
    [2.2674]
    Expr e = arg == "--arg"
    ? parseExprFromString(state, value, absPath("."))
    : makeStr(value);