1 From 416b010f4087d055febe2d55919f74e261ca8cd6 Mon Sep 17 00:00:00 2001
2 From: Ralf Jung <post@ralfj.de>
3 Date: Thu, 11 Jun 2020 09:25:06 +0200
4 Subject: [PATCH] x.py: do not build Miri by default
7 src/bootstrap/builder.rs | 2 ++
8 src/bootstrap/tool.rs | 30 ++++++++++++++++++------------
9 2 files changed, 20 insertions(+), 12 deletions(-)
11 diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
12 index ffdd8485181f4..c4f29927cf4a8 100644
13 --- a/src/bootstrap/builder.rs
14 +++ b/src/bootstrap/builder.rs
15 @@ -52,6 +52,8 @@ pub trait Step: 'static + Clone + Debug + PartialEq + Eq + Hash {
16 /// it's been assembled.
19 + /// Whether this step is run by default as part of its respective phase.
20 + /// `true` here can still be overwritten by `should_run` calling `default_condition`.
21 const DEFAULT: bool = false;
23 /// If true, then this rule should be skipped if --target was specified, but --host was not
24 diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
25 index 6cd9f9029c948..9c95de0a81eae 100644
26 --- a/src/bootstrap/tool.rs
27 +++ b/src/bootstrap/tool.rs
28 @@ -595,6 +595,7 @@ macro_rules! tool_extended {
32 + stable = $stable:expr,
33 $extra_deps:block;)+) => {
35 #[derive(Debug, Clone, Hash, PartialEq, Eq)]
36 @@ -606,17 +607,22 @@ macro_rules! tool_extended {
39 type Output = Option<PathBuf>;
40 - const DEFAULT: bool = true;
41 + const DEFAULT: bool = true; // Overwritten below
42 const ONLY_HOSTS: bool = true;
44 fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
45 let builder = run.builder;
46 run.path($path).default_condition(
47 builder.config.extended
48 - && builder.config.tools.as_ref().map_or(true, |tools| {
49 - tools.iter().any(|tool| match tool.as_ref() {
50 - "clippy" => $tool_name == "clippy-driver",
51 - x => $tool_name == x,
52 + && builder.config.tools.as_ref().map_or(
53 + // By default, on nightly/dev enable all tools, else only
54 + // build stable tools.
55 + $stable || builder.build.unstable_features(),
56 + // If `tools` is set, search list for this tool.
58 + tools.iter().any(|tool| match tool.as_ref() {
59 + "clippy" => $tool_name == "clippy-driver",
60 + x => $tool_name == x,
64 @@ -652,12 +658,12 @@ macro_rules! tool_extended {
65 // Note: tools need to be also added to `Builder::get_step_descriptions` in `build.rs`
66 // to make `./x.py build <tool>` work.
67 tool_extended!((self, builder),
68 - Cargofmt, rustfmt, "src/tools/rustfmt", "cargo-fmt", {};
69 - CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", {};
70 - Clippy, clippy, "src/tools/clippy", "clippy-driver", {};
71 - Miri, miri, "src/tools/miri", "miri", {};
72 - CargoMiri, miri, "src/tools/miri/cargo-miri", "cargo-miri", {};
73 - Rls, rls, "src/tools/rls", "rls", {
74 + Cargofmt, rustfmt, "src/tools/rustfmt", "cargo-fmt", stable=true, {};
75 + CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", stable=true, {};
76 + Clippy, clippy, "src/tools/clippy", "clippy-driver", stable=true, {};
77 + Miri, miri, "src/tools/miri", "miri", stable=false, {};
78 + CargoMiri, miri, "src/tools/miri/cargo-miri", "cargo-miri", stable=false, {};
79 + Rls, rls, "src/tools/rls", "rls", stable=true, {
80 builder.ensure(Clippy {
81 compiler: self.compiler,
83 @@ -665,7 +671,7 @@ tool_extended!((self, builder),
85 self.extra_features.push("clippy".to_owned());
87 - Rustfmt, rustfmt, "src/tools/rustfmt", "rustfmt", {};
88 + Rustfmt, rustfmt, "src/tools/rustfmt", "rustfmt", stable=true, {};
91 impl<'a> Builder<'a> {