From a7bea73292cd9353feb19532f9c6d1afcb2a99d4 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Tue, 23 Oct 2018 21:13:03 -0400 Subject: [PATCH 1/2] Don't print opt fuel messages to stdout because it breaks Rustbuild Rustbuild passes `--message-format json` to the compiler invocations which causes JSON to be emitted on stdout. Printing optimization fuel messages to stdout breaks the json and causes Rustbuild to fail. Work around this by emitting optimization fuel related messages on stderr instead. --- src/librustc/session/mod.rs | 2 +- src/librustc_driver/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index a17825a877d88..fe94b62ef19e2 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -868,7 +868,7 @@ impl Session { let fuel = self.optimization_fuel_limit.get(); ret = fuel != 0; if fuel == 0 && !self.out_of_fuel.get() { - println!("optimization-fuel-exhausted: {}", msg()); + eprintln!("optimization-fuel-exhausted: {}", msg()); self.out_of_fuel.set(true); } else if fuel > 0 { self.optimization_fuel_limit.set(fuel - 1); diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 276b7290c2ef0..8a7d4a0174310 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -944,7 +944,7 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls { control.compilation_done.callback = box move |state| { old_callback(state); let sess = state.session; - println!("Fuel used by {}: {}", + eprintln!("Fuel used by {}: {}", sess.print_fuel_crate.as_ref().unwrap(), sess.print_fuel.get()); } From 22b571d62a6750d1d67509a8e71f524c69d37b9d Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Tue, 6 Nov 2018 17:07:17 +0100 Subject: [PATCH 2/2] Add explcit `--error-format` options to tests of print-fuel to sidestep compiletests presumption of JSON. As a driveby, rename the stdout files to stderr, which should have been part of the earlier commit. --- src/test/run-pass/optimization-fuel-0.rs | 3 ++- .../{optimization-fuel-0.stdout => optimization-fuel-0.stderr} | 0 src/test/run-pass/optimization-fuel-1.rs | 3 ++- .../{optimization-fuel-1.stdout => optimization-fuel-1.stderr} | 0 src/test/ui/print-fuel/print-fuel.rs | 3 ++- .../ui/print-fuel/{print-fuel.stdout => print-fuel.stderr} | 0 6 files changed, 6 insertions(+), 3 deletions(-) rename src/test/run-pass/{optimization-fuel-0.stdout => optimization-fuel-0.stderr} (100%) rename src/test/run-pass/{optimization-fuel-1.stdout => optimization-fuel-1.stderr} (100%) rename src/test/ui/print-fuel/{print-fuel.stdout => print-fuel.stderr} (100%) diff --git a/src/test/run-pass/optimization-fuel-0.rs b/src/test/run-pass/optimization-fuel-0.rs index 3832c040108f8..a12dad4489df9 100644 --- a/src/test/run-pass/optimization-fuel-0.rs +++ b/src/test/run-pass/optimization-fuel-0.rs @@ -12,7 +12,8 @@ use std::mem::size_of; -// compile-flags: -Z fuel=foo=0 +// (#55495: The --error-format is to sidestep an issue in our test harness) +// compile-flags: --error-format human -Z fuel=foo=0 struct S1(u8, u16, u8); struct S2(u8, u16, u8); diff --git a/src/test/run-pass/optimization-fuel-0.stdout b/src/test/run-pass/optimization-fuel-0.stderr similarity index 100% rename from src/test/run-pass/optimization-fuel-0.stdout rename to src/test/run-pass/optimization-fuel-0.stderr diff --git a/src/test/run-pass/optimization-fuel-1.rs b/src/test/run-pass/optimization-fuel-1.rs index e3529ebfb0d81..1e76aaa48b761 100644 --- a/src/test/run-pass/optimization-fuel-1.rs +++ b/src/test/run-pass/optimization-fuel-1.rs @@ -12,7 +12,8 @@ use std::mem::size_of; -// compile-flags: -Z fuel=foo=1 +// (#55495: The --error-format is to sidestep an issue in our test harness) +// compile-flags: --error-format human -Z fuel=foo=1 struct S1(u8, u16, u8); struct S2(u8, u16, u8); diff --git a/src/test/run-pass/optimization-fuel-1.stdout b/src/test/run-pass/optimization-fuel-1.stderr similarity index 100% rename from src/test/run-pass/optimization-fuel-1.stdout rename to src/test/run-pass/optimization-fuel-1.stderr diff --git a/src/test/ui/print-fuel/print-fuel.rs b/src/test/ui/print-fuel/print-fuel.rs index 96b025128ee9a..31123410481c3 100644 --- a/src/test/ui/print-fuel/print-fuel.rs +++ b/src/test/ui/print-fuel/print-fuel.rs @@ -11,7 +11,8 @@ #![crate_name="foo"] #![allow(dead_code)] -// compile-flags: -Z print-fuel=foo +// (#55495: The --error-format is to sidestep an issue in our test harness) +// compile-flags: --error-format human -Z print-fuel=foo // compile-pass struct S1(u8, u16, u8); diff --git a/src/test/ui/print-fuel/print-fuel.stdout b/src/test/ui/print-fuel/print-fuel.stderr similarity index 100% rename from src/test/ui/print-fuel/print-fuel.stdout rename to src/test/ui/print-fuel/print-fuel.stderr