Expand description
Serialized configuration of a build.
This module implements parsing config.toml
configuration files to tweak
how the build runs.
Re-exports§
pub use crate::core::config::flags::Subcommand;
Macros§
- check_
ci_ πllvm - define_
config π
Structs§
- Build πTOML representation of various global build decisions.
- Change
IdWrapper πSince we use#[serde(deny_unknown_fields)]
onTomlConfig
, we need a wrapper type for the βchange-idβ field to parse it even if other fields are invalid. This ensures that if deserialization fails due to other fields, we can still provide the changelogs to allow developers to potentially find the reason for the failure in the logs.. - Global configuration for the entire build and/or bootstrap.
- Dist π
- Install πTOML representation of various global install decisions.
- Llvm πTOML representation of how the LLVM build is configured.
- Optimize
Visitor π - Rust πTOML representation of how the Rust build is configured.
- Per-target configuration stored in the global configuration structure.
- Newtype over
Vec<TargetSelection>
so we can implement custom parsing logic - Toml
Config πStructure of theconfig.toml
file that configuration is read from. - Toml
Target πTOML representation of how each build target is configured.
Enums§
- LLD in bootstrap works like this:
- Replace
Opt πDescribes how to handle conflicts in merging twoTomlConfig
- LTO mode used for compiling rustc itself.
- String
OrInt π
Constants§
- This file is embedded in the overlay directory of the tarball sources. It is useful in scenarios where developers want to see how the tarball sources were generated.
- 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.
Traits§
- Merge π
Functions§
- Compares the current
Llvm
options against those in the CI LLVM builder and detects any incompatible options. It does this by destructuring theLlvm
instance to make sure everyLlvm
field is covered and not missing. - Compares the current Rust options against those in the CI rustc builder and detects any incompatible options. It does this by destructuring the
Rust
instance to make sure everyRust
field is covered and not missing. - set π
- threads_
from_ πconfig