From dc11857ee77cf022ce23c39e303cf1dfd6a40834 Mon Sep 17 00:00:00 2001 From: Ross Sullivan Date: Sat, 11 Jan 2025 17:19:40 +0900 Subject: [PATCH 1/9] ci: added ci format to test_render --- src/bootstrap/src/utils/render_tests.rs | 52 +++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/src/utils/render_tests.rs b/src/bootstrap/src/utils/render_tests.rs index 46b250555f2d5..42b444464e527 100644 --- a/src/bootstrap/src/utils/render_tests.rs +++ b/src/bootstrap/src/utils/render_tests.rs @@ -10,6 +10,7 @@ use std::io::{BufRead, BufReader, Read, Write}; use std::process::{ChildStdout, Stdio}; use std::time::Duration; +use build_helper::ci::CiEnv; use termcolor::{Color, ColorSpec, WriteColor}; use crate::core::builder::Builder; @@ -91,7 +92,9 @@ struct Renderer<'a> { /// Number of tests that were skipped due to already being up-to-date /// (i.e. no relevant changes occurred since they last ran). up_to_date_tests: usize, + ignored_tests: usize, terse_tests_in_line: usize, + ci_latest_logged_percentage: f64, } impl<'a> Renderer<'a> { @@ -104,7 +107,9 @@ impl<'a> Renderer<'a> { tests_count: None, executed_tests: 0, up_to_date_tests: 0, + ignored_tests: 0, terse_tests_in_line: 0, + ci_latest_logged_percentage: 0.0, } } @@ -159,9 +164,12 @@ impl<'a> Renderer<'a> { fn render_test_outcome(&mut self, outcome: Outcome<'_>, test: &TestOutcome) { self.executed_tests += 1; - // Keep this in sync with the "up-to-date" ignore message inserted by compiletest. - if let Outcome::Ignored { reason: Some("up-to-date") } = outcome { - self.up_to_date_tests += 1; + if let Outcome::Ignored { reason } = outcome { + self.ignored_tests += 1; + // Keep this in sync with the "up-to-date" ignore message inserted by compiletest. + if reason == Some("up-to-date") { + self.up_to_date_tests += 1; + } } #[cfg(feature = "build-metrics")] @@ -179,6 +187,8 @@ impl<'a> Renderer<'a> { if self.builder.config.verbose_tests { self.render_test_outcome_verbose(outcome, test); + } else if CiEnv::is_ci() { + self.render_test_outcome_ci(outcome, test); } else { self.render_test_outcome_terse(outcome, test); } @@ -209,6 +219,31 @@ impl<'a> Renderer<'a> { let _ = std::io::stdout().flush(); } + fn render_test_outcome_ci(&mut self, outcome: Outcome<'_>, test: &TestOutcome) { + if let Some(total) = self.tests_count { + let percent = self.executed_tests as f64 / total as f64; + + if self.ci_latest_logged_percentage + 0.10 < percent { + let total = total.to_string(); + let executed = format!("{:>width$}", self.executed_tests, width = total.len()); + let pretty_percent = format!("{:.0}%", percent * 100.0); + let passed_tests = self.executed_tests - (self.failures.len() + self.ignored_tests); + println!( + "{:<4} -- {executed}/{total}, {:>total_indent$} passed, {} failed, {} ignored", + pretty_percent, + passed_tests, + self.failures.len(), + self.ignored_tests, + total_indent = total.len() + ); + self.ci_latest_logged_percentage += 0.10; + } + } + + self.builder.colored_stdout(|stdout| outcome.write_ci(stdout, &test.name)).unwrap(); + let _ = std::io::stdout().flush(); + } + fn render_suite_outcome(&self, outcome: Outcome<'_>, suite: &SuiteOutcome) { // The terse output doesn't end with a newline, so we need to add it ourselves. if !self.builder.config.verbose_tests { @@ -378,6 +413,17 @@ impl Outcome<'_> { } writer.reset() } + + fn write_ci(&self, writer: &mut dyn WriteColor, name: &str) -> Result<(), std::io::Error> { + match self { + Outcome::Ok | Outcome::BenchOk | Outcome::Ignored { .. } => {} + Outcome::Failed => { + writer.set_color(ColorSpec::new().set_fg(Some(Color::Red)))?; + writeln!(writer, " {name} ... FAILED")?; + } + } + writer.reset() + } } #[derive(serde_derive::Deserialize)] From 0962afaa8f1f0a84a298e10b68457fdfca3dfad5 Mon Sep 17 00:00:00 2001 From: binarycat Date: Sat, 11 Jan 2025 17:50:29 -0600 Subject: [PATCH 2/9] clean up code related to the rustdoc-js test suite --- src/bootstrap/src/core/build_steps/test.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 914260e38d1d9..3688065b20bf7 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -30,6 +30,7 @@ use crate::utils::render_tests::{add_flags_and_try_run_tests, try_run_tests}; use crate::{CLang, DocTests, GitRepo, Mode, PathSet, envify}; const ADB_TEST_DIR: &str = "/data/local/tmp/work"; +const RUSTDOC_JS: &str = "rustdoc-js"; /// Runs `cargo test` on various internal tools used by bootstrap. #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -914,8 +915,8 @@ impl Step for RustdocJSNotStd { builder.ensure(Compiletest { compiler: self.compiler, target: self.target, - mode: "js-doc-test", - suite: "rustdoc-js", + mode: RUSTDOC_JS, + suite: RUSTDOC_JS, path: "tests/rustdoc-js", compare_mode: None, }); @@ -1726,7 +1727,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the cmd.arg("--minicore-path") .arg(builder.src.join("tests").join("auxiliary").join("minicore.rs")); - let is_rustdoc = suite.ends_with("rustdoc-ui") || suite.ends_with("rustdoc-js"); + let is_rustdoc = suite == "rustdoc-ui" || suite == RUSTDOC_JS; if mode == "run-make" { let cargo_path = if builder.top_stage == 0 { @@ -1754,7 +1755,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the if mode == "rustdoc" || mode == "run-make" || (mode == "ui" && is_rustdoc) - || mode == "js-doc-test" + || mode == RUSTDOC_JS || mode == "rustdoc-json" || suite == "coverage-run-rustdoc" { @@ -1826,8 +1827,8 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the if let Some(ref nodejs) = builder.config.nodejs { cmd.arg("--nodejs").arg(nodejs); - } else if mode == "js-doc-test" { - panic!("need nodejs to run js-doc-test suite"); + } else if mode == RUSTDOC_JS { + panic!("need nodejs to run rustdoc-js suite"); } if let Some(ref npm) = builder.config.npm { cmd.arg("--npm").arg(npm); From a55bc72ceaec47e6a6f8e9f01ede83bdfecbb629 Mon Sep 17 00:00:00 2001 From: binarycat Date: Sat, 11 Jan 2025 19:27:26 -0600 Subject: [PATCH 3/9] don't use a string constant --- src/bootstrap/src/core/build_steps/test.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 3688065b20bf7..c8bea67238062 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -30,7 +30,6 @@ use crate::utils::render_tests::{add_flags_and_try_run_tests, try_run_tests}; use crate::{CLang, DocTests, GitRepo, Mode, PathSet, envify}; const ADB_TEST_DIR: &str = "/data/local/tmp/work"; -const RUSTDOC_JS: &str = "rustdoc-js"; /// Runs `cargo test` on various internal tools used by bootstrap. #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -915,8 +914,8 @@ impl Step for RustdocJSNotStd { builder.ensure(Compiletest { compiler: self.compiler, target: self.target, - mode: RUSTDOC_JS, - suite: RUSTDOC_JS, + mode: "rustdoc-js", + suite: "rustdoc-js", path: "tests/rustdoc-js", compare_mode: None, }); @@ -1727,7 +1726,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the cmd.arg("--minicore-path") .arg(builder.src.join("tests").join("auxiliary").join("minicore.rs")); - let is_rustdoc = suite == "rustdoc-ui" || suite == RUSTDOC_JS; + let is_rustdoc = suite == "rustdoc-ui" || suite == "rustdoc-js"; if mode == "run-make" { let cargo_path = if builder.top_stage == 0 { @@ -1755,7 +1754,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the if mode == "rustdoc" || mode == "run-make" || (mode == "ui" && is_rustdoc) - || mode == RUSTDOC_JS + || mode == "rustdoc-js" || mode == "rustdoc-json" || suite == "coverage-run-rustdoc" { @@ -1827,7 +1826,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the if let Some(ref nodejs) = builder.config.nodejs { cmd.arg("--nodejs").arg(nodejs); - } else if mode == RUSTDOC_JS { + } else if mode == "rustdoc-js" { panic!("need nodejs to run rustdoc-js suite"); } if let Some(ref npm) = builder.config.npm { From 16286cefcf020a98929733235f9d68f5505eb381 Mon Sep 17 00:00:00 2001 From: binarycat Date: Sat, 11 Jan 2025 20:37:20 -0600 Subject: [PATCH 4/9] rename 'js-doc-test' to 'rustdoc-js' in compiletest --- src/tools/compiletest/src/common.rs | 2 +- src/tools/compiletest/src/header/tests.rs | 2 +- src/tools/compiletest/src/lib.rs | 2 +- src/tools/compiletest/src/runtest.rs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index 36f876bcdc604..9539f7474c732 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -63,7 +63,7 @@ string_enum! { Incremental => "incremental", RunMake => "run-make", Ui => "ui", - JsDocTest => "js-doc-test", + RustdocJs => "rustdoc-js", MirOpt => "mir-opt", Assembly => "assembly", CoverageMap => "coverage-map", diff --git a/src/tools/compiletest/src/header/tests.rs b/src/tools/compiletest/src/header/tests.rs index 25bb1a5f42882..ebba16d41f9e8 100644 --- a/src/tools/compiletest/src/header/tests.rs +++ b/src/tools/compiletest/src/header/tests.rs @@ -591,7 +591,7 @@ fn test_forbidden_revisions_allowed_in_non_filecheck_dir() { "codegen-units", "incremental", "ui", - "js-doc-test", + "rustdoc-js", "coverage-map", "coverage-run", "crashes", diff --git a/src/tools/compiletest/src/lib.rs b/src/tools/compiletest/src/lib.rs index 74d1f5637a8f8..27a046ba5bc4a 100644 --- a/src/tools/compiletest/src/lib.rs +++ b/src/tools/compiletest/src/lib.rs @@ -71,7 +71,7 @@ pub fn parse_config(args: Vec) -> Config { "which sort of compile tests to run", "pretty | debug-info | codegen | rustdoc \ | rustdoc-json | codegen-units | incremental | run-make | ui \ - | js-doc-test | mir-opt | assembly | crashes", + | rustdoc-js | mir-opt | assembly | crashes", ) .reqopt( "", diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 9e8443cd13c5a..a8a1b7e6894eb 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -17,7 +17,7 @@ use tracing::*; use crate::common::{ Assembly, Codegen, CodegenUnits, CompareMode, Config, CoverageMap, CoverageRun, Crashes, - DebugInfo, Debugger, FailMode, Incremental, JsDocTest, MirOpt, PassMode, Pretty, RunMake, + DebugInfo, Debugger, FailMode, Incremental, RustdocJs, MirOpt, PassMode, Pretty, RunMake, Rustdoc, RustdocJson, TestPaths, UI_EXTENSIONS, UI_FIXED, UI_RUN_STDERR, UI_RUN_STDOUT, UI_STDERR, UI_STDOUT, UI_SVG, UI_WINDOWS_SVG, Ui, expected_output_path, incremental_dir, output_base_dir, output_base_name, output_testname_unique, @@ -269,7 +269,7 @@ impl<'test> TestCx<'test> { Ui => self.run_ui_test(), MirOpt => self.run_mir_opt_test(), Assembly => self.run_assembly_test(), - JsDocTest => self.run_js_doc_test(), + RustdocJs => self.run_js_doc_test(), CoverageMap => self.run_coverage_map_test(), // see self::coverage CoverageRun => self.run_coverage_run_test(), // see self::coverage Crashes => self.run_crash_test(), @@ -303,7 +303,7 @@ impl<'test> TestCx<'test> { fn should_compile_successfully(&self, pm: Option) -> bool { match self.config.mode { - JsDocTest => true, + RustdocJs => true, Ui => pm.is_some() || self.props.fail_mode > Some(FailMode::Build), Crashes => false, Incremental => { @@ -1627,7 +1627,7 @@ impl<'test> TestCx<'test> { Crashes => { set_mir_dump_dir(&mut rustc); } - Pretty | DebugInfo | Rustdoc | RustdocJson | RunMake | CodegenUnits | JsDocTest => { + Pretty | DebugInfo | Rustdoc | RustdocJson | RunMake | CodegenUnits | RustdocJs => { // do not use JSON output } } From d5f592ad588ab21a8314197e0d2a090ae2eef170 Mon Sep 17 00:00:00 2001 From: binarycat Date: Sat, 11 Jan 2025 20:46:57 -0600 Subject: [PATCH 5/9] rename run_js_doc_test to run_rustdoc_js_test --- src/tools/compiletest/src/runtest.rs | 6 +++--- src/tools/compiletest/src/runtest/js_doc.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index a8a1b7e6894eb..b6a19147eb7f3 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -17,8 +17,8 @@ use tracing::*; use crate::common::{ Assembly, Codegen, CodegenUnits, CompareMode, Config, CoverageMap, CoverageRun, Crashes, - DebugInfo, Debugger, FailMode, Incremental, RustdocJs, MirOpt, PassMode, Pretty, RunMake, - Rustdoc, RustdocJson, TestPaths, UI_EXTENSIONS, UI_FIXED, UI_RUN_STDERR, UI_RUN_STDOUT, + DebugInfo, Debugger, FailMode, Incremental, MirOpt, PassMode, Pretty, RunMake, Rustdoc, + RustdocJs, RustdocJson, TestPaths, UI_EXTENSIONS, UI_FIXED, UI_RUN_STDERR, UI_RUN_STDOUT, UI_STDERR, UI_STDOUT, UI_SVG, UI_WINDOWS_SVG, Ui, expected_output_path, incremental_dir, output_base_dir, output_base_name, output_testname_unique, }; @@ -269,7 +269,7 @@ impl<'test> TestCx<'test> { Ui => self.run_ui_test(), MirOpt => self.run_mir_opt_test(), Assembly => self.run_assembly_test(), - RustdocJs => self.run_js_doc_test(), + RustdocJs => self.run_rustdoc_js_test(), CoverageMap => self.run_coverage_map_test(), // see self::coverage CoverageRun => self.run_coverage_run_test(), // see self::coverage Crashes => self.run_crash_test(), diff --git a/src/tools/compiletest/src/runtest/js_doc.rs b/src/tools/compiletest/src/runtest/js_doc.rs index 68c74cd155c0e..a83bcd70c8718 100644 --- a/src/tools/compiletest/src/runtest/js_doc.rs +++ b/src/tools/compiletest/src/runtest/js_doc.rs @@ -3,7 +3,7 @@ use std::process::Command; use super::TestCx; impl TestCx<'_> { - pub(super) fn run_js_doc_test(&self) { + pub(super) fn run_rustdoc_js_test(&self) { if let Some(nodejs) = &self.config.nodejs { let out_dir = self.output_base_dir(); From 97d59c5af371444dd162b1c83bcf34a5e9ae3228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:42:06 +0800 Subject: [PATCH 6/9] bootstrap: add optional `tracing` cargo feature and optional `tracing*` deps --- src/bootstrap/Cargo.lock | 196 ++++++++++++++++++++++++++++++++++++++- src/bootstrap/Cargo.toml | 6 ++ 2 files changed, 197 insertions(+), 5 deletions(-) diff --git a/src/bootstrap/Cargo.lock b/src/bootstrap/Cargo.lock index c9697e670b777..c46aae2ded1ae 100644 --- a/src/bootstrap/Cargo.lock +++ b/src/bootstrap/Cargo.lock @@ -58,6 +58,9 @@ dependencies = [ "tar", "termcolor", "toml", + "tracing", + "tracing-subscriber", + "tracing-tree", "walkdir", "windows 0.52.0", "xz2", @@ -70,7 +73,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.4.9", "serde", ] @@ -271,8 +274,8 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -300,7 +303,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata", + "regex-automata 0.4.9", "same-file", "walkdir", "winapi-util", @@ -322,6 +325,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "libc" version = "0.2.167" @@ -362,6 +371,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "memchr" version = "2.7.4" @@ -377,6 +395,25 @@ dependencies = [ "winapi", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "object" version = "0.36.5" @@ -386,6 +423,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + [[package]] name = "opener" version = "0.5.2" @@ -396,6 +439,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + [[package]] name = "pkg-config" version = "0.3.31" @@ -439,6 +494,27 @@ dependencies = [ "bitflags", ] +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + [[package]] name = "regex-automata" version = "0.4.9" @@ -447,9 +523,15 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.5" @@ -539,12 +621,27 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + [[package]] name = "syn" version = "2.0.87" @@ -589,6 +686,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "toml" version = "0.5.11" @@ -598,6 +705,79 @@ dependencies = [ "serde", ] +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term 0.46.0", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-tree" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f459ca79f1b0d5f71c54ddfde6debfc59c8b6eeb46808ae492077f739dc7b49c" +dependencies = [ + "nu-ansi-term 0.50.1", + "tracing-core", + "tracing-log", + "tracing-subscriber", +] + [[package]] name = "typenum" version = "1.17.0" @@ -610,6 +790,12 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "version_check" version = "0.9.5" diff --git a/src/bootstrap/Cargo.toml b/src/bootstrap/Cargo.toml index d8775a67e1939..5322f0792147a 100644 --- a/src/bootstrap/Cargo.toml +++ b/src/bootstrap/Cargo.toml @@ -7,6 +7,7 @@ default-run = "bootstrap" [features] build-metrics = ["sysinfo"] +tracing = ["dep:tracing", "dep:tracing-subscriber", "dep:tracing-tree"] [lib] path = "src/lib.rs" @@ -64,6 +65,11 @@ xz2 = "0.1" # Dependencies needed by the build-metrics feature sysinfo = { version = "0.33.0", default-features = false, optional = true, features = ["system"] } +# Dependencies needed by the `logging` feature +tracing = { version = "0.1", optional = true, features = ["attributes"] } +tracing-subscriber = { version = "0.3", optional = true, features = ["env-filter", "fmt", "registry", "std"] } +tracing-tree = { version = "0.4.0", optional = true } + [target.'cfg(windows)'.dependencies.junction] version = "1.0.0" From 1307c950c4c84a71f9abe692418d9e473d9e908b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:42:43 +0800 Subject: [PATCH 7/9] bootstrap: add `tracing` and `tracing-tree` based tracing setup --- src/bootstrap/src/bin/main.rs | 37 ++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/bootstrap/src/bin/main.rs b/src/bootstrap/src/bin/main.rs index ee813de1c9e26..b65527741952e 100644 --- a/src/bootstrap/src/bin/main.rs +++ b/src/bootstrap/src/bin/main.rs @@ -15,8 +15,18 @@ use bootstrap::{ human_readable_changes, t, }; use build_helper::ci::CiEnv; - +#[cfg(feature = "tracing")] +use tracing::*; +#[cfg(feature = "tracing")] +use tracing_subscriber::EnvFilter; +#[cfg(feature = "tracing")] +use tracing_subscriber::prelude::*; + +#[cfg_attr(feature = "tracing", instrument(level = "trace", name = "main"))] fn main() { + #[cfg(feature = "tracing")] + setup_tracing(); + let args = env::args().skip(1).collect::>(); if Flags::try_parse_verbose_help(&args) { @@ -187,3 +197,28 @@ fn check_version(config: &Config) -> Option { Some(msg) } + +// # Note on `tracing` usage in bootstrap +// +// Due to the conditional compilation via the `tracing` cargo feature, this means that `tracing` +// usages in bootstrap need to be also gated behind the `tracing` feature: +// +// - `tracing` macros (like `trace!`) and anything from `tracing`, `tracing_subscriber` and +// `tracing-tree` will need to be gated by `#[cfg(feature = "tracing")]`. +// - `tracing`'s `#[instrument(..)]` macro will need to be gated like `#![cfg_attr(feature = +// "tracing", instrument(..))]`. +#[cfg(feature = "tracing")] +fn setup_tracing() { + let filter = EnvFilter::from_env("BOOTSTRAP_TRACING"); + let layer = tracing_tree::HierarchicalLayer::default() + .with_writer(std::io::stderr) + .with_ansi(true) + .with_targets(true) + .with_bracketed_fields(true) + .with_indent_amount(2) + .with_indent_lines(true); + let subscriber = tracing_subscriber::registry().with(filter).with(layer); + + tracing::subscriber::set_global_default(subscriber).unwrap(); + trace!("tracing subscriber setup"); +} From a4b9aa3e6e46bdf0674b64940eaf89498fa46223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:43:06 +0800 Subject: [PATCH 8/9] bootstrap.py: build bootstrap binary with `--features=tracing` if `BOOTSTRAP_TRACING` env var is set --- src/bootstrap/bootstrap.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 89415afbe3bc4..76ee40c6f45fe 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -1129,6 +1129,10 @@ def build_bootstrap_cmd(self, env): "-Zroot-dir=" + self.rust_root, ] args.extend("--verbose" for _ in range(self.verbose)) + + if "BOOTSTRAP_TRACING" in env: + args.append("--features=tracing") + if self.use_locked_deps: args.append("--locked") if self.use_vendored_sources: From 3ae724e6a0bb0dd98ff280494f8004b52e9f46c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:41:34 +0800 Subject: [PATCH 9/9] rustc-dev-guide: document `BOOTSTRAP_TRACING` and bootstrap `tracing` setup --- src/doc/rustc-dev-guide/src/SUMMARY.md | 1 + .../bootstrapping/debugging-bootstrap.md | 100 ++++++++++++++++++ .../tracing-output-example.png | Bin 0 -> 140711 bytes .../src/building/bootstrapping/intro.md | 3 + 4 files changed, 104 insertions(+) create mode 100644 src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap.md create mode 100644 src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap/tracing-output-example.png diff --git a/src/doc/rustc-dev-guide/src/SUMMARY.md b/src/doc/rustc-dev-guide/src/SUMMARY.md index a8fddbc7562d5..91c4aeacbd749 100644 --- a/src/doc/rustc-dev-guide/src/SUMMARY.md +++ b/src/doc/rustc-dev-guide/src/SUMMARY.md @@ -75,6 +75,7 @@ - [Prologue](./building/bootstrapping/intro.md) - [What Bootstrapping does](./building/bootstrapping/what-bootstrapping-does.md) - [How Bootstrap does it](./building/bootstrapping/how-bootstrap-does-it.md) +- [Debugging bootstrap](./building/bootstrapping/debugging-bootstrap.md) # High-level Compiler Architecture diff --git a/src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap.md b/src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap.md new file mode 100644 index 0000000000000..972b4a8fb0e62 --- /dev/null +++ b/src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap.md @@ -0,0 +1,100 @@ +# Debugging bootstrap + +> FIXME: this page could be expanded + +## `tracing` in bootstrap + +Bootstrap has conditional [`tracing`][tracing] setup to provide structured logging. + +[tracing]: https://docs.rs/tracing/0.1.41/tracing/index.html + +### Enabling `tracing` output + +Bootstrap will conditionally enable `tracing` output if the `BOOTSTRAP_TRACING` env var is set. + +Example usage: + +```bash +$ BOOTSTRAP_TRACING=TRACE ./x build library --stage 1 +``` + +Example output[^experimental]: + +![Example bootstrap tracing output](./debugging-bootstrap/tracing-output-example.png) + +[^experimental]: This shows what's *possible* with the infra in an experimental implementation. + +The env var `BOOTSTRAP_TRACING` accepts a [`tracing` env-filter][tracing-env-filter]. The `TRACE` filter will enable *all* `trace` level or less verbose level tracing output. + +[tracing-env-filter]: https://docs.rs/tracing-subscriber/0.3.19/tracing_subscriber/filter/struct.EnvFilter.html + +### Using `tracing` in bootstrap + +Both `tracing::*` macros and the `tracing::instrument` proc-macro attribute need to be gated behind `tracing` feature. Examples: + +```rs +#[cfg(feature = "tracing")] +use tracing::{instrument, trace}; + +struct Foo; + +impl Step for Foo { + type Output = (); + + #[cfg_attr(feature = "tracing", instrument(level = "trace", name = "Foo::should_run", skip_all))] + fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { + #[cfg(feature = "tracing")] + trace!(?run, "entered Foo::should_run"); + + todo!() + } + + #[cfg_attr( + feature = "tracing", + instrument( + level = "trace", + name = "Foo::run", + skip_all, + fields(compiler = ?builder.compiler), + ), + )] + fn run(self, builder: &Builder<'_>) -> Self::Output { + #[cfg(feature = "tracing")] + trace!(?run, "entered Foo::run"); + + todo!() + } +} +``` + +For `#[instrument]`, it's recommended to: + +- Gate it behind `trace` level for fine-granularity, possibly `debug` level for core functions. +- Explicitly pick an instrumentation name via `name = ".."` to distinguish between e.g. `run` of different steps. +- Take care to not cause diverging behavior via tracing, e.g. building extra things only when tracing infra is enabled. + +### Enabling `tracing` bootstrap feature in rust-analyzer + +You can adjust your `settings.json`'s `rust-analyzer.check.overrideCommand` and `rust-analyzer.cargo.buildScripts.overrideCommand` if you want to also enable `logging` cargo feature by default in your editor. This is mostly useful if you want proper r-a completions and such when working on bootstrap itself. + +```json +"rust-analyzer.check.overrideCommand": [ + "BOOTSTRAP_TRACING=1", // <- BOOTSTRAP_TRACING=1 won't enable tracing filter, but it will activate bootstrap's `tracing` feature + "python3", + "x.py", + "check", + "--json-output", + "--build-dir=build-rust-analyzer" +], +``` + +```json +"rust-analyzer.cargo.buildScripts.overrideCommand": [ + "BOOTSTRAP_TRACING=1", // <- note this + "python3", + "x.py", + "check", + "--json-output", + "--build-dir=build-rust-analyzer" +], +``` diff --git a/src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap/tracing-output-example.png b/src/doc/rustc-dev-guide/src/building/bootstrapping/debugging-bootstrap/tracing-output-example.png new file mode 100644 index 0000000000000000000000000000000000000000..745aec50d4a36563fa2701a3647506b29576518a GIT binary patch literal 140711 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

(^WK44=cvB_&R#yN?@avo_z#Y8bN?d# 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

z zYv&>>FSJ&${vK%yJ2xaYB>##hR98b!tEdLp)zVQqDI9DsP2U2|P2m^=mW4`wGptfd zv^Ds9RWyWae><_0-kkbjQpY4VzOxCQlSf=nysPmn#B#zZaLN__k!~P8=0yHv4T+%( zUASDcF-&!V3jGn24>`r9K|N)`#I+RpF3SfHE*}(=Z_CST0SYVm2t|0Ny*~^6Gqg>x z|2LEV^~$B`u8Nf~>i*|gY?+E`G&qvk!bB_!2!m0ES^xF#Z9d6m?E*4V&-fA&WJ)i+C7 zp||RFoaCDm1}h{}(ZS|UDZ_Is`D{DlODG#Lo^cqK50$sFM}BeT`}K#aLbVBYEad-| zqX4ksEtPv28u~-hr7%__AG`Wj{Vyc_XlI@NU&%hcd?y?Ewf<6z2ipDrrw4X_*d_v5 z`E>}J*>Q>$9XpG25L((mJ$AJtOckmH3PJ4()ikd{HI1wXUsnh(q9DvuxQvge3}|MQ z-k|z->0#1;|H%mXYqoOrBKr6Dzy3njU#n-gAJrs5=DMnpOxcumj*>3nw8#uw4#`w5 zb8D4K$#Fvv5ig1ybD9H1sJm7aQ>!pW5n?Gn@?pl@f9Q&0H?2H_rgIP`-4>xSd#k@N zk6Rf;0IiRtl)rtiUp|eO59gIXq`y7Gezt5XxMQ{Fjq#q!DIr7hX^ea`>Wu9FI6e)^ zzp}IQWJrG+)Bh!Yg6&vy&enEzww%r}&^+f+IS%bS3%jYx6MqnH9^dPL;x!kXtYqx+ zDoQtY6~ZS)3Z;oK{~MF%v4H;F`0{ctQ_VIS{s`zis-P1)SO7Uj3@EZYR{?qFpZRX( z59{A6U$fBK@^K;gi|PN4`ajJ@;lC~)C}N6=g${2P#bjKLbrtu6;9ec*;G=6*Ck3bH zrwJk`Inhau#=t@=J~v@Fh6s~AVKK32JbSCtb3S1ce@eZ3#GN$rVqv#{e0qQ7cP4bd zGW}_c{@5e`9QaqD691}`L+5nNljK|!+zR{1b#7TSp+t4Cn6ZB?@_g&{8sGLdn+IRFTa+L4f&2RrtD#a^UKaF$E`90R@XOt z=cB<3$O1~)m4cj*vQSPV`~=t{+rYY*ate;nv|#a-s~^J37i4pGWe(_%jw-yN>z@Y{ z{&I|b+iIo|A8M`n0T$SeA!R6O2^mHvgRG|1lco^m>_u=| z7)m`9E)^j`F{ui>qKShUZ`sU{a;g&651D5Fm-utVZ;trqCeYpAf-z@W-&H-KSU^6! zm-6vHD}Uwp@45c(K)!4t>Fi7j4r<*R{+1;AK|&Z}4Kd+1fI2VqyR?@ig$9JQELIoa zASfCfzR8rXv|S6$$#>a@juw({2}ywk zhPZs^j%BTkk-vW6-%U>!mp?nI-($Hw<6Hi8I%O%-(^~$I)1$0EzuXU1avwr1KlrNK zyvhrE5ZNhq&VJtTnt zCeB!|P3OqZEU<8ZwUg{p5__s=XTd zXD6qn{wthS@t`Ar?bgn>ZT$oF?qNlyWfouhV`aCgz3}d?y*PZ!{-@%Yj{fr;c%!br zI1C&qJdE9NVm}fGBtVh&V6h_t_TP(+`Wu zzy6ACDC<9aUh2Gc2F7kR6tJm)b+R-UO<8nR;3oId1z zU}M8b^I^~6?fT!uT4Ps#8rS~=@*zf*Xka30dhG_mhKIZz)t0=e9z7u}CXt4%2ZpD|pWIW< z9#ik2VCyaYIgnCowjQE6(&Q7Ovh_A2TMsxj5Di-|e86nI-fj% zVR--A&&sA@J~sQFKlk5~eCv)+>Emar|Ln!|@H_o>Hl0q7Xm-M%u>Rq_oQo*!NXxz< z|D!&dPQTOk;p4OE&-^(x*mscGcei8zb0!v3?9d4VkmJ-LQ|~06+feTwSn8dS1C=W% zapy65?pezs&UO8%y8iul8MMYE?8?Wunv$ElO?}7~7w>p|;tW{aUydJ#Tf_n$o1Z)Zm?j9#q&%zyq8!?#ED{fpNpr!;%x zk5`@Ly?o2i1N4ER)iL{ybB6XX<;J2i_YgDnjt8`odS}>u zV5oP>$`dL3oSzhVLeJ(7PGhhCd~XE|PVNQ=$8vC>WGZ<|XiP=-w$3p)p{|SO3{GSQ zCjc1KKgCCsPmX3sA(&v~Nf`_-{1aqi9{TYkup6!fo?gg@-3+KzE#Pv|QbBDIebf4^qHP?-I3-fkS9t{pUj!OwU7tMCT78L&06!y*}g`s*WM z%+l2&fob|KOBqP=VNNhONNB7CM$8LFFYsZg0k&$AwS2)lw~_&({wZI>IME@E!qD<} zN}0on{l_aCjBE&fMb2MWwjRGn8Bh>@!(+_Sm&F#kx1Oti35P5(9}g(9@{D{T^0B=_ z$<_-NydAlG)ilJ9Mc4e3`S`iK=T(lsyTRMmdKfvt-}QL>Z|2TsH;&_o<6Vw~KqdrK zhcaxEAdt|9_!vdXJpx}Kgp+&ZLy)7CORhnX2M~|TfPi@<4FTfO$V-Sv3fOmX*H?G- z$IR|>DLFbA>zvwNndx~r;xeIZk;A1}21=|dX(0Uu3PBk{d-zO68lcr;jf~w@1nBrK;}=Mz2@Q;;{MSZkOzNH7yZWx zQ6Y#%VN{`LR3W{B?km8*ip=5@E}z-c`Sp}v+4TO;#TQ_ePlEnnS%(t*HlJYSL>S_| zZSxsGf_ZFGWt&gnctW?$Xx0a%R8-sCHnBbX4Mdz~}1>Sbxh$#cq-v9oTq} zehv2hH7nkpA+4#yFL+JvkrIG(Rqro}S!eyvYx$JI$J{@q-aY&+ueKoSmQhep>q$`M^)t*FVFjRm3O=Ul_P?&SAz+QgUX`N&)lNbHuQ;H-R(*ACzC~MCvwFf z!E7RTm`H{yk=(Q&Lu`p+FwXQB0&B}a=ebm}CwvZK4NL?>@<|*iAQUo>_aqdzt86`p z&p{lt=#s{ z{O0Xx1Tll#xC9;9usxw1jfd}1?Fn=KDcQ>7bo7mkCuy9wQO4Mw=s%?LYo+8_ zJmO$EdgQme|1LNSU9NVmv{XZ2Ekr%7{?QPL)8Bvq+YjNe8bVHQTxdi;DTDF^+CGPE z?f3QNekmxx*rmhZUBj_H;&v%jPra1b5XOh!K8<25N+co{n4a&;FV#OWoez%bRYB)e zDM0app#F)+d%zb}R^pKf&9DM6HQ^_lo$#%G_g`5mWN~{3+?vH_ERQ z|HQ;tu}JYuh0?|S_np{iGztn4_K=BxQCA=BEIzdBeVZu6+V{VHqHuBmHy#yE=*!He zuU)P6x$FTYMGLahX}s4icDvDZd+n}QI~%poLRS95O#3?`#_Wi9(3@gUnN7|!80Cv6 zs{#1pPt3uiv0qUClx9B^kEqysCmgwme}Ur@W9tbyS&nK<9h9y2$KszL9;buHC&t!8 zW36z!9Dec7r-0d>(B@Bo94{a{Ad8_H5?fo``*7+qOb2In^zlu^Xmh4)Pw+GTn~Z=k~<0J^lNyAk@3)sdu(J21WM1<{dr0jzYTQ zc^E3S?>p+fU%d=TMJRbnt~fZG@+KSJ|Hh|DRIVEdu3f5Leo$8S%Ql1o981SNe{-8@ zK%6QS?@QGuH}e3mZ<~4Oz*D#{j;sv1{TNne5GHaEXmiRS^QV%30?8ragUr?oz-+xp zsn@s$TTgw=17hVNw)rPuwjMHDFM77#6K3m$V{W#^%m1bMC*Z&vWr>zlWp{b?gT@s0 z&aRek%&iuW$*iWx~o36~)SNr4qllU#(1BnQG znUV*NeP{j3_GHvMdQyyf$8`>wdiPp(mV&^fyF$Ht1q5z09UaQ|yx z6D$k|u`T|CIIG``Iwi!26_7#Qq14Rkl*zKf97Ev10tAaL=+0@llZP<;suf%J^8XPd0a;^%2WhvF`$vNxV|_Yi8fk z{or^xe}lZmF2I<2XRHb$^`Ub1n0g094g^-w9T6=au^c|U+una)^#?WzgcWh~(CcHh z9xqoLh(4l=*fRDXxMD%$cM^8sz=V<^6ePjsk@qu{atG9fgD|^wp?VtzxCE~L%N4j; z-y9U?@gCxQl3@J$iT?GI*fMq(3pgH^reU3-KQl9Dzi5csYA$&9F|G-G* ztS_(s0w{Lns{UmTLT48Ker-<>bKq>-`;YVeABS_Vp?;Gr?q2`a{*a z$=G`LGjM;{x>anK2&zR#> z#yUoiPs{qyp#b#B&+Sk4gj?vN>F-gUMbbZyh3eJlL)HIkPobJ?fNb10S+Owcf3Ujp z)P9*i-S+svd$|AO_Q#q2@AR?1|84s#=jJOG*1+dYR!nRiZg1Kz;dJO@Hmi&235*3TyYkzxwg+{qH#Q9e%NzS;rc`7bfs~HsSO5y%;L|p5k0;eNcT{1dO%>QS3D1|7zcz zw*Uq=dCXn1Rv(&0AH_U5HbV$7&Z^gSgv<=wULUs9$0o`65%kC5vrpIlpIbl9>9_T8 zV}1XM_4RlWhwunLs?gO<(7+>Lg}(NUX2tq?KEqq>;b(3?{J-~qwjh}4e=cDF4KGApnXX%*;b3FwvR-PuKa`C+8-1Is z*|t#K{!o(3)sZ692vA*b7;=csMFGM@%56B_YYum_TpYwHAV>eU(#Ki-safup`fz9c zySE>fnlxP;E@pJ{8;_JX8SkNhe2W@K%UzS1LJPK3Oaln?`zZFe`v=eRbXDD zhEBiUS15!WW5qcxA=WeZnx(f?M(Y))BY~cS-A?-t1*#}n0QlnYI;r9KgqubFPcld=n~1E+}C71`&YN3@3?%u zz6H|L*ZVhvu}*IP{*9Gw;&c=CcoFdJ)ip8kw(kEnN3>f1KKg%Seb`VR-L-7=;bQ{P zViM8T2#Rk49T;{o85fg?8k5NS*T)vh1hc|s;8{T|F5gRUH`ACkL&5G7=6c}@$1|rOzOjOr0Z$s{%I~0UpcJ@BvWc{bpJP3J7Amv(2I%l4)9CU zuVeCx4{KTd^mKdupf5wMi>sc#5cR3YXj0H)@|jDN1NfM{zCI+kcV4RH2sge~P|qXg z6nI;DzJhR6+XN;qe9m%l<|~d2vG_oEdWOXpYZf0!Mik!6xlo$``OHmwj;LV8;sa&z zG39RqM1`^n0XY{6Uvo5_WG1aJB~PAfq35j_E}!NtnfBk_qvOKj6Q&>MNTD2;_S0{V zP>FwXM~LhPoG*oR<)3rk9dKvvjqU$>cc_IVH-2aw+)A2SzrS4XBhf2Qh1bWHyTHw2 zG}H%E)hG_2!=`={Ne*5=WtHBLchwV-JlbFIMxrM~d+tf+jw#}LDl-G_$AH`~w0OQ6d;JKn< z@!1v%RqyrpX1>Q@iNd)|tV-p4+4ld)UIt?Eu~(wI4l%_r{-|{VWPAcLAzUx^1Tl|! zd}Rh#DUq+i#5-^Q4-6i2_Ka{5n0&0hTfljY3$*lMu0GDw*Jscyn4qmMPHsu_u<^2P zJO>{etu;j5d{t3OQ3D5+7?a%Op$6#sOQWB$4sGT^-hxxMC6Fb-H5#S5PhrJ&f85O{ zn*s(?Ld2DBg|vZUe|9!Z_5_&~EBW#E9zaxrrtp(!Ox#g>LS_N0AynR5@_GuSm<`yr zs67e!i>(J4B*t`Cu=BkG;(S%@Uq5)x>@ZMEREBI^q2nS!yHh&f({3RU3uXpVsy9H^ zNuSKb8`=L=S~OOHz3y7Q`!>P-AJFgPv|52(6X>%qJmI`bGO*R>vb!pjs%z(vr4%vT zGc5%;gWD1lCWXO?LB^?x(?iCvfuR@shmG|knjP^JDkCPnAm#aO&5PTe@py(AUp~>Rn|}VWCxN;@t1G#TyA|Yk@S!# zu^0}z_IK7pEHKOY;`yF!|N1fWjqd)e^w`d-zVF5%TtAkz7ry{y{d5$~_@w*DU+f1< zNMa%%F}x<~fA_$)Go3Gdn020yc*S} z*wC#avKzdi^=AMIXOB#dJ%n6!a9e21R8vFPVQ@|Sdt6gv3vN8({CU#f2Cei#$Mw6y z4#ULaWB=amS13%pBUEDE>sOGD6kpukeHUV&)oea{-nEmd5L$zSZAIHJ8S{LF)IA6E z2D{DNKb`NHxhKsFC+vU8lPlI^gLle9Sk0X-Pam`6U_c+2(1%6(7@)3O==Ga*3qi|k z^!1_qp-=`ch11k^3$ynRldmI9DTnJcR_U5xoG~?Dbk^K|imRE$r$6&nQM^)Ed@*Eu z3Kffw>BGdQ3UgH&JNKxhe z0FwHfN|EOAF|qh|vBXEv(q{X?CR!FB_E>zz?IZCK>HKZJI>%Y)Yk>7dg;{)9vG^X* zEK%wln){Qh4stEQANElwe7E^i;vKWtUc3R|$Oyg~+V}|mZK{Z< zVG#7mifXCa|M-@FdW%!`zn>DhNfhE78@m*JJ5Q=Aw_+nI;ez@oGdCvcaakEHWD_LY zg2VKLRFvjv{N$W zS_j)N&kQm80@#P-Ja7EB{LQzM_P^;tV?guY_?M+0T9vVTZ~STWVQ&A2cKf07>h&k0 z!8j3J)CDL-J%uHzzC4Zqy?L_BlFA+vyEp{zSuFNcFNUGL0S=kcCUs{jeA@-}TZ{4j z9LVdp3eI7W71Dfts>+spMgKTF?B;YYtsHdXZtJbnoi&D*Ukw*aQ#10 z9|zjM@cC=s{{j8{dd~$9t$rdfVXvBQYZGG8OAWEAs|$z&K2_VnRMlxJ{kVia^hYa& zwOWiv;^xiMe|=mpDMKO zVa)x9#`8BAKw(yaSk;HZ%2R`lQF6{dEcS#$dw!`MP+nIsm457J$&JykB4o~~4{oL2 z3+Mc}?RWYU-v5Lo#=89ysp|S4CvSf$2jA%bhW_IF?zj^Yx*jA0V%)`t@^LuLBsGr-J!m zRz_RQh3hcol!W=0nm|8JsgFHW&$9Y!_or;79GV;b=&JETNeNZ7=%w>5?)m!!BF^>s6AbNn-*3>xPBWUF1o z*bzn_|1U)nHm?2m8I=L#_#~tMo0+^bW`F7FOW8m^@NBnm?03zozu*4d2yvio`S`Ql z@$Db(|Hb;}?tiE_{$Uw?gvs<#sf4_!z67y-I6OapCyTU2S~( z2lNMmUN3t8d-~$$%keqNXl=!DUyi#0wm9ohfG z?H|xbaN9=H>SHR01kKt`;A%VJhiU(y{<+)lgCK(+|8ji|3Aly1F9T?)gk(=9WVrkB zwEL6qyz2}I;+?a9V!Zwn{e15f?R>9x=Um+^@mQ-{OX-*8pVQB`DlufOJ4sTaBun1u zQ~RmbX47Z;H9K1y?brF9Av}pa&2eYZZ+(ykT6YqhxBq+XkItReb7!^vWf#By%e(Wi z_2f^g-)Mio|EF!gb!UnrL<2Gg{4P+x9O|=DJ%AEU{J#6oop*4(v#a-KofX~b#;CK- zqzsceGx~NdmoG|Gy8O)KJuHmA9nB|%!swIlLe1!dD4(p-%`Lmph+@!pICLF2^FA~B z^t;^tFK4saZ{ymG@}>UzH>!+&^V#h8BuRzV*SKotEj~w%-*`6r=DwSNf6kTH={jFg z;q~qus<6KCU-qu0H;&^7Pf4Mehiz2xA<~R(h^vI;QMBcpMNmjCK9FJz_>hB01WO&Y z1R`Fg{TH;LgO4;2KshFX0UK~`1OXm}T%tRn-;l2A?&<2Dp4pw_Y%id3tN(n24n6aCR;_$fbEG5h%Uc8$HLf_x#5HJ z@a%9#YLl+>IVZ5Zd=-v9NI3d-gnw@bA#n8FK@^@nzW0vi9djshvJq$QZ|{KkCvaz^ z+<7d^(I@iXJY4VZ({lgF*v;^`e>9+*>-=f_6DNx1a=g*+AFSdMm*brI+)xPsiRPsK zZw}Y`&q(UfP(G#HjWOh^eS+8P;n9;m4flEU$hePN>7Oe4&nyZFi%7PQox1&X0>oTI z+s#}QK2#4yb%I|nKXfL4V**GlDo?G>x_}zZR`O9}7*v@5&&59x`=_(w%s8pnjQ)wX zr--8u9Y-I+{8q8B1;xU>LOA+3L~y5A*tB)fp5CRI&vuz;On8huN1wr;=kvT6*^_&| zFq#*3AN#h91C7T5d*+weru-(ApKeI^#(8ds1Dah0Gc;RzEcQe$Te^A1!83Ybe93JZ zKBT1$J*c2-4<#1CBRXGaz*aJ6Y-Qkw=6n^0kIlVa9S46hxWj$Cv0-sr=^s-4SL*0t zU+v_2;`VRG&ylrKnWqQdI{visCpwMs3;Rc&idWAU^Ayw0Kl%S|d8|uQ>!b5Gm;b

6}qo^ITA1&VX=jlBM5|8cemNQ{)P+ANPpYnXnJjdKHH&9v1%~dc)38vg-AUfDD93q;}8yl_kA3AAh z9RH`?GmvsCQ?!3MQ!n2<&`B4{**=zB-{E9#XZSh!tN4lh?eU?RVqHz>D|_9key@9t zJ+1mK;mrKJkIv4FKlZ@mjy^B{vW+endxGIZG`6yMY{WA1 zd;i3jKQ*>7e9}K$Ggc-M3^g^LU4O*xPJEiJW2|as&5Zp_Il3RWG$_Q$v0*y@^bFD3 z6WCE-8~sO9^C%z;`YV+9xg2Iww7uQM|KM3pDZRw)xz1+uKbj3B|p!fKt^-!?Y=gk8>z|%-$2NS5Gwg@B+;w`h)}GM#C%5Q+z?bYu&*DN0{ZmE%(cBp; zb7#!0sZ8GfRs1MHI-<@4q+$o23^m5b4)CcNzccwE#ZMM+s=pGlm;I6Eay>VsKa^kR z;t`+xNMF3+mE8BfCwim(6ZrWPT8=(5i?VA@!qF!j=R&7v6k^Ow=1;;i%N%{~lkLfI z^ckBdy#GOF=krW`_O8f3#T@5iPf9>%9c(wlhdlbawhv3I)^cS2#Ifyt1HvAR-2AB| zYcwTa-DB^9cK*bpLy-9sezk>RC&ki0f*PR4d;EY;t$&iwqJ{oR;VTBLrXCqat(0O* z{L&H%kB@o>Fy?YqM{i@Y9|5P9zaGD9`7ylz(f)GCJ|VDdCJ!#Z_0%-YPVBvZl3>K* zIlT8HEuO{WJ&CQ!o9;L%EzhNm$nkgQpV*$}9Y-HZehnA9TD*36#gJMkk0)^fg43=5R7WFE+ITw3EJcBa> zU@VFE8zILd-Z+zX?0JnGecrt#hwt|Dpw6h zpXKz!Z6&|NBX0JOo;)I1U8TA8!{b|A(tkuZqDPoe z*ZTvt{`Az~u5b;&&r| zo>tc7qsD4vo%FdWtlwxM_5{f!?$WqEv8ONDC0*{|B}d9-Kdkfe%%1177tSbNKF!ew z;&qs#&)8GM(I@z_Kf>N?EUzHT(WllVjMe^Lp3fY8RN?4z^7e5$)gR2 z+eZIX(SNehsPgK>W1nf;-_Ob0Z8Qqui*E31*QDw& zV6STIKxJH1?k`g72VV}F)f%!6nDxSIu?c>Z=qga7K{Z)&XhBe$ONgq(fH*?_kd)4^ zq#zK~j2i6Bdib=G+|sJf5A=&sbDL56hY=5mUnWf7s;S#Qm47V#yTk4o{dXR#76RWAe(geJEB$whkM;U5-ZA+h z9{gD*^-+Pu5q#IZrqF)n&t$fT~EkDNF6ukVHX~%NS z_p0R2;dd*4@O|ai%z1Z=QWs-dP4B@)<)5OyKR+94UQz?7OiRbZr;q}m3w#XGo3Zh; z@RJ|Rh1v2bsW^cq*MGl{paz!kU#LrYWbszRhFr|V@};-FYM2z zT9=vKpPN+9u{@1|PydVf^iJYq5}_-6kxfIZ-8EExO~f+Rjr<9I_ww5?d5}Lk{{+yO zkPG8*VX2m0(pg{}NXqmF!9#X|PyfgNZ@`C&?S#k0jn;?k41Y$CB#i*hW0CC{TBEL@#g%uf{z}5<@uQSV`Wlbc^*Pu5qrou`ltVl z{xkTP<&+UY+uC}3mgw-JBx_Rr%ZB!N!M_UMt4 zYxO^={5kw9kUzZti9JEn00EMgDjjyOycMc%x?ORY-wHo+eyg_C^Z03$#i87Tid5V7 zU(NkmWyOvM!(-xGOFE5yb6NM}3smw$bPeF+3#uQ+$9OJ7bxZwIqW`A;chm%8lJ<}B z5p+-+baoetQyfQoFFV6e#fMBLsVkEo3zca%v+*fTi&)Knqw+sNIVcv^yFzj6Sw20R z@f{Sm9`FutggwilH*yfQv`S&b?pFQEU@EP+S0d5<7;nstQTW|h&(_A&5 z=E(C3zd?ZJ-XgpA1bs3e?I1vMoCyNN$Mh-U zqYLC+RwN}2r5TNX6Qf-p2FBQ)&y+-wBBhU|sXLqAu$^R$O*W3vL-CLsZoP1}so~ZO zJbS`=mvQUyxmr5gq`39KMsB@xW(uPdxQbhk&jgKAqjx%X_g*?)g4l>M69;*L_F&>eo$YqQ(Gam3sSmG`+OtNzF)xrsr^t;gxKxb?{w;pQ} zb5&kj;ntHUAo4elznYVahO6?5Q0R{E_@UH@N1}p|r-ie(=X|P(HOXDwv{ljQeZB|M zr-eP6_$$}KmG|(xz|oBtcl3g1FEr9w{wkAy;B3so!svw~3V7!1&B9&XdpHZ)1LO^Q z?eU%C{sV}8is;6~4xfR;8))t8!@Y}WB-&=lTZT}*+ zN29~Lv3_y9Jg|UW1b)1a#9j137Ea7#L?2Lc*_@mk`My;Lp)+nh%llzHx1MRDh^Jpb zbXU0bmOPEaXQf!H*jDja2JeH-X-qf4y-C!hDwE&G_;`i% zJO}qH_k`gL2Y0GP=~HmlZ#WA*RngD9J~5*I?oq}16kNr1+rRN>O39sOw4@a%AP@d+ z)&B`T=##K1=bfCYRjD1*aS(o2{KLxM@P(~@P9D68qcqVc^7pPichRRWo*&QIB~;vc zL7z0YUZVBKLT|+Ed?5NnTzRPRiLK}hMI}BmHv}mTaYNvxfxxW?^xJ02k+D37s88x@ zNFV(BO6$|>bSnBpqom5@AKgAYxn5%X^jz2Vj4jN}d3O)<(1R3@a4WATr%$2JSZy@A z|8GnAMs>SE`?p64e`xYxM1RzL`~DC3iIxPCu8}8-bH?Rd-=Pp7_1Y6 zvb}`pW3d&$_UV&ntQ4|5loRTKIFC)$mw)IiJ8@e!88X|@!&>G7;}{2>Q&09gk_H9t zB8Xfo^k6)_5H3DQxQj5D7zqBJzXtmR&OVX1Mq@wN47cuiOzl%5KSv+DK24|78EfS% z+!sveGCED1M}2a}$|`*#MDHWL&iTp1*G=1Bj|yl}gWDprYPxLSzW?=*D-{H=Xj?0p zRzZN>@DDG4Aszw!YK-l63>6f{;JNjf$;)3k=R_f_)9>fLRvNozcdcL_95CQ z=h2bB2VS3A@*h=`pifWeS3u;~4Xa6L$j=LhU(HeJ6IiRYIZQ{7y#L~8`g6nf*SEo@ z6)bZ3HI+VMIXb){ezAgvA}ojCWrgV-6~jO5hJR@J1BfZr;qR5X^-pqDcTJ3_xxVtKi#OGaC{F%s}lK#bJj(_ej<0= zJ##oSd_Sxr_)}+}j%FdBmFrV%cv(Nqc4+@(uQj$@s&v0>UruZbd;=YO%@h2%U)JVF z!>|xp_|@b$t)zf$Hm-wW6N}qP{Hn6U(4yaa6j=3$HJoe381USBymNuy(@4j_t@jml z?Cu&daO-hQkM-&Jt363$fbz8CZ+LvcYc?uAd>NyQ$D(J#d-O+$?**4_a1SHz@1b~H zKE5Y+Ud-sm%kS*dfc1%}CW1`>00cKlL_t(XLzT(ze><8u$p;+Sqj+7=5)|gQ&l6)n zv`2@<2lqJgF_GB*WBc~c+y==583Wyut?&E2^gph^ht`^rhP5$hc@;{}F2=F>yXt;aO2%&m9c zaO*{U!&L!#a5s%&FM6ix8! zsv+->5c%EvdO|zPr!(4RKAk1-L>3BM)33GwpP_~{P; z-6~A2Ng-(=)0RKO*ZQMe<)sSwkivs&Prn0 zrB2Bhg$K8LhkP~xg#8rPfZO5Qa5_5T2OeCT^5FL3XP7uxM4JI>n(M{)=}35f3i4b0 zQP<8t)K8W>*v9uSPCOkgH<7<-f6oI9;*wbG^;)del*HTizist@frnVf0ej@%3I71{ zx5mFQ<;)f26|wbEt8^6yaTPcAgs-jiR-ScJG`3QQb60!}^aE?)qwS#4jc;kKGr{fT zrz}>CRyhCgCdthwcRD7!<@6rTrnft^zulz$3p4nh+8?|N)Uk@kcsv94JpK+RKjWiW zJ7J7@)~i)boAfl)+Q4?O9<-OHLnM^{Ey2OM_)Qsvj3EkjW&*qLQ*lA|f^Q(dRr1rW zrLz1`#P{*{dTx*E`3~*BLVnwizeE3bv_B^J&?`UgY5W~be!(}*TmmZ|T23rzB8+j{ zAVZQs?jFMh5}D2Mv4it2!-tNiC-~S}!on{2uok|3H~H=R;IANJNz*^?+5c}Tzv-&F z+V#NHI%B%jRFlFuGpgwyjgvy*c>bpN(8ABxiQD4Cmh$)E!`|h$ZzliN_#H+mHwvmY z)9)rfwu?JpD=6dfopSq<^iVdEV}IldI+Pxwa|*?2U^o1R`MrdXh_)}u{k!AaH^oPd z4>21R?gk6hY$S)@Onx*ri?Bm!4Ff5SRpFUqDdEC91EC|d79fmX`Rx(k`)dupJuv?N hPX6`#AAUdi@jq|hia418q|5*S002ovPDHLkV1hX=^ko15 literal 0 HcmV?d00001 diff --git a/src/doc/rustc-dev-guide/src/building/bootstrapping/intro.md b/src/doc/rustc-dev-guide/src/building/bootstrapping/intro.md index f829884fb9374..f72918c8377fc 100644 --- a/src/doc/rustc-dev-guide/src/building/bootstrapping/intro.md +++ b/src/doc/rustc-dev-guide/src/building/bootstrapping/intro.md @@ -17,5 +17,8 @@ In this section, we give a high-level overview of [what Bootstrap does](./what-bootstrapping-does.md), followed by a high-level introduction to [how Bootstrap does it](./how-bootstrap-does-it.md). +Additionally, see [debugging bootstrap](./debugging-bootstrap.md) to learn +about debugging methods. + [boot]: https://en.wikipedia.org/wiki/Bootstrapping_(compilers) [ocaml-compiler]: https://github.com/rust-lang/rust/tree/ef75860a0a72f79f97216f8aaa5b388d98da6480/src/boot

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𝔴D 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