about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2025-07-14rename `stable_mir` to `rustc_public`, and `rustc_smir` to `rustc_public_bridge`Makai-3/+3
2025-07-14Rollup merge of #143887 - Kobzol:reroder-bootstrap-tests, r=jieyouxuJakub Beránek-2/+1
Run bootstrap tests sooner in the `x test` pipeline With the recently added bootstrap snapshot tests, and in general with our plans to test more things in bootstrap, I feel like the original comment isn't accurate anymore. Recently, on several occasions I had to wait for 40+ minutes of CI just to find out that the bootstrap snapshot tests have failed. I think we should run bootstrap tests towards the beginning instead now. r? ```@jieyouxu```
2025-07-14Rollup merge of #143733 - Stypox:bootstrap-tool-config-any, r=KobzolJakub Beránek-15/+21
Change bootstrap's `tool.TOOL_NAME.features` to work on any subcommand This is a followup to rust-lang/rust#142379 to make the bootstrap option `tool.TOOL_NAME.features` work on any subcommand instead of just build (so also run/test/...). I also made the `TOOL_NAME` comparisons look at the tool path instead of the tool name to determine to which tool a `TOOL_NAME` refers to, so you can specify tools by path like in other places of the bootstrap (e.g. `tool."tools/miri".features`).
2025-07-14Rollup merge of #143681 - RalfJung:bootstrap-miri-rebuilds, r=KobzolJakub Beránek-2/+8
bootstrap/miri: avoid rebuilds for test builds When building Miri in its own repo, we always build with `--all-targets`: https://github.com/rust-lang/rust/blob/a00961269107703772c4e8f071f0accbe0f1a7e5/src/tools/miri/miri-script/src/util.rs#L167-L174 This saves a bunch of time since some of Miri's dependencies get more features enabled by some of Miri's dev-dependencies, and they all get built twice otherwise if you do `cargo build && cargo test` (which is typically what you end up doing inside `./miri test` and also inside `./x test miri`). This applies the same approach to bootstrap, drastically reducing the edit-compile cycle for Miri work here. :)
2025-07-14Only compare tool name to apply features toStypox-1/+2
2025-07-14Bootstrap's `tool.TOOL_NAME.features` now works on any subcommandStypox-15/+20
2025-07-13Rollup merge of #143826 - Shourya742:2025-07-12-fix-command-trace, r=KobzolMatthias Krüger-4/+29
Fix command trace With the recent developments in centralization of command execution, we somehow broke the traces for command execution. This PR fixes that and add trace to stream command execution as well. r? ````@Kobzol````
2025-07-13Rollup merge of #143825 - RalfJung:clippy-test-filter, r=llogiqMatthias Krüger-2/+2
clippy: fix test filtering when TESTNAME is empty Fixes https://github.com/rust-lang/rust/issues/143824. Turns out bootstrap was just fine, the TESTNAME logic in clippy was wrong... I still made this a rustc PR as that's where I did all the debugging. The bootstrap change is not really related, but it's comment-only so not worth a separate PR... adding the `test_args` is also part of what `prepare_cargo_test` would usually do so let's group the code properly.
2025-07-13Rollup merge of #143785 - bjorn3:faster_ra_build_script_build, r=KobzolMatthias Krüger-0/+43
Add --compile-time-deps argument for x check Together with skipping building C++ code in rustc_llvm for check, this reduces the amount of time it takes to do the x check for rust-analyzer analysis from 12m16s to 3m06s when the bootstrap compiler is already downloaded.
2025-07-13Run bootstrap tests sooner in the `x test` pipelineJakub Beránek-2/+1
2025-07-13Rollup merge of #143822 - RalfJung:miri-ui-clean, r=jieyouxuLeón Orell Valerian Liehr-2/+7
./x test miri: fix cleaning the miri_ui directory Fixes https://github.com/rust-lang/rust/issues/143680
2025-07-13Rollup merge of #143817 - Kobzol:wasi-sdk-path, r=jieyouxuLeón Orell Valerian Liehr-1/+1
Access `wasi_sdk_path` instead of reading environment variable in bootstrap Small cleanup to remove an environment variable read that we have performed earlier in bootstrap already.
2025-07-13Rollup merge of #143798 - ↵León Orell Valerian Liehr-28/+5
Shourya742:2025-07-11-remove-format-short-command-trait, r=Kobzol Remove format short command trait Since we no longer have traces of the vanilla command, and we're already implementing format_short_command for CommandFingerprint, we can use it directly from the fingerprint. This PR removes the standalone format_short_command trait and moves its implementation under CommandFingerprint.
2025-07-12explicitly drop span_guard in wait_for_outputbit-aloo-1/+5
2025-07-12Add change_tracker.rs entrybjorn3-0/+5
2025-07-12Move --compile-time-depsbjorn3-5/+6
2025-07-12refine commentRalf Jung-1/+1
Co-authored-by: Jakub Beránek <berykubik@gmail.com>
2025-07-12add span to streaming command execution flowbit-aloo-1/+15
2025-07-12fix span for deferred command executionbit-aloo-3/+10
2025-07-12clippy: fix test filtering when TESTNAME is emptyRalf Jung-2/+2
2025-07-12./x test miri: fix cleaning the miri_ui directoryRalf Jung-2/+7
2025-07-11Access `wasi_sdk_path` instead of reading environment variable in bootstrapJakub Beránek-1/+1
2025-07-11remove format short command and push format short command method inside ↵bit-aloo-27/+4
fingerprint impl
2025-07-11Use short command method directly from fingerprintbit-aloo-1/+1
2025-07-11Update description for flagbjorn3-1/+1
2025-07-11Update sysinfo version to `0.36.0`Guillaume Gomez-5/+5
2025-07-11Avoid building C++ for rustc_llvm with --compile-time-depsbjorn3-0/+3
This saves about 30s.
2025-07-11Add --compile-time-deps argument for x checkbjorn3-0/+34
This reduces the amount of time it takes to do the x check for rust-analyzer analysis from 12m16s to 3m34s when the bootstrap compiler is already downloaded.
2025-07-10Rollup merge of #143707 - Kobzol:bootstrap-std-check, r=jieyouxuTrevor Gross-7/+31
Fix `--skip-std-check-if-no-download-rustc` Since https://github.com/rust-lang/rust/pull/143048, we now explicitly set the build compiler for `check::Std`, which caused it to be built before we checked `--skip-std-check-if-no-download-rustc`. So I moved the check earlier to `make_run`, which resolves it. I also added a regression test for this. Sadly we can't really test for the positive case easily (when download-ci-rustc is enabled), but we can test the negative cases, where it is disabled. Fixes: https://github.com/rust-lang/rust/issues/143705 r? ```@RalfJung```
2025-07-10Auto merge of #143746 - matthiaskrgr:rollup-yaojj7t, r=matthiaskrgrbors-72/+174
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143446 (use `--dynamic-list` for exporting executable symbols) - rust-lang/rust#143590 (Fix weird rustdoc output when single and glob reexport conflict on a name) - rust-lang/rust#143599 (emit `.att_syntax` when global/naked asm use that option) - rust-lang/rust#143615 (Fix handling of no_std targets in `doc::Std` step) - rust-lang/rust#143632 (fix: correct parameter names in LLVMRustBuildMinNum and LLVMRustBuildMaxNum FFI declarations) - rust-lang/rust#143640 (Constify `Fn*` traits) - rust-lang/rust#143651 (Win: Use exceptions with empty data for SEH panic exception copies instead of a new panic) - rust-lang/rust#143660 (Disable docs for `compiler-builtins` and `sysroot`) - rust-lang/rust#143665 ([rustdoc-json] Add tests for `#[doc(hidden)]` handling of items.) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-10Rollup merge of #143660 - cuviper:lib-doc-false, r=tgross35Matthias Krüger-4/+0
Disable docs for `compiler-builtins` and `sysroot` Bootstrap already had a manual doc filter for the `sysroot` crate, but other library crates keep themselves out of the public docs by setting `[lib] doc = false` in their manifest. This seems like a better solution to hide `compiler-builtins` docs, and removes the `sysroot` hack too. Fixes rust-lang/rust#143215 (after backport) ```@rustbot``` label beta-nominated
2025-07-10Rollup merge of #143615 - Kobzol:doc-std, r=jieyouxuMatthias Krüger-68/+174
Fix handling of no_std targets in `doc::Std` step The previous logic was wrong for no_std targets, it just didn't do anything. The logic was added there because by default, the `Std` step would otherwise have a list of all std crates to check, but these would fail for no_std targets. What has to happen instead is to select the default set of packages to check/doc/build, which currently happens in the `std_cargo` function, but the `self.crates` list was overriding that. In general, using `crates: Vec<String>` in the `Std` steps is quite fishy, because it's difficult to distinguish between all crates (either they are all enumerated or `crates` is empty) and the default (e.g. `x <kind> [library]`) vs a subset (e.g. `x <kind> core`). I wanted to improve that using an enum that would distinguish these situations, avoid passing `-p` for all of the crates explicitly, and unify the selection of packages to compile/check/... in `std_cargo`, based on this enum. However, I found out from some other bootstrap comments that when you pass `-p` explicitly for all crates, cargo behaves differently (apparently for check it will also check targets/examples etc. with `-p`, but not without it). Furthermore, the doc step has a special case where it does not document the `sysroot` package. So as usually, unifying this logic would get into some edge cases... So instead I opted for a seemingly simpler solution, where I try to prefilter only two allowed crates (core and alloc) for no_std targets in the `std_crates_for_run_make` function. It's not perfect, but I think it's better than the status quo (words to live by when working on bootstrap...). Fixes [this Zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/docs.20for.20non-host.20targets.3F). r? `@jieyouxu`
2025-07-10Remove `min-specialization` feature from `WasmComponentLd`Jakub Beránek-1/+1
2025-07-10Auto merge of #143525 - Shourya742:2025-07-06-add-profiler, r=Kobzolbors-28/+218
Add profiler to bootstrap command This PR adds command profiling to the bootstrap command. It tracks the total execution time and records cache hits for each command. It also provides the ability to export execution result to a JSON file. Integrating this with Chrome tracing could further enhance observability. r? `@Kobzol`
2025-07-10enable report summary when BOOTSTRAP_PROFILE is setbit-aloo-2/+14
2025-07-10expose report summary via buildbit-aloo-1/+5
2025-07-10update streaming to record its execution via commandprofilerbit-aloo-5/+11
2025-07-10add commandProfiler to bootstrap execution contextbit-aloo-1/+154
2025-07-10change cachekey to CommandFingerprint and change related API's and add start ↵bit-aloo-19/+34
time to deferred execution
2025-07-10Clarify `get_tool_target_compiler`Jakub Beránek-3/+9
2025-07-10Rename `for_compiler` to `for_use_by_compiler`Jakub Beránek-12/+15
2025-07-10Rollup merge of #143398 - lolbinarycat:tidy-extra-checks-auto, r=KobzolTrevor Gross-1/+9
tidy: add support for `--extra-checks=auto:` feature in preparation for rust-lang/rust#142924 also heavily refactored the parsing of the `--extra-checks` argument to warn about improper usage. cc ```@GuillaumeGomez``` r? ```@Kobzol```
2025-07-10Fix `--skip-std-check-if-no-download-rustc`Jakub Beránek-7/+31
Since https://github.com/rust-lang/rust/pull/143048, we now explicitly set the build compiler for `check::Std`, which caused it to be built before we checked `--skip-std-check-if-no-download-rustc`. So I moved the check earlier to `make_run`, which resolves it. I also added a regression test for this. Sadly we can't really test for the positive case easily (when download-ci-rustc is enabled), but we can test the negative cases, where it is disabled.
2025-07-09bootstrap/miri: avoid rebuilds for test buildsRalf Jung-2/+8
2025-07-09Make `LlvmBitcodeLinker` a `ToolTarget` toolJakub Beránek-37/+49
2025-07-09Extend dist extended tools testJakub Beránek-5/+14
2025-07-09Make `LldWrapper` a `ToolTarget` toolJakub Beránek-50/+78
2025-07-09Make `WasmComponentLd` a `ToolTarget` toolJakub Beránek-16/+111
2025-07-09Port `RemoteTestServer` to `ToolTarget`Jakub Beránek-16/+21
2025-07-09Add `Mode::ToolTarget`Jakub Beránek-39/+104