From dab68b12ef73c85adc1010b046e15e3d91b65e9e Mon Sep 17 00:00:00 2001 From: Ted Horst Date: Fri, 3 Feb 2012 18:43:48 -0600 Subject: [PATCH] log to stderr instead of stdout includes rustc diagnostics runtest updated to check stderr for errors --- src/comp/driver/diagnostic.rs | 18 +++++++++--------- src/compiletest/runtest.rs | 4 ++-- src/rt/rust_srv.cpp | 6 +----- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/comp/driver/diagnostic.rs b/src/comp/driver/diagnostic.rs index 986087bf4d0bd..fea805e6d703a 100644 --- a/src/comp/driver/diagnostic.rs +++ b/src/comp/driver/diagnostic.rs @@ -159,16 +159,16 @@ fn diagnosticcolor(lvl: level) -> u8 { fn print_diagnostic(topic: str, lvl: level, msg: str) { if str::is_not_empty(topic) { - io::stdout().write_str(#fmt["%s ", topic]); + io::stderr().write_str(#fmt["%s ", topic]); } if term::color_supported() { - term::fg(io::stdout(), diagnosticcolor(lvl)); + term::fg(io::stderr(), diagnosticcolor(lvl)); } - io::stdout().write_str(#fmt["%s:", diagnosticstr(lvl)]); + io::stderr().write_str(#fmt["%s:", diagnosticstr(lvl)]); if term::color_supported() { - term::reset(io::stdout()); + term::reset(io::stderr()); } - io::stdout().write_str(#fmt[" %s\n", msg]); + io::stderr().write_str(#fmt[" %s\n", msg]); } fn emit(cmsp: option<(codemap::codemap, span)>, @@ -205,10 +205,10 @@ fn highlight_lines(cm: codemap::codemap, sp: span, } // Print the offending lines for line: uint in display_lines { - io::stdout().write_str(#fmt["%s:%u ", fm.name, line + 1u]); + io::stderr().write_str(#fmt["%s:%u ", fm.name, line + 1u]); let s = codemap::get_line(fm, line as int); if !str::ends_with(s, "\n") { s += "\n"; } - io::stdout().write_str(s); + io::stderr().write_str(s); } if elided { let last_line = display_lines[vec::len(display_lines) - 1u]; @@ -217,7 +217,7 @@ fn highlight_lines(cm: codemap::codemap, sp: span, let out = ""; while indent > 0u { out += " "; indent -= 1u; } out += "...\n"; - io::stdout().write_str(out); + io::stderr().write_str(out); } @@ -242,6 +242,6 @@ fn highlight_lines(cm: codemap::codemap, sp: span, let width = hi.col - lo.col - 1u; while width > 0u { str::push_char(s, '~'); width -= 1u; } } - io::stdout().write_str(s + "\n"); + io::stderr().write_str(s + "\n"); } } diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs index a3920ccb1849a..2ba4517c0e42f 100644 --- a/src/compiletest/runtest.rs +++ b/src/compiletest/runtest.rs @@ -199,7 +199,7 @@ fn check_error_patterns(props: test_props, let next_err_idx = 0u; let next_err_pat = props.error_patterns[next_err_idx]; - for line: str in str::split(procres.stdout, '\n' as u8) { + for line: str in str::split(procres.stderr, '\n' as u8) { if str::find(line, next_err_pat) > 0 { #debug("found error pattern %s", next_err_pat); next_err_idx += 1u; @@ -246,7 +246,7 @@ fn check_expected_errors(expected_errors: [errors::expected_error], // filename:line1:col1: line2:col2: *warning:* msg // where line1:col1: is the starting point, line2:col2: // is the ending point, and * represents ANSI color codes. - for line: str in str::split(procres.stdout, '\n' as u8) { + for line: str in str::split(procres.stderr, '\n' as u8) { let was_expected = false; vec::iteri(expected_errors) {|i, ee| if !found_flags[i] { diff --git a/src/rt/rust_srv.cpp b/src/rt/rust_srv.cpp index 758174a4ebb11..9192af511d953 100644 --- a/src/rt/rust_srv.cpp +++ b/src/rt/rust_srv.cpp @@ -25,11 +25,7 @@ rust_srv::realloc(void *p, size_t bytes) { void rust_srv::log(char const *msg) { - printf("rust: %s\n", msg); - // FIXME: flushing each time is expensive, but at the moment - // necessary to get output through before a rust_task::fail - // call. This should be changed. - fflush(stdout); + fprintf(stderr, "rust: %s\n", msg); } void