Skip to content

Commit 088753c

Browse files
authored
Rollup merge of rust-lang#124429 - Enselic:document-builder, r=Mark-Simulacrum
bootstrap: Document `struct Builder` and its fields I'm exploring the code of bootstrap and had a bit of a hard time understanding exactly what `Builder` is for at first. I decided to help document it and its field to help future explorers.
2 parents 62a88c3 + 4e83776 commit 088753c

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/bootstrap/src/core/builder.rs

+21
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,34 @@ use once_cell::sync::Lazy;
3535
#[cfg(test)]
3636
mod tests;
3737

38+
/// Builds and performs different [`Self::kind`]s of stuff and actions, taking
39+
/// into account build configuration from e.g. config.toml.
3840
pub struct Builder<'a> {
41+
/// Build configuration from e.g. config.toml.
3942
pub build: &'a Build,
43+
44+
/// The stage to use. Either implicitly determined based on subcommand, or
45+
/// explicitly specified with `--stage N`. Normally this is the stage we
46+
/// use, but sometimes we want to run steps with a lower stage than this.
4047
pub top_stage: u32,
48+
49+
/// What to build or what action to perform.
4150
pub kind: Kind,
51+
52+
/// A cache of outputs of [`Step`]s so we can avoid running steps we already
53+
/// ran.
4254
cache: Cache,
55+
56+
/// A stack of [`Step`]s to run before we can run this builder. The output
57+
/// of steps is cached in [`Self::cache`].
4358
stack: RefCell<Vec<Box<dyn Any>>>,
59+
60+
/// The total amount of time we spent running [`Step`]s in [`Self::stack`].
4461
time_spent_on_dependencies: Cell<Duration>,
62+
63+
/// The paths passed on the command line. Used by steps to figure out what
64+
/// to do. For example: with `./x check foo bar` we get `paths=["foo",
65+
/// "bar"]`.
4566
pub paths: Vec<PathBuf>,
4667
}
4768

src/bootstrap/src/core/config/config.rs

+2
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,8 @@ pub struct Config {
345345
#[cfg(test)]
346346
pub initial_rustfmt: RefCell<RustfmtState>,
347347

348+
/// The paths to work with. For example: with `./x check foo bar` we get
349+
/// `paths=["foo", "bar"]`.
348350
pub paths: Vec<PathBuf>,
349351
}
350352

0 commit comments

Comments
 (0)