summary refs log tree commit diff
path: root/config.toml.example
AgeCommit message (Collapse)AuthorLines
2020-09-23Adjust support expectations for downloaded LLVMsMark Rousskov-3/+3
2020-09-21Add a changelog for x.pyJoshua Nelson-0/+6
- Add a changelog and instructions for updating it - Use `changelog-seen` in `config.toml` and `VERSION` in bootstrap to determine whether the changelog has been read - Nag people if they haven't read the x.py changelog + Print message twice to make sure it's seen - Give different error messages depending on whether the version needs to be updated or added
2020-09-20Add sample defaults for config.tomlJoshua Nelson-0/+10
- Allow including defaults in `src/bootstrap/defaults` using `profile = "..."` - Add default config files - Combine config files using the merge dependency. - Add comments to default config files - Add a README asking to open an issue if the defaults are bad - Give a loud error if trying to merge `.target`, since it's not currently supported - Use an exhaustive match - Use `<none>` in config.toml.example to avoid confusion - Fix bugs in `Merge` derives Previously, it would completely ignore the profile defaults if there were any settings in `config.toml`. I sent an email to the `merge` maintainer asking them to make the behavior in this commit the default. This introduces a new dependency on `merge` that hasn't yet been vetted. I want to improve the output when `include = "x"` isn't found: ``` thread 'main' panicked at 'fs::read_to_string(&file) failed with No such file or directory (os error 2) ("configuration file did not exist")', src/bootstrap/config.rs:522:28 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failed to run: /home/joshua/rustc/build/bootstrap/debug/bootstrap test tidy Build completed unsuccessfully in 0:00:00 ``` However that seems like it could be fixed in a follow-up.
2020-09-16Auto merge of #76625 - jyn514:default-stages, r=Mark-Simulacrumbors-0/+17
Make the default stage for x.py configurable This also allows configuring each sub-command individually. Possibly #76617 should land before this? I don't feel strongly either way, I don't mind waiting. Closes https://github.com/rust-lang/rust/issues/76165. r? `@Mark-Simulacrum`
2020-09-15Make the default stage for x.py configurableJoshua Nelson-0/+17
This allows configuring the default stage for each sub-command individually. - Normalize the stage as early as possible, so there's no confusion about which to use. - Don't add an explicit `stage` option in config.toml This offers no more flexibility than `*_stage` and makes it confusing which takes precedence. - Always give `--stage N` precedence over config.toml - Fix bootstrap tests This changes the tests to go through `Config::parse` so that they test the actual defaults, not the dummy ones provided by `default_opts`. To make this workable (and independent of the environment), it does not read `config.toml` for tests.
2020-09-13Rollup merge of #76441 - jyn514:parallel, r=jonas-schievinkJonas Schievink-0/+1
Note that parallel-compiler = true causes tests to fail Mentioning #75760.
2020-09-13Auto merge of #76588 - guswynn:debug_logging, r=jyn514,Mark-Simulacrumbors-2/+8
Add a dedicated debug-logging option to config.toml `@Mark-Simulacrum` and I were talking in zulip and we found that turning on debug/trace logging in rustc is fairly confusing, as it effectively depends on debug-assertions and is not documented as such. `@Mark-Simulacrum` mentioned that we should probably have a separate option for logging anyways. this diff adds that, having the option follow debug-assertions (so everyone's existing config.toml should be fine) and if the option is false to test I ran ./x.py test <something> twice, once with `debug-logging = false` and once with `debug-logging = true` and made sure i only saw trace's when it was true
2020-09-12Download LLVM from CI to bootstrapMark Rousskov-0/+15
2020-09-11comments + add max_level_info so false works with debug_assertions onGus Wynn-3/+3
2020-09-11Stop implicitly appending triples to config.toml hosts and targetsMark Rousskov-8/+7
Previously, the CLI --target/--host definitions and configured options differed in their effect: when setting these on the CLI, only the passed triples would be compiled for, while in config.toml we would also compile for the build triple and any host triples. This is needlessly confusing; users expect --target and --host to be identical to editing the configuration file. The new behavior is to respect --host and --target when passed as the *only* configured triples (no triples are implicitly added). The default for --host is the build triple, and the default for --target is the host triple(s), either configured or the default build triple.
2020-09-10add debug-logging to config.tomlGus Wynn-0/+6
2020-09-10Auto merge of #76378 - petrochenkov:lldtest, r=Mark-Simulacrumbors-1/+1
rustbuild: Build tests with LLD if `use-lld = true` was passed Addresses https://github.com/rust-lang/rust/pull/76127#discussion_r479932392. Our test suite is generally ready to run with an explicitly specified linker (https://github.com/rust-lang/rust/pull/45191), so LLD specified with `use-lld = true` works as well. Only 4 tests fail (on `x86_64-pc-windows-msvc`): ``` ui/panic-runtime/lto-unwind.rs run-make-fulldeps/debug-assertions run-make-fulldeps/foreign-exceptions run-make-fulldeps/test-harness ``` All of them are legitimate issues with LLD (or at least with combination Rust+LLD) and manifest in segfaults on access to TLS (https://github.com/rust-lang/rust/pull/76127#issuecomment-683473325). UPD: These issues are caused by https://github.com/rust-lang/rust/issues/72145 and appear because I had `-Ctarget-cpu=native` set. UPD: Further commits build tests with LLD for non-MSVC targets and propagate LLD to more places when `use-lld` is enabled.
2020-09-09Rollup merge of #74787 - petrochenkov:rustllvm, r=cuviperTyler Mandry-1/+1
Move `rustllvm` into `compiler/rustc_llvm` The `rustllvm` directory is not self-contained, it contains C++ code built by a build script of the `rustc_llvm` crate which is then linked into that crate. So it makes sense to make `rustllvm` a part of `rustc_llvm` and move it into its directory. I replaced `rustllvm` with more obvious `llvm-wrapper` as the subdirectory name, but something like `llvm-adapter` would work as well, other suggestions are welcome. To make things more confusing, the Rust side of FFI functions defined in `rustllvm` can be found in `rustc_codegen_llvm` rather than in `rustc_llvm`. Perhaps they need to be moved as well, but this PR doesn't do that. The presence of multiple LLVM-related directories in `src` (`llvm-project`, `rustllvm`, `librustc_llvm`, `librustc_codegen_llvm` and their predecessors) historically confused me and made me wonder about their purpose. With this PR we will have LLVM itself (`llvm-project`), a FFI crate (`rustc_llvm`, kind of `llvm-sys`) and a codegen backend crate using LLVM through the FFI crate (`rustc_codegen_llvm`).
2020-09-09Move `rustllvm` into `rustc_llvm`Vadim Petrochenkov-1/+1
2020-09-08Update comment in config.toml.exampleVadim Petrochenkov-1/+1
2020-09-07Note that parallel-compiler = true causes tests to failJoshua Nelson-0/+1
2020-09-01Codegen defaults come from rustc, not cargoJoshua Nelson-1/+1
2020-08-31Address review commentsJoshua Nelson-7/+3
- Use prettier syntax for codegen-units defaults - Remove comment about parallelism that only made sense for specific values of codegen-units - Be more specific about what `verbose-tests` does
2020-08-30Mention why you'd want codegen-units = 0 (other than running out of RAM)Joshua Nelson-0/+3
2020-08-30Document the defaults for `codegen-units`Joshua Nelson-0/+3
2020-08-30Fix incorrect wording for `verbose-tests`Joshua Nelson-1/+1
This info was lost in https://github.com/rust-lang/rust/pull/74334.
2020-08-26Set ninja=true by defaultJosh Triplett-4/+2
Ninja substantially improves LLVM build time. On a 96-way system, using Make took 248s, and using Ninja took 161s, a 35% improvement. We already require a variety of tools to build Rust. If someone wants to build without Ninja (for instance, to minimize the set of packages required to bootstrap a new target), they can easily set `ninja=false` in `config.toml`. Our defaults should help people build Rust (and LLVM) faster, to speed up development.
2020-08-12Add option to use the new symbol mangling in rustc/stdMark Rousskov-0/+4
2020-08-03Make rust.use-lld config option work with non MSVC targetsMateusz Mikuła-2/+2
2020-07-28Auto merge of #73964 - jyn514:sane-defaults, r=Mark-Simulacrumbors-1/+4
Improve defaults in x.py - Make the default stage dependent on the subcommand - Don't build stage1 rustc artifacts with x.py build --stage 1. If this is what you want, use x.py build --stage 2 instead, which gives you a working libstd. - Change default debuginfo when debug = true from 2 to 1 I tried to fix CI to use `--stage 2` everywhere it currently has no stage, but I might have missed a spot. This does not update much of the documentation - most of it is in https://github.com/rust-lang/rustc-dev-guide/ or https://github.com/rust-lang/rust-forge and will need a separate PR. See individual commits for a detailed rationale of each change. See also the MCP: https://github.com/rust-lang/compiler-team/issues/326 r? @Mark-Simulacrum , but anyone is free to give an opinion.
2020-07-27Change debuginfo to default to 1 if `debug = true` is setJoshua Nelson-1/+4
From [a conversation in discord](https://discordapp.com/channels/442252698964721669/443151243398086667/719200989269327882): > Linking seems to consume all available RAM, leading to the OS to swap memory to disk and slowing down everything in the process Compiling itself doesn't seem to take up as much RAM, and I'm only looking to check whether a minimal testcase can be compiled by rustc, where the runtime performance isn't much of an issue > do you have debug = true or debuginfo-level = 2 in config.toml? > if so I think that results in over 2GB of debuginfo nowadays and is likely the culprit > which might mean we're giving out bad advice :( Anecdotally, this sped up my stage 1 build from 15 to 10 minutes. This still adds line numbers, it only removes variable and type information. - Improve wording for debuginfo description Co-authored-by: Teymour Aldridge <42674621+teymour-aldridge@users.noreply.github.com>
2020-07-26config.toml.example: Update remap-debuginfo doc to be more general & accurateXimin Luo-2/+1
2020-07-14bootstrap: Improve wording on docs for `verbose-tests`Joshua Nelson-2/+1
2020-07-05Explain effects of debugging options from config.tomlTomasz Miąsko-2/+6
Co-authored-by: Teymour Aldridge <42674621+teymour-aldridge@users.noreply.github.com>
2020-06-30Auto merge of #73456 - tmiasko:musl-libdir, r=Mark-Simulacrumbors-3/+6
bootstrap: Configurable musl libdir Make it possible to customize the location of musl libdir using musl-libdir in config.toml, e.g., to use lib64 instead of lib.
2020-06-24fixTshepang Lekhonkhobe-1/+1
See https://github.com/rust-lang/rust/pull/73538/commits/b65ea1bef1391a3af9118884952718fc905f8e02#r444376289
2020-06-23place non-obvious defaults on a separate lineTshepang Lekhonkhobe-10/+30
See https://github.com/rust-lang/rust/pull/73538#discussion_r443809593 for the motivation
2020-06-22be more consistent with "defaults" placementTshepang Lekhonkhobe-16/+7
2020-06-20explain the logic a bitTshepang Lekhonkhobe-4/+11
2020-06-20examples should be of type boolTshepang Lekhonkhobe-2/+2
2020-06-18bootstrap: Configurable musl libdirTomasz Miąsko-3/+6
Make it possible to customize the location of musl libdir using musl-libdir in config.toml, e.g., to use lib64 instead of lib.
2020-06-16Ensure profiling runtime for -Zinstrument-coverageRich Kadel-1/+2
If config.toml `profiler = false`, the test/mir-opt/instrument_coverage test is ignored. Otherwise, this patch ensures the profiler_runtime is loaded when -Zinstrument-coverage is enabled. Confirmed that this works for MacOS.
2020-06-09[AVR] Add AVR platform supportJake Goulding-1/+1
2020-05-20Show default values for debug-assertions & debug-assertions-stdTomasz Miąsko-2/+2
2020-05-15Rollup merge of #72146 - Mark-Simulacrum:separate-std-asserts, r=alexcrichtonDylan DPC-0/+4
Provide separate option for std debug asserts On local one-off benchmarking of libcore metadata-only, debug asserts in std are a significant hit (15s to 20s). Provide an option for compiler developers to disable them. A build with a nightly compiler is around 10s, for reference.
2020-05-12Provide separate option for std debug assertsMark Rousskov-0/+4
2020-05-10remove lldb package from bootstrap, config and build-manifestRalf Jung-4/+0
it's not been built since a long time ago
2020-05-08x.py: allow configuring the build directoryJoshua Nelson-0/+4
This allows configuring the directory for build artifacts, instead of having it always be ./build. This means you can set it to a constant location, letting you reuse the same cache while working in several different directories. The configuration lives in config.toml under build.build-dir. By default, it keeps the existing default of ./build, but it can be configured to any relative or absolute path. Additionally, it allows making outputs relative to the root of the git repository using $ROOT.
2020-04-13Auto merge of #70882 - tmiasko:llvm-version-suffix, r=Mark-Simulacrumbors-2/+3
Make LLVM version suffix independent of rustc version on dev channel Remove rustc version from LLVM version suffix on dev channel, avoiding the need for full rebuilds when switching between branches with different LLVM submodule & rustc version. Note: To avoid full rebuild, on subsequent LLVM submodule update, copy the current value of `LLVM_VERSION_SUFFIX` from `build/*/llvm/build/CMakeCache.txt`, to `version-suffix` in `config.toml`.
2020-04-10Enforce Python 3 as much as possibleGuillaume Gomez-4/+2
2020-04-07Make LLVM version suffix independent of rustc version on dev channelTomasz Miąsko-2/+3
Remove rustc version from LLVM version suffix on dev channel, avoiding the need for full rebuilds when moving between commits with different LLVM submodule & rustc version.
2020-03-06fix various typosMatthias Krüger-1/+1
2020-02-11Rollup merge of #68824 - ajpaverd:cfguard-rustbuild, r=Mark-SimulacrumDylan DPC-0/+4
Enable Control Flow Guard in rustbuild Now that Rust supports Control Flow Guard (#68180), add a config.toml option to build the standard library with CFG enabled. r? @nagisa
2020-02-10Enable Control Flow Guard in rustbuildAndrew Paverd-0/+4
2020-02-09More commentsJohn Kåre Alsaker-0/+3