Commit graph

6517 commits

Author SHA1 Message Date
Jakub Beránek
5c0c0f41f4 Remove obsolete RustcGuide bootstrap step
It was not working for a long time.
2025-01-01 17:06:27 +01:00
Jakub Beránek
59d5328e0a Fix source code path in comment 2025-01-01 17:06:27 +01:00
Stuart Cook
cf7d7f5096
Rollup merge of #134950 - Zalathar:tool-check-step, r=jieyouxu
bootstrap: Overhaul and simplify the `tool_check_step!` macro

Main changes:

- Pull most of `run` out of the macro and into a regular helper function
- Reduce the number of redundant/unnecessary macro arguments
- Switch to struct-like syntax so that optional arguments are clearer, and so that rustfmt is happy

~~The one “functional” change is that the `-check.stamp` files now get their name from the final path segment, instead of the struct name; in practice this means that they now contain more hyphens in some cases. As far as I'm aware, the exact filename doesn't matter so this should be fine.~~ (that change has been removed from this PR)
2025-01-01 16:35:31 +11:00
Zalathar
66fd5340ea Use struct-like syntax in tool_check_step!
This tricks rustfmt into formatting the macro arguments as expressions, instead
of giving up and ignoring them.
2024-12-31 22:26:14 +11:00
Zalathar
774e83cea1 Make tool_check_step! always assume SourceType::InTree
All of the tools that use this macro are currently in-tree, so support for
specifying a `SourceType` was not meaningfully used. It can potentially be
re-added in the future if needed.
2024-12-31 22:12:59 +11:00
Zalathar
c59ccae739 Infer tool-check-step display name from the last path component 2024-12-31 22:12:59 +11:00
Zalathar
1afeeef77d Move most of the Step::run impl out of tool_check_step!
Ordinary code is much easier to work with than macro-generated code.
2024-12-31 22:12:59 +11:00
Stuart Cook
a777f4a793
Rollup merge of #134919 - Zalathar:x-test-compiler, r=jieyouxu
bootstrap: Make `./x test compiler` actually run the compiler unit tests

Fixes #134916.
2024-12-31 14:12:45 +11:00
Zalathar
796835f376 Make ./x test compiler actually run the compiler unit tests 2024-12-31 10:52:33 +11:00
Matthias Krüger
4b9e3daa0b
Rollup merge of #134911 - HigherOrderLogic:master, r=onur-ozkan
chore: fix typos

This PR fixes typos errors in docstring only, so functionality wise, it should stay the same.
2024-12-30 19:34:56 +01:00
Horu
4c279fb7af chore: fix typos 2024-12-30 14:56:21 +07:00
bors
c1566141b6 Auto merge of #134865 - clubby789:proc-macro-tls, r=onur-ozkan
bootstrap: Don't apply -Ztls-model=initial-exec to deps of proc-macros

Fixes #134863

1. Checks if a crate name is in a static list before applying the flag
2. Adds a tidy check that gathers transitive deps of proc macros and ensures the list is up to date

cc `@bjorn3` - the issue specifies `rustc_fluent_macro` but I assume this applies to all proc macro crates.
2024-12-30 07:26:13 +00:00
clubby789
f0734626cd bootstrap: Don't apply -Ztls-model=initial-exec to deps of proc-macros 2024-12-29 21:48:06 +00:00
clubby789
f4d215ea91 Add tidy check for list of proc-macro crate transitive dependencies 2024-12-29 21:48:03 +00:00
bors
64feb9b502 Auto merge of #134887 - Zalathar:rollup-ghpz7oy, r=Zalathar
Rollup of 5 pull requests

Successful merges:

 - #134799 (nits: Cleanups in `librustdoc::clean`)
 - #134851 (docs: inline `alloc::ffi::c_str` types to `alloc::ffi`)
 - #134869 (Bump compiler cc)
 - #134876 (bootstrap: Consolidate the macros for declaring compiletest test suites)
 - #134883 (bootstrap: Fix `./x check bootstrap` by moving `shared_helpers::tests`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-29 12:43:22 +00:00
Stuart Cook
fc89cb202f
Rollup merge of #134883 - Zalathar:shared-helpers, r=clubby789
bootstrap: Fix `./x check bootstrap` by moving `shared_helpers::tests`

Running `./x check bootstrap` currently doesn't work, because it builds the bootstrap shim binaries with `cfg(test)`, and those binaries can't find a `tests` submodule when they include `shared_helpers.rs` via `#[path]`.

This PR fixes that by taking the tests module and moving it to `super::tests::shared_helpers_tests` instead.

(The extra `tests` submodule prevents tidy from complaining about unit tests that aren't in a dedicated tests module.)

---

It would be nice to also run `./x check bootstrap compiletest` in CI, so that this and #134848 don't regress, but I didn't want to bundle that change with this fix.
2024-12-29 22:45:39 +11:00
bors
e7738afb70 Auto merge of #134650 - onur-ozkan:clean-up-fixmes, r=Kobzol
Clean up some FIXME notes on bootstrap

Fixing and removing some FIXME notes.
2024-12-29 10:04:55 +00:00
Zalathar
4192293b4d Fix ./x check bootstrap by moving shared_helpers::tests 2024-12-29 20:49:03 +11:00
Zalathar
1e37bbe2de Allow macro-declared test steps to have docstrings and attributes 2024-12-29 15:50:47 +11:00
Zalathar
7b7f634cac Consolidate the macros for declaring compiletest suites 2024-12-29 15:50:47 +11:00
bors
b76036c88c Auto merge of #134848 - Zalathar:check-compiletest, r=jieyouxu
bootstrap: Allow `./x check compiletest`

Did you know that bootstrap didn't support `./x check compiletest`? Well, now it does!

Manually add `"compiletest"` to your `rust-analyzer.check.overrideCommand` check command to get error/warning integration when modifying compiletest.
2024-12-28 22:00:11 +00:00
bors
8742e0556d Auto merge of #134845 - jieyouxu:temp-drop-warning, r=onur-ozkan
bootstrap: drop warning for top-level test suite path check due to false positives

The current top-level test suite directory does not exist warning logic doesn't quite handle the more exotic path suffix matches that test filters seem to accept (e.g. `library/test` can be matched with `--exclude test`), so avoid warning on non-existent top-level test suites for now. To avoid false positives, we probably need to query test `Step`s for their `should_run(exclude_filter)` logic.

This retains the fix for the Windows path handling (unlike #134843).

r? `@onur-ozkan`
2024-12-28 19:20:22 +00:00
bors
ceb0441e82 Auto merge of #134790 - onur-ozkan:cfg-test, r=clubby789
replace bootstrap-self-test feature flag with cfg(test)

This makes it in more rusty way.
2024-12-28 16:37:13 +00:00
Zalathar
c1c2d85cc9 bootstrap: Allow ./x check compiletest 2024-12-28 23:23:41 +11:00
许杰友 Jieyou Xu (Joe)
c393811a48 bootstrap: drop warning for top-level test suite path check
This doesn't quite handle the more exotic path suffix matches that test
filters seem to accept (e.g. `library/test` can be matched with
`--exclude test`), so avoid warning on non-existent top-level test
suites for now. A proper fix will need to possibly query test `Step`s
for their exclude logic.
2024-12-28 17:55:05 +08:00
onur-ozkan
eedafbc92f remove deprecated option parallel-compiler
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-28 11:35:29 +03:00
onur-ozkan
47cd3e7c61 read to String directly without extra conversion
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-28 11:34:00 +03:00
onur-ozkan
ec9502d803 remove an invalid FIXME note
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-28 11:33:57 +03:00
bors
dd84b7d5ee Auto merge of #134830 - matthiaskrgr:rollup-7hdjojz, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #133663 (Add a compiler intrinsic to back `bigint_helper_methods`)
 - #134798 (Make `ty::Error` implement all auto traits)
 - #134808 (compiletest: Remove empty 'expected' files when blessing)
 - #134809 (Add `--no-capture`/`--nocapture` as bootstrap arguments)
 - #134826 (Add spastorino to users_on_vacation)
 - #134828 (Add clubby789 back to bootstrap review rotation)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-27 19:30:32 +00:00
clubby789
35bbb01ea9 Add change tracker entry 2024-12-27 12:24:03 +00:00
clubby789
bccc11e230 compiletest: Replace --nocapture with --no-capture 2024-12-27 12:10:55 +00:00
clubby789
4fd3baaf70 Add --no-capture as a bootstrap argument 2024-12-27 11:52:01 +00:00
clubby789
e5f676521c Strip debuginfo from rustc-main and rustdoc 2024-12-26 22:34:09 +00:00
onur-ozkan
485c20d248 replace bootstrap-self-test feature flag with cfg(test)
This makes it in more rusty way.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-26 18:59:45 +03:00
bors
d53b0ff6b5 Auto merge of #134724 - onur-ozkan:type-improvements, r=jieyouxu
improve type mutation for certain structures

self-explanatory
2024-12-24 16:40:11 +00:00
onur-ozkan
6b2fd4f234 improve type mutation for certain structures
self-explanatory

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-24 13:42:46 +00:00
bors
bdc6b3de48 Auto merge of #134405 - rmehri01:x-completions, r=onur-ozkan
Generate shell completions for x as well

It would be nice to be have shell completions for both `./x` and `x` (installed with `cargo install --path src/tools/x`) instead of just `x.py`. This pr generates the corresponding completions for each shell in a similar way to `x.py` but under `x.<shell>` instead.
2024-12-23 19:31:58 +00:00
The 8472
1abe485e89 fix missing ns units in bootstrap's benchmark rendering 2024-12-20 13:37:45 +01:00
许杰友 Jieyou Xu (Joe)
cc3053a1f3
Rollup merge of #134437 - onur-ozkan:improve-compiler-build, r=jieyouxu
reduce compiler `Assemble` complexity

`compile::Assemble` is already complicated by its nature (as it handles core internals like recursive building logic, etc.) and also handles half of `LldWrapper` tool logic for no good reason since it should be done in the build step directly.

This change moves it there to reduce complexity of `compile::Assemble` logic.
2024-12-19 16:48:09 +08:00
onur-ozkan
bb1a90f939 reduce compiler Assemble complexity
`compile::Assemble` is already complicated by its nature (as it handles core
internals like recursive building logic, etc.) and also handles half of `LldWrapper`
tool logic for no good reason since it should be done in the build step directly.

This change moves it there to reduce complexity of `compile::Assemble` logic.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-18 21:42:54 +03:00
许杰友 Jieyou Xu (Joe)
88428f4dc3
Rollup merge of #134444 - jyn514:cranelift-std, r=bjorn3
Fix `x build --stage 1 std` when using cg_cranelift as the default backend

Before, cg_cranelift would ICE when trying to lower f16 and f128. The library/ crates had all the infrastructure to omit using them, it just wasn't hooked up to bootstrap.

r? `````@bjorn3`````
2024-12-18 22:56:57 +08:00
许杰友 Jieyou Xu (Joe)
099faa8beb
Rollup merge of #134420 - Integral-Tech:pathbuf-refactor, r=compiler-errors
refactor: replace &PathBuf with &Path to enhance generality

- According to [style.md](https://github.com/rust-lang/rust/blob/master/src/tools/rust-analyzer/docs/dev/style.md#useless-types):

> More generally, always prefer types on the left
```rust
// GOOD      BAD
&[T]         &Vec<T>
&str         &String
Option<&T>   &Option<T>
&Path        &PathBuf
```
2024-12-18 22:56:56 +08:00
jyn
39305bfaf2 Fix x build --stage 1 std when using cg_cranelift as the default backend
Before, cg_cranelift would ICE when trying to lower f16 and f128. The
library/ crates had all the infrastructure to omit using them, it just
wasn't hooked up to bootstrap.
2024-12-17 18:47:19 -05:00
Matthias Krüger
4b905c8a5d
Rollup merge of #134423 - jieyouxu:bootstrap-test-valid, r=onur-ozkan
bootstrap: use specific-purpose ui test path for `test_valid` self-test

I wanted to move some ui tests around in #134418, which broke `test_valid` since it was referencing two non-specific-purpose ui tests. This PR instead adds two dummy tests under `tests/ui/bootstrap/self-test/`, for that purpose specifically.

r? bootstrap
2024-12-17 22:34:44 +01:00
Matthias Krüger
ca5dfa74f1
Rollup merge of #133801 - Gelbpunkt:powerpc64le-unknown-linux-musl-tier-2, r=jieyouxu,Urgau,Kobzol
Promote powerpc64le-unknown-linux-musl to tier 2 with host tools

MCP: https://github.com/rust-lang/compiler-team/issues/803

I'm using crosstool-ng for building a toolchain because GCC 9 from `musl-toolchain.sh` has float ABI issues (?) and can't compile LLVM, and writing a crosstool-ng config for a target feels less hacky than yet another target specific shell script. I also defined a kernel version, since there wasn't one specified before. If a lower version is desired, just let me know. I also tried to match the rust configure args with the loongarch64 musl tier 2 target.

The resulting compiler works fine, built with `DEPLOY=1 ./src/ci/docker/run.sh dist-powerpc64le-linux` and tested on Alpine Linux in a VM and on a bare metal POWER8 machine:
```
qemu-ppc64le:/tmp/rust-nightly-powerpc64le-unknown-linux-musl$ ash install.sh
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rustc'
install: installing component 'rust-std-powerpc64le-unknown-linux-musl'
install: installing component 'cargo'
install: installing component 'rustfmt-preview'
install: installing component 'rls-preview'
install: installing component 'rust-analyzer-preview'
install: installing component 'llvm-tools-preview'
install: installing component 'clippy-preview'
install: installing component 'miri-preview'
install: installing component 'rust-analysis-powerpc64le-unknown-linux-musl'
install: installing component 'llvm-bitcode-linker-preview'
install: WARNING: failed to run ldconfig. this may happen when not installing as root. run with --verbose to see the error

    rust installed.

qemu-ppc64le:~$ echo 'fn main() { println!("hello world"); }' > test.rs
qemu-ppc64le:~$ rustc test.rs
qemu-ppc64le:~$ ./test
hello world
qemu-ppc64le:~$ file test
test: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, OpenPOWER ELF V2 ABI, version 1 (SYSV), statically linked, BuildID[sha1]=596ee6abf9add487ebc54fb71c2076fb6faea013, with debug_info, not stripped
```

try-job: dist-powerpc64le-linux
2024-12-17 22:34:41 +01:00
Ryan Mehri
bc1737b279 Generate shell completions for x as well 2024-12-17 14:13:05 -07:00
Integral
7eb0d84424
refactor: replace &PathBuf with &Path to enhance generality 2024-12-18 00:28:34 +08:00
许杰友 Jieyou Xu (Joe)
13e8313f15 bootstrap: use specific-purpose ui test path
I wanted to move some ui tests around, which broke `test_valid` since it
was referencing a non-specific-purpose ui test.
2024-12-17 21:01:45 +08:00
Ralf Jung
7dbfe4d4cf clarify that path() is for on-disk paths 2024-12-17 07:37:46 +01:00
Ralf Jung
6ace653a2f bootstrap: fix a comment 2024-12-17 07:35:21 +01:00