sbool dm_bot_execEvalCmd(VF1 postMessage, S s, O... _) { double timeout = optPar timeout(_, 60.0); O safetyCheck = optPar safetyCheck(_); new Matches m; bool freshMe = swic_trim(s, "!fresh ", m); if (freshMe || eq(s, "!fresh")) { dm_refreshTranspiler(); if (!freshMe) ret true with callF(postMessage, "OK"); } if (swic_trim(s, "!eval ", m)) ret true with callF(postMessage, pcallOrExceptionText_strOrNull(func { S code = m.rest(); try answer (S) callF(safetyCheck, code); ret print("eval result > ", strOrNull(dm_javaEvalOrInterpret(code))); })); if (freshMe || swic_trim(s, "!real-eval ", m)) ret true with callF(postMessage, evalWithTimeout_text(timeout, func { S code = m.rest(); try answer (S) callF(safetyCheck, code); ret print("eval result > ", dm_javaEval(code)); })); false; }