log to stderr instead of stdout

includes rustc diagnostics
runtest updated to check stderr for errors
This commit is contained in:
Ted Horst 2012-02-08 07:31:17 -06:00 committed by Brian Anderson
parent 17110fb28b
commit 36d5074f8f
3 changed files with 12 additions and 16 deletions

View file

@ -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)>,
@ -202,10 +202,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];
@ -214,7 +214,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);
}
@ -239,7 +239,7 @@ 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");
}
}

View file

@ -198,7 +198,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_byte(procres.stdout, '\n' as u8) {
for line: str in str::split_byte(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;
@ -245,7 +245,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_byte(procres.stdout, '\n' as u8) {
for line: str in str::split_byte(procres.stderr, '\n' as u8) {
let was_expected = false;
vec::iteri(expected_errors) {|i, ee|
if !found_flags[i] {

View file

@ -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