diff --git a/.monadid b/.monadid index 1b9289d9832df62328d9f72b20ae8f9520b98c7a..ad36d09d9f2bc038be8822789aff65d95a021bc1 100644 --- a/.monadid +++ b/.monadid @@ -1,4 +1,4 @@ monad identification file This file is used for monad directory identification -Built by toole1 on linux3.ews.illinois.edu -Build Date: Fri Dec 9 15:37:13 CST 2011 +Built by toole1 on linux1.ews.illinois.edu +Build Date: Sat Dec 10 03:45:14 CST 2011 diff --git a/ccmonad b/ccmonad index 2f30386c2038018567a99c42d31f7adb8cf5cb9f..51c29927999d7a1d519ea5a7ed8e3f40e732a07b 100755 Binary files a/ccmonad and b/ccmonad differ diff --git a/ccmonad.cpp b/ccmonad.cpp index 90f011c187533b243fb08e246144984078add98a..91836bdf7671f0361f93da6db1c7bf319e0088fc 100644 --- a/ccmonad.cpp +++ b/ccmonad.cpp @@ -77,7 +77,7 @@ int main(int argc, const char * const * argv) string line; getline(input, line); vector<string> tokens = tokenize(line, " \t"); - if (tokens.size() == 2 && tokens[0] == "#if" && tokens[1] == "MONAD_SPLIT") + if (tokens.size() >= 2 && tokens[0] == "#if" && tokens[1] == "MONAD_SPLIT") splits.push_back(line_i); } @@ -92,6 +92,14 @@ int main(int argc, const char * const * argv) args.push_back("-DMONAD_SPLIT_LINE_NUMBER=" + lexical_cast<string>(splits[split_i])); args.push_back("-o"); args.push_back(outputFile + "." + split_i); + +#if 0 + cout << "\tmonacc: " << compiler; + for (size_t i = 0; i < args.size(); i++) + cout << ' ' << args[i]; + cout << endl; +#endif + int8_t result2 = exec(compiler, args); if (result2 == 0) intermediate_outputs.push_back(outputFile + "." + split_i); diff --git a/monad b/monad index a1c239b0f760c6da99cb47d73f6d8beab7cd4497..18e6bde8a9a4c5b7752eb290d09c3c3836746b67 100755 Binary files a/monad and b/monad differ diff --git a/monad.cpp b/monad.cpp index 4820d4e6d851cd1030e135f8ec9a5d460a2ec956..4e17d0cfe7a42a632befbbe7bb63e1e9295b0a3d 100644 --- a/monad.cpp +++ b/monad.cpp @@ -38,6 +38,7 @@ bool newtests = false; bool provided = false; bool verbose = false; +bool buffer = true; bool valgrind = false; bool parallel = false; @@ -139,9 +140,11 @@ int main(int argc, const char * const * argv) // TODO exec("make", "--quiet", "--warn-undefined-variables", cout << endl << endl; - const char * verboseflag = (opts::verbose ? "--verbose" : NULL); - const char * valgrindflag = (opts::valgrind ? "--valgrind" : NULL); - int score = exec("./proxy", verboseflag, valgrindflag); + vector<string> args; + if (opts::verbose) args.push_back("--verbose"); + if (opts::valgrind) args.push_back("--valgrind"); + if (!opts::buffer) args.push_back("--noredirect"); + int score = exec("./proxy", args); // TODO (toole1): this causes weird output when scores are like 200 if (score < 0) @@ -187,6 +190,7 @@ void monad::processArgs(int argc, const char * const * argv) options.addOption("optimize", opts::optimize); options.addOption("verbose", opts::verbose); + options.addOption("buffer", opts::buffer); options.addOption("valgrind", opts::valgrind); options.addOption("parallel", opts::parallel); diff --git a/proxy.cpp b/proxy.cpp index 73cec1e3f41e41b19c9613c30d824479f1e41381..a5c47306b6879496da5f4d076754b032a86f3dce 100644 --- a/proxy.cpp +++ b/proxy.cpp @@ -305,7 +305,7 @@ int RunTests::run_all_tests() cout << endl << endl; output_detailed_info_if_any_failed(results, score); - output::total_score(score, get_sum_points()); + output::total_score(score, -1); return score; } @@ -352,7 +352,7 @@ void RunTests::output_detailed_info_if_any_failed(const vector<unit_test_result> void RunTests::output_detailed_tests_info(const vector<unit_test_result> & results, int32_t score) { - output::total_score(score, get_sum_points()); + output::total_score(score, -1); cout << endl << endl; output::header("Detailed test output");