Expand description
This module defines the central Config
struct, which aggregates all components
of the bootstrap configuration into a single unit.
It serves as the primary public interface for accessing the bootstrap configuration.
The module coordinates the overall configuration parsing process using logic from parsing.rs
and provides top-level methods such as Config::parse()
for initialization, as well as
utility methods for querying and manipulating the complete configuration state.
Additionally, this module contains the core logic for parsing, validating, and inferring
the final Config
from various raw inputs.
It manages the process of reading command-line arguments, environment variables,
and the bootstrap.toml
file—merging them, applying defaults, and performing
cross-component validation. The main parse_inner
function and its supporting
helpers reside here, transforming raw Toml
data into the structured Config
type.
Re-exports§
pub use crate::core::config::flags::Subcommand;
Structs§
- Config
- Global configuration for the entire build and/or bootstrap.
Enums§
Constants§
- RUSTC_
IF_ UNCHANGED_ ALLOWED_ PATHS - Each path in this list is considered “allowed” in the
download-rustc="if-unchanged"
logic. This means they can be modified and changes to these paths should never trigger a compiler build when “if-unchanged” is set.
Functions§
- bad_
config 🔒 - check_
path_ modifications_ - check_
stage0_ version - check rustc/cargo version is same or lower with 1 apart from the building one
- ci_
llvm_ 🔒root - compute_
src_ 🔒directory - download_
ci_ rustc_ commit - find_
correct_ 🔒section_ for_ field - git_
config - git_
info - has_
changes_ from_ upstream - is_
host_ target - is_
system_ llvm - Returns
true
if this is an external version of LLVM not managed by bootstrap. In particular, we expect llvm sources to be available when this is false. - join_
oxford_ 🔒comma - load_
toml_ 🔒config - Loads bootstrap TOML config and returns the config together with a path from where
it was loaded.
src
is the source root directory, andconfig_path
is an optionally provided path to the config. - parse_
download_ ci_ llvm - postprocess_
toml 🔒 - read_
file_ 🔒by_ commit - Returns the content of the given file at a specific commit.
- submodules_
- update_
submodule 🔒