Commit graph

164018 commits

Author SHA1 Message Date
Matthias Krüger
f3226b47b8
Rollup merge of #143622 - Gelbpunkt:mips64-unknown-linux-muslabi64-target-maintainer, r=jieyouxu
Add target maintainer information for mips64-unknown-linux-muslabi64

The `mips64-unknown-linux-muslabi64` target is currently rather broken, but I'm working on getting it fixed so that it can at least be used again.

While I can't commit to maintaining the LLVM side of this target, I don't mind looking into any other MIPS or musl-related issues that arise with this target.

See e.g. rust-lang/rust#143409 for some rustc fixes I have in the pipeline and https://github.com/rust-lang/libc/pull/4509, https://github.com/rust-lang/libc/pull/4527, https://github.com/rust-lang/libc/pull/4528, https://github.com/rust-lang/libc/pull/4529, https://github.com/rust-lang/libc/pull/4530 for fixing the libc definitions for this target.

I'm adding myself as a maintainer mostly due to [this interaction](https://github.com/rust-lang/libc/pull/4530#issuecomment-3045912645).

LLVM support has been a concern for these targets in the past, but it shouldn't hurt to have a nominal maintainer for these even if they remain tier 3. From my experience, LLVM for MIPS is working well nowadays unless you decide to use LLD, which is horribly broken on MIPS.
2025-07-08 19:29:42 +02:00
Matthias Krüger
2c9247423e
Rollup merge of #143600 - alexcrichton:wasm32-wasip1-doc-reword, r=jieyouxu
Update intro blurb in `wasm32-wasip1` docs

I was reading over this documentation in light of the effort to enlist more maintainers for Tier 2 targets and figured it was time for a refresh of this documentation now that historical renames/etc have all become a thing of the past. No new major changes to this documentation, mostly just wanted to update it and reflect the modern status quo for this target.
2025-07-08 19:29:39 +02:00
Matthias Krüger
cbf7f80d5c
Rollup merge of #143555 - obi1kenobi:pg/target-feature-not-unsafe-rustdoc-json, r=aDotInTheVoid
Don't mark `#[target_feature]` safe fns as unsafe in rustdoc JSON.

Fixes https://github.com/rust-lang/rust/issues/142655 by explicitly checking whether functions are safe but using `#[target_feature]`, instead of relying on the `FnHeader::is_unsafe()` method which considers such functions unsafe.

I don't believe this merits a bump of the rustdoc JSON `FORMAT_VERSION` constant, since the format is unchanged and this is just a small bugfix.

r? aDotInTheVoid
2025-07-08 19:29:38 +02:00
bors
f838cbc06d Auto merge of #134628 - estebank:const-default, r=oli-obk
Make `Default` const and add some `const Default` impls

Full list of `impl const Default` types:

- ()
- bool
- char
- std::ascii::Char
- usize
- u8
- u16
- u32
- u64
- u128
- i8
- i16
- i32
- i64
- i128
- f16
- f32
- f64
- f128
- std::marker::PhantomData<T>
- Option<T>
- std::iter::Empty<T>
- std::ptr::Alignment
- &[T]
- &mut [T]
- &str
- &mut str
- String
- Vec<T>
2025-07-08 14:04:40 +00:00
bors
45b80ac21a Auto merge of #142869 - nnethercote:join_path-mini, r=camelid
Use `join_with_double_colon` in `write_shared.rs`.

For consistency. Also, it's faster because `join_with_double_colon` does a better job estimating the allocation size than `join` from `itertools`.

r? `@camelid`
2025-07-08 06:32:37 +00:00
Predrag Gruevski
717041232a Don't mark #[target_feature] safe fns as unsafe in rustdoc JSON. 2025-07-08 02:02:56 +00:00
Jens Reidel
a58a423f9a
Add target maintainer information for mips64-unknown-linux-muslabi64
The mips64-unknown-linux-muslabi64 target is currently rather broken,
but I'm working on getting it fixed so that it can at least be used
again.

While I can't commit to maintaining the LLVM side of this target, I
don't mind looking into any other MIPS or musl-related issues that arise
with this target.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-07-08 03:17:04 +02:00
Esteban Küber
8f8099fb42 Account for const stability in clippy when checking constness 2025-07-07 23:07:32 +00:00
Esteban Küber
c3301503b9 Make Default const and add some const Default impls
Full list of `impl const Default` types:

- ()
- bool
- char
- Cell
- std::ascii::Char
- usize
- u8
- u16
- u32
- u64
- u128
- i8
- i16
- i32
- i64
- i128
- f16
- f32
- f64
- f128
- std::marker::PhantomData<T>
- Option<T>
- std::iter::Empty<T>
- std::ptr::Alignment
- &[T]
- &mut [T]
- &str
- &mut str
- String
- Vec<T>
2025-07-07 22:09:37 +00:00
bors
a2d45f73c7 Auto merge of #143601 - matthiaskrgr:rollup-9iw2sqk, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#132469 (Do not suggest borrow that is already there in fully-qualified call)
 - rust-lang/rust#143340 (awhile -> a while where appropriate)
 - rust-lang/rust#143438 (Fix the link in `rustdoc.md`)
 - rust-lang/rust#143539 (Regression tests for repr ICEs)
 - rust-lang/rust#143566 (Fix `x86_64-unknown-netbsd` platform support page)
 - rust-lang/rust#143572 (Remove unused allow attrs)
 - rust-lang/rust#143583 (`loop_match`: fix 'no terminator on block')
 - rust-lang/rust#143584 (make `Machine::load_mir` infallible)
 - rust-lang/rust#143591 (Fix missing words in future tracking issue)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-07 20:30:53 +00:00
Matthias Krüger
7ed6bd98a2
Rollup merge of #143572 - yotamofek:pr/unused-allow-attrs, r=fee1-dead
Remove unused allow attrs

These `#[allow]`s seem to be unused (at least according to `x check`, didn't run `x test` locally). Let's clean them up! 🧹
2025-07-07 19:55:35 +02:00
Matthias Krüger
b6777b1939
Rollup merge of #143566 - jieyouxu:fix-x86_64-unknown-netbsd, r=fee1-dead
Fix `x86_64-unknown-netbsd` platform support page

`x86_64-unknown-netbsd` is Tier 2 with host tools, not Tier 3.

cc `@he32.`

r? compiler
2025-07-07 19:55:34 +02:00
Matthias Krüger
1b922d3901
Rollup merge of #143438 - makai410:rustdoc-fix, r=ehuss
Fix the link in `rustdoc.md`
2025-07-07 19:55:33 +02:00
Matthias Krüger
2554c424ef
Rollup merge of #143340 - nabijaczleweli:awhile, r=mati865
awhile -> a while where appropriate
2025-07-07 19:55:32 +02:00
Alex Crichton
7ec8c89c15 Update intro blurb in wasm32-wasip1 docs
I was reading over this documentation in light of the effort to enlist
more maintainers for Tier 2 targets and figured it was time for a
refresh of this documentation now that historical renames/etc have all
become a thing of the past. No new major changes to this documentation,
mostly just wanted to update it and reflect the modern status quo for
this target.
2025-07-07 10:42:08 -07:00
bors
2f8eeb2bba Auto merge of #143182 - xdoardo:more-addrspace, r=workingjubilee
Allow custom default address spaces and parse `p-` specifications in the datalayout string

Some targets, such as CHERI, use as default an address space different from the "normal" default address space `0` (in the case of CHERI, [200 is used](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-877.pdf)). Currently, `rustc` does not allow to specify custom address spaces and does not take into consideration [`p-` specifications in the datalayout string](https://llvm.org/docs/LangRef.html#langref-datalayout).

This patch tries to mitigate these problems by allowing targets to define a custom default address space (while keeping the default value to address space `0`) and adding the code to parse the `p-` specifications in `rustc_abi`. The main changes are that `TargetDataLayout` now uses functions to refer to pointer-related informations, instead of having specific fields for the size and alignment of pointers in the default address space; furthermore, the two `pointer_size` and `pointer_align` fields in `TargetDataLayout` are replaced with an `FxHashMap` that holds info for all the possible address spaces, as parsed by the `p-` specifications.

The potential performance drawbacks of not having ad-hoc fields for the default address space will be tested in this PR's CI run.

r? workingjubilee
2025-07-07 17:28:14 +00:00
Makai
be9669f8f4 fix the link in rustdoc.md 2025-07-07 15:12:37 +00:00
Yotam Ofek
3b48407f93 Remove unused allow attrs 2025-07-07 12:58:16 +00:00
许杰友 Jieyou Xu (Joe)
364dbd61f2
Rollup merge of #143577 - Noratrieb:Noratrieb-patch-4, r=Kobzol
Disable download-rustc for library profile

The feature currently completely breaks `x test` (rust-lang/rust#142505), core functionality of working on the standard library. Therefore it should be disabled by default until that problem is fixed. Having to wait a bit longer for a check build is nothing compared to completely mysterious build errors when testing.
2025-07-07 19:45:44 +08:00
许杰友 Jieyou Xu (Joe)
eed55947ac
Rollup merge of #143528 - RalfJung:stack-pop-cleanup, r=oli-obk
interpret: rename StackPopCleanup

The name `StackPopCleanup` stopped making sense a long time ago IMO -- in the common case, it has nothing to do with "cleanup", and everything with where the program should jump next. If we didn't have unwinding this would be just the return block, but given that we do have unwinding I figured maybe "continuation" would be a good name. This comes up in [continuation-passing style](https://en.wikipedia.org/wiki/Continuation-passing_style) and refers to where the program will *continue* when a function is done. So from a PL perspective it is the most fitting term I think -- but it may be too jargony.

r? `@oli-obk` what do you think?
2025-07-07 19:45:41 +08:00
许杰友 Jieyou Xu (Joe)
9c6ef43341
Rollup merge of #143415 - Gelbpunkt:cleanup-dist-ppc64le-toolchain, r=marcoieni
Get rid of build-powerpc64le-toolchain.sh

The dist-powerpc64le-linux-musl runner never actually used the toolchain that the script produced, it instead used the one from crosstool-ng.

The dist-powerpc64le-linux-gnu runner did use it, from what I can tell mainly to get a glibc 2.17 version with ppc64le support backported. Since crosstool-ng has the necessary patches, we can just use crosstool-ng to get an appropriate toolchain. While at it, use kernel 3.10 headers since that's the version documented in platform support for this target.

try-job: dist-powerpc64le-linux-gnu
try-job: dist-powerpc64le-linux-musl
2025-07-07 19:45:39 +08:00
Jieyou Xu
979d7b2ca1
Add change tracker entry for disabling download-rustc temporarily 2025-07-07 19:30:37 +08:00
nora
9adbf6270e
Disable download-rustc for library profile
The feature currently completely breaks `x test`, core functionality of working on the standard library.
Therefore it should be disabled by default until that problem is fixed.
Having to wait a bit longer for a check build is nothing compared to completely mysterious build errors when testing.
2025-07-07 13:02:00 +02:00
Jieyou Xu
8b33e93676
Fix x86_64-unknown-netbsd platform support page
`x86_64-unknown-netbsd` is Tier 2 with host tools, not Tier 3.
2025-07-07 16:15:13 +08:00
bors
8df4a58ac4 Auto merge of #143565 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2025-07-07 08:14:30 +00:00
Edoardo Marangoni
93f1201c06
compiler: Parse p- specs in datalayout string, allow definition of custom default data address space 2025-07-07 09:04:53 +02:00
bors
c720f49c46 Auto merge of #143048 - Kobzol:bootstrap-check-stage-1, r=jieyouxu
Enforce in bootstrap that check must have stage at least 1

This PR is another step towards https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Proposal.20to.20cleanup.20stages.20and.20steps.20after.20the.20redesign/with/523586917, this time dealing with `x check`.

It enforces the invariant that:
- We check std stage N with rustc stage N
- We check everything else stage N with rustc stage N - 1

It creates a single function that prepares a proper build compiler for checking something, and also adds snapshot tests for various common check steps. Some obsolete code was also removed.

The default check stage also becomes 1, for all profiles. I tested manually that `x check std` with `download-ci-rustc` still works and doesn't build rustc locally.

Closes: https://github.com/rust-lang/rust/pull/139170

r? `@ghost`
2025-07-07 05:04:39 +00:00
bors
0d11be5aab Auto merge of #143556 - jhpratt:rollup-nid39y2, r=jhpratt
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#143206 (Align attr fixes)
 - rust-lang/rust#143236 (Stabilize `mixed_integer_ops_unsigned_sub`)
 - rust-lang/rust#143344 (Port `#[path]` to the new attribute parsing infrastructure )
 - rust-lang/rust#143359 (Link to 2024 edition page for `!` fallback changes)
 - rust-lang/rust#143456 (mbe: Change `unused_macro_rules` to a `DenseBitSet`)
 - rust-lang/rust#143529 (Renamed retain_mut to retain on LinkedList as mentioned in the ACP)
 - rust-lang/rust#143535 (Remove duplicate word)
 - rust-lang/rust#143544 (compiler: rename BareFn to FnPtr)
 - rust-lang/rust#143552 (lib: more eagerly return `self.len()` from `ceil_char_boundary`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-07 02:03:03 +00:00
Jacob Pratt
7eea141b87
Rollup merge of #143544 - workingjubilee:rename-bare-fn, r=fmease
compiler: rename BareFn to FnPtr

At some point "BareFn" was the chosen name for a "bare" function, without the niceties of `~fn`, `&fn`, or a few other ways of writing a function type. However, at some point the syntax for a "bare function" and any other function diverged even more. We started calling them what they are: function pointers, denoted by their own syntax.

However, we never changed the *internal* name for these, as this divergence was very gradual. Personally, I have repeatedly searched for "FnPtr" and gotten confused until I find the name is BareFn, only to forget this until the next time, since I don't routinely interact with the higher-level AST and HIR. But even tools that interact with these internal types only touch on them in a few places, making a migration easy enough. Let's use a more intuitive and obvious name, as this 12+ year old name has little to do with current Rust.
2025-07-07 03:26:09 +02:00
bors
ca98d4d4b3 Auto merge of #141829 - dvdsk:sleep_until_linux, r=cuviper,RalfJung
Specialize sleep_until implementation for unix (except mac)

related tracking issue: https://github.com/rust-lang/rust/issues/113752
Supersedes https://github.com/rust-lang/rust/pull/118480 for the reasons see: https://github.com/rust-lang/rust/issues/113752#issuecomment-2902594469

Replaces the generic catch all implementation with target_os specific ones for: linux/netbsd/freebsd/android/solaris/illumos etc. Other platforms like wasi, macos/ios/tvos/watchos and windows will follow in later separate PR's (once this is merged).
2025-07-06 23:00:51 +00:00
Jubilee Young
3c9b98699d rustfmt: migrate BareFn -> FnPtr 2025-07-06 15:03:14 -07:00
Jubilee Young
e47f5657e1 clippy: migrate BareFn -> FnPtr 2025-07-06 15:03:14 -07:00
Jubilee Young
5c8ac15dbd rustdoc: migrate BareFn -> FnPtr 2025-07-06 15:03:14 -07:00
bors
de031bbcb1 Auto merge of #143526 - matthiaskrgr:rollup-pm69g5v, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#143252 (Rewrite empty attribute lint for new attribute parser)
 - rust-lang/rust#143492 (Use `object` crate from crates.io to fix windows build error)
 - rust-lang/rust#143514 (Organize macro tests a bit more)
 - rust-lang/rust#143518 (rustc_builtin_macros: Make sure registered attributes stay sorted)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-06 16:56:16 +00:00
dvdsk
61cf174dce
sleep_until: add clock_nanosleep support to Miri
The clock_nanosleep support is there to allow code using `sleep_until`
to run under Miri. Therefore the implementation is minimal.
- Only the clocks REALTIME and MONOTONIC are supported. The first is supported simply
because it was trivial to add not because it was needed for sleep_until.
- The only supported flag combinations are no flags or TIMER_ABSTIME only.
If an unsupported flag combination or clock is passed in this throws
unsupported.
2025-07-06 17:49:35 +02:00
Jakub Beránek
5dc77ba658
Do not ever cross-check bootstrap tools 2025-07-06 17:25:19 +02:00
Jakub Beránek
baa55aef3a
Fix CI 2025-07-06 17:25:19 +02:00
Jakub Beránek
18768f0888
Horrible hack to make codegen backends "work" during check 2025-07-06 17:25:19 +02:00
Jakub Beránek
775c970aae
Add support for allowing features when checking tools 2025-07-06 17:25:19 +02:00
Jakub Beránek
20719767bc
Use stage auto-bump when cross-checking on stage 1 2025-07-06 17:25:19 +02:00
Jakub Beránek
97da04c922
Add #[tracing::instrument] to the LLVM build step 2025-07-06 17:25:19 +02:00
Jakub Beránek
33e6b7aa09
Update library cross-compilation test 2025-07-06 17:25:19 +02:00
Jakub Beránek
8d4d0502bd
Update Mode::ToolStd comment 2025-07-06 17:25:19 +02:00
Jakub Beránek
40176388d2
Add staging comment to check::Rustc 2025-07-06 17:25:19 +02:00
Jakub Beránek
38b09dd838
Add change tracker entry 2025-07-06 17:25:18 +02:00
Jakub Beránek
c054c115a5
Unify selection of build compiler for checking in a single function 2025-07-06 17:25:18 +02:00
Jakub Beránek
4a3cfaa745
Implement CoverageDump checking through the tool_check_step macro 2025-07-06 17:25:18 +02:00
Zalathar
b4da3bd872
Fixup check of rust-analyzer, codegen backends, compiletest and other tools 2025-07-06 17:25:12 +02:00
Jakub Beránek
9906de2510
Make build compiler explicit in check::Rustc and check::Std 2025-07-06 17:12:44 +02:00
Jakub Beránek
50e5599d1d
Remove custom_stage override from check::Std and make 1 be the default check stage for it 2025-07-06 17:12:43 +02:00