304366 Commits

Author SHA1 Message Date
Manuel Drehwald
88c42a249a add gpu device side instructions 2025-08-19 15:43:30 -07:00
Folkert de Vries
d25910eaeb
make prefetch intrinsics safe 2025-08-20 00:35:42 +02:00
Stefan Schindler
555986d8ac Fix some doc typos 2025-08-19 23:53:45 +02:00
Jakub Beránek
0079da4862
Add snapshot tests for stage 3 compiler builds 2025-08-19 23:36:43 +02:00
Quinn Tucker
14022c8a9a
Adjust wording for conciseness 2025-08-19 17:14:26 -04:00
Quinn Tucker
d0841c7dec
Fix typos in LocalKey documentation 2025-08-19 16:47:25 -04:00
Urgau
31bcc9bbc2 Enable triagebot [review-changes-since] feature 2025-08-19 22:20:57 +02:00
Michael Goulet
6a088fd584 Defer tail call ret ty equality to check_tail_calls 2025-08-19 20:16:19 +00:00
Karol Zwolak
4b2b9c2a39 bless tests with new lint messages 2025-08-19 21:27:10 +02:00
Karol Zwolak
d14b83e378 bless tests with new lint messages 2025-08-19 21:27:10 +02:00
Karol Zwolak
9a29e1693d mention lint group in default level lint note 2025-08-19 21:27:10 +02:00
bors
05f5a58e84 Auto merge of #145600 - jieyouxu:rollup-jw0bpnt, r=jieyouxu
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#145338 (actually provide the correct args to coroutine witnesses)
 - rust-lang/rust#145429 (Couple of codegen_fn_attrs improvements)
 - rust-lang/rust#145452 (Do not strip binaries in bootstrap everytime if they are unchanged)
 - rust-lang/rust#145464 (Stabilize `const_pathbuf_osstring_new` feature)
 - rust-lang/rust#145474 (Properly recover from parenthesized use-bounds (precise capturing lists) plus small cleanups)
 - rust-lang/rust#145486 (Fix `unicode_data.rs` mention message)
 - rust-lang/rust#145490 (Trace some basic I/O operations in bootstrap)
 - rust-lang/rust#145493 (remove `should_render` in `PrintAttribute` derive)
 - rust-lang/rust#145500 (Port must_use to the new target checking)
 - rust-lang/rust#145505 (Simplify span caches)
 - rust-lang/rust#145510 (Visit and print async_fut local for async drop.)
 - rust-lang/rust#145511 (Rust build fails on OpenBSD after using file_lock feature)
 - rust-lang/rust#145532 (resolve: debug for block module)
 - rust-lang/rust#145533 (Reorder `lto` options from most to least optimizing)
 - rust-lang/rust#145537 (Do not consider a `T: !Sized` candidate to satisfy a `T: !MetaSized` obligation.)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-08-19 19:26:10 +00:00
Michael Goulet
ab6f4d62c0 Pretty print the name of an future from calling async closure 2025-08-19 19:21:55 +00:00
Folkert de Vries
51df7aabbe
add a fallback implementation for the prefetch_* intrinsics
The fallback is to just ignore the arguments. That is a valid implementation because this intrinsic is just a hint.

I also added `miri::intrinsic_fallback_is_spec` annotation, so that miri now supports these operations. A prefetch intrinsic call is valid on any pointer.
2025-08-19 21:17:49 +02:00
Ada Alakbarova
e4d9449dc0
ptr_arg: clean-up a bit
create `Option<Region>` in a separate `filter_map`

reduces nesting a bit

replace a bunch of `and_then`s with a clearer(?) let-chain

`too_many_lines` no more!

use free-standing `zip`

add some comments
2025-08-19 21:05:37 +02:00
Trevor Gross
988092e9ff Remove the std workspace patch for compiler-builtins
All dependencies of `std` have dropped the crates.io dependency on
`compiler-builtins`, so this patch is no longer needed.

Closes: RUST-142265
2025-08-19 18:56:35 +00:00
Josh Triplett
4c948bc332 Update lockfile for changes to std_detect 2025-08-19 11:46:37 -07:00
Josh Triplett
a971238175 std_detect: Use rustc-std-workspace-* to pull in compiler-builtins
https://github.com/rust-lang/rust/pull/145489 changed `std_detect` to no
longer depend on `cfg-if`, which meant it no longer indirectly pulled in
`rustc-std-workspace-core` via `cfg-if`. That caused it to no longer
depend on `compiler-builtins`.

Change `std_detect` to use `rustc-std-workspace-core` and
`rustc-std-workspace-alloc`, to integrate with the rustc workspace. This
also pulls in `compiler-builtins` via `rustc-std-workspace-core`.

Closes: https://github.com/rust-lang/rust/issues/145594
2025-08-19 11:17:35 -07:00
Ada Alakbarova
54c52e208a
extract duplicate_underscore_argument, and move it into functions
misc: use `str::starts_with`

extract `duplicate_underscore_argument` into a module

move it to `functions`
2025-08-19 19:27:25 +02:00
Lorenz Leutgeb
a21d7d7529 Fix doc of std::os::windows::io::BorrowedSocket::borrow_raw
A small oversight in 0cb69dec57f I noticed while reading.
2025-08-19 18:59:25 +02:00
Tobias Bucher
cb5a4d138a Use ToString specialization macro also for Cow and String 2025-08-19 17:35:56 +02:00
Tobias Bucher
6a24ae96ea Simplify macro generating ToString implementations for &…&str
Use deref coercion to let the compiler remove any amount of references.
2025-08-19 17:35:55 +02:00
Ralf Jung
3c7144ff01
Merge pull request #4414 from bjorn3/weak_defs
Support weak definitions
2025-08-19 15:32:35 +00:00
bjorn3
129b0a2ecd Support weak definitions
When a symbol only has a weak definition, this definition will be
picked. When a symbol has both a weak and a regular definition, the
regular definition will be picked instead.
2025-08-19 14:56:24 +00:00
bors
16ad385579 Auto merge of #145599 - jieyouxu:rollup-523cxhm, r=jieyouxu
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - rust-lang/rust#140740 (Add `-Zindirect-branch-cs-prefix`)
 - rust-lang/rust#142079 (nll-relate: improve hr opaque types support)
 - rust-lang/rust#142938 (implement std::fs::set_permissions_nofollow on unix)
 - rust-lang/rust#143730 (fmt of non-decimal radix untangled)
 - rust-lang/rust#144767 (Correct some grammar in integer documentation)
 - rust-lang/rust#144906 (Require approval from t-infra instead of t-release on tier bumps)
 - rust-lang/rust#144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - rust-lang/rust#145025 (run spellcheck as a tidy extra check in ci)
 - rust-lang/rust#145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - rust-lang/rust#145166 (suggest using `pub(crate)` for E0364)
 - rust-lang/rust#145255 (dec2flt: Provide more valid inputs examples)
 - rust-lang/rust#145306 (Add tracing to various miscellaneous functions)
 - rust-lang/rust#145336 (Hide docs for `core::unicode`)
 - rust-lang/rust#145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-08-19 14:43:48 +00:00
Ralf Jung
a914e7b93f
Merge pull request #4530 from JoJoDeveloping/tb-doc-ugc-link
link to TB doc in unsafe-code-guidelines
2025-08-19 13:21:42 +00:00
Michael Goulet
db0c825d2c Gate static coroutines behind a parser feature 2025-08-19 13:12:31 +00:00
Guillaume Gomez
2ebe679d18 Strenghten rustdoc js tester file macthing regex 2025-08-19 15:08:57 +02:00
Guillaume Gomez
77d6ee0f35 Fix bug where rustdoc-js tester would not pick the right search.js file if there is more than one 2025-08-19 15:08:34 +02:00
Johannes Hostert
b734547022
God bless the tests 2025-08-19 14:46:33 +02:00
Johannes Hostert
b4876bf3e2
link to TB doc in unsafe-code-guidelines 2025-08-19 14:34:28 +02:00
Nicholas Nethercote
c1dfeea919 Prevent impossible combinations in ast::ModKind.
`ModKind::Loaded` has an `inline` field and a `had_parse_error` field.
If the `inline` field is `Inline::Yes` then `had_parse_error` must be
`Ok(())`.

This commit moves the `had_parse_error` field into the `Inline::No`
variant. This makes it impossible to create the nonsensical combination
of `inline == Inline::Yes` and `had_parse_error = Err(_)`.
2025-08-19 21:57:31 +10:00
Nicholas Nethercote
bfd5d59f97 Prevent impossible combinations in ast::ModKind.
`ModKind::Loaded` has an `inline` field and a `had_parse_error` field.
If the `inline` field is `Inline::Yes` then `had_parse_error` must be
`Ok(())`.

This commit moves the `had_parse_error` field into the `Inline::No`
variant. This makes it impossible to create the nonsensical combination
of `inline == Inline::Yes` and `had_parse_error = Err(_)`.
2025-08-19 21:57:31 +10:00
许杰友 Jieyou Xu (Joe)
0811b16aac
Rollup merge of #145578 - vexide:armv7a-vex-v5+linked-files, r=davidtwco
Add VEXos "linked files" support to `armv7a-vex-v5`

Third-party programs running on the VEX V5 platform need a linker script to ensure code and data are always placed in the allowed range `0x3800000-0x8000000` which is read/write/execute. However, developers can also configure the operating system (VEXos) to preload a separate file at any location between these two addresses before the program starts (as a sort of basic linking or configuration loading system). Programs have to know about this at compile time - in the linker script - to avoid placing data in a spot that overlaps where the linked file will be loaded. This is a very popular feature with existing V5 runtimes because it can be used to modify a program's behavior without re-uploading the entire binary to the robot controller.

It's important for Rust to support this because while VEXos's runtime user-exposed file system APIs may only read data from an external SD card, linked files are allowed to load data directly from the device's onboard storage.

This PR adds the `__linked_file_start` symbol to the existing VEX V5 linker script which can be used to shrink the stack and heap so that they do not overlap with a memory region containing a linked file. It expects the linked file to be loaded in the final N bytes of user RAM (this is not technically required but every existing runtime does it this way to avoid having discontinuous memory regions).

With these changes, a developer targeting VEX V5 might add a second linker script to their project by specifying `-Clink-arg=-Tcustom.ld` and creating the file `custom.ld` to configure their custom memory layout. The linker would prepend this to the builtin target linker script.

```c
/* custom.ld: Reserves 10MiB for a linked file. */
/* (0x7600000-0x8000000) */
__linked_file_length = 10M;

/* The above line is equivalent to -Clink-arg=--defsym=__linked_file_length=10M */

/* Optional: specify one or more sections that */
/* represent the developer's custom format. */
SECTIONS {
    .linked_file_metadata (NOLOAD) : {
        __linked_file_metadata_start = .;
        . += 1M;
        __linked_file_metadata_end = .;
    }
    .linked_file_data (NOLOAD) : {
        __linked_file_data_start = .;
        . += 9M;
        __linked_file_data_end = .;
    }
} INSERT AFTER .stack;
```

Then, using an external tool like the `vex-v5-serial` crate, they would configure the metadata of their uploaded program to specify the path of their linked file and the address where it should be loaded into memory (in the above example, `0x7600000`).
2025-08-19 19:50:08 +08:00
许杰友 Jieyou Xu (Joe)
4a4247adc8
Rollup merge of #145576 - jieyouxu:bootstrap-timings, r=Kobzol
Add change tracker entry for `--timings`

Follow-up to rust-lang/rust#145379. Forgor when reviewing.

r? `@Kobzol`
2025-08-19 19:50:07 +08:00
许杰友 Jieyou Xu (Joe)
9d957a8677
Rollup merge of #145571 - davidtwco:davidtwco-remove-from-groups, r=lqd
remove myself from some adhoc-groups and pings

Removing myself from some adhoc-groups related to the MIR as its been quite a while since I've worked in that area
2025-08-19 19:50:06 +08:00
许杰友 Jieyou Xu (Joe)
3e1a63d31d
Rollup merge of #145568 - fee1-dead-contrib:push-uvsonuzxmkus, r=fmease
ignore frontmatters in `TokenStream::new`

Fixes rust-lang/rust#145520 for now, we'd likely want to figure the stripping part later, so I noted it down on the list on the tracking issue.

cc `@fmease`
2025-08-19 19:50:05 +08:00
许杰友 Jieyou Xu (Joe)
07518a7a25
Rollup merge of #145560 - Kobzol:bootstrap-remove-ord, r=jieyouxu
Remove unused `PartialOrd`/`Ord` from bootstrap

It was just wasting compile-time. There is one remaining "old" bootstrap test that uses the `Ord` impl on one test step, I'll remove that later.
2025-08-19 19:50:04 +08:00
许杰友 Jieyou Xu (Joe)
95615916b1
Rollup merge of #145556 - JonathanBrouwer:extern-crate-stable, r=jdonszelmann
Allow stability attributes on extern crates

Fixes https://github.com/rust-lang/rust/issues/145497

r? ``@jdonszelmann``
2025-08-19 19:50:03 +08:00
许杰友 Jieyou Xu (Joe)
e462a7daa0
Rollup merge of #145550 - nnethercote:derive_from-no-unit, r=Kobzol
Avoid using `()` in `derive(From)` output.

Using an error type instead of `()` avoids the duplicated errors on `struct SUnsizedField` in `deriving-from-wrong-target.rs`. It also improves the expanded output from this:
```
struct S2(u32, u32);
impl ::core::convert::From<()> for S2 {
    #[inline]
    fn from(value: ()) -> S2 { (/*ERROR*/) }
}
```
to this:
```
struct S2(u32, u32);
impl ::core::convert::From<(/*ERROR*/)> for S2 {
    #[inline]
    fn from(value: (/*ERROR*/)) -> S2 { (/*ERROR*/) }
}
```
The new code also only matchs on `item.kind` once.

r? ``@Kobzol``
2025-08-19 19:50:03 +08:00
许杰友 Jieyou Xu (Joe)
cd597ae180
Rollup merge of #145549 - huaihuaidelulu:patch-2, r=Amanieu,jieyouxu
Update rust maintainers in openharmony.md
2025-08-19 19:50:02 +08:00
许杰友 Jieyou Xu (Joe)
c318e14e7b
Rollup merge of #145542 - blyxyas:no-mentions-subtree, r=Urgau
triagebot: Don't warn no-mentions on subtree updates

Complement to https://github.com/rust-lang/triagebot/pull/2137

r? ``@Urgau``
2025-08-19 19:50:02 +08:00
许杰友 Jieyou Xu (Joe)
bb4af94006
Rollup merge of #145538 - lolbinarycat:std-bufreader-buffer-backshift-less, r=tgross35
bufreader::Buffer::backshift: don't move the uninit bytes

previous code was perfectly sound because of MaybeUninit, but it did waste cycles on copying memory that is known to be uninitialized.
2025-08-19 19:50:01 +08:00
许杰友 Jieyou Xu (Joe)
4090d98b67
Rollup merge of #145537 - zachs18:metasized-negative-bound-fix, r=davidtwco
Do not consider a `T: !Sized` candidate to satisfy a `T: !MetaSized` obligation.

This example should fail to compile (and does under this PR, with the old and new solvers), but currently compiles successfully ([playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=6e0e5d0ae0cdf0571dea97938fb4a86d)), because (IIUC) the old solver's `lazily_elaborate_sizedness_candidate`/callers and the new solver's `TraitPredicate::fast_reject_assumption`/`match_assumption` consider a `T: _ Sized` candidate to satisfy a `T: _ MetaSized` obligation, for either polarity `_`, when that should only hold for positive polarity.

```rs
#![feature(negative_bounds)]
#![feature(sized_hierarchy)]

use std::marker::MetaSized;

fn foo<T: !MetaSized>() {}

fn bar<T: !Sized + MetaSized>() {
    foo::<T>();
    //~^ ERROR the trait bound `T: !MetaSized` is not satisfied // error under this PR
}
```

Only observable with the internal-only `feature(negative_bounds)`, so might just be "wontfix".

This example is added as a test in this PR (as well as testing that `foo<()>` and `foo<str>` are disallowed for `fn foo<T: !MetaSized`).

cc `@davidtwco` for `feature(sized_hierarchy)`

Maybe similar to 91c53c9 from <https://github.com/rust-lang/rust/pull/143307>
2025-08-19 19:45:40 +08:00
许杰友 Jieyou Xu (Joe)
e39295235c
Rollup merge of #145533 - smoelius:patch-2, r=lqd
Reorder `lto` options from most to least optimizing

This is a follow up to https://github.com/rust-lang/cargo/pull/15841.

`@weihanglo` pointed out the original order of the `lto` options in the Cargo book was consistent with https://doc.rust-lang.org/rustc/codegen-options/index.html?highlight=lto#lto.

The options in the Cargo book have since been reordered. This PR keeps the two references consistent.
2025-08-19 19:45:39 +08:00
许杰友 Jieyou Xu (Joe)
b709cf50db
Rollup merge of #145532 - bvanjoi:debug-resolve-module, r=petrochenkov
resolve: debug for block module

r? `@petrochenkov`
2025-08-19 19:45:39 +08:00
许杰友 Jieyou Xu (Joe)
dc945d9e4c
Rollup merge of #145511 - semarie:push-rnytptsoxrxn, r=joshtriplett
Rust build fails on OpenBSD after using file_lock feature

PR 130999 added the file_lock feature, but doesn't included OpenBSD in the supported targets (Tier 3 platform), leading to a compilation error ("try_lock() not supported").

Cc `@cberner`

Related to rust-lang/rust#130999
2025-08-19 19:45:38 +08:00
许杰友 Jieyou Xu (Joe)
e3576b2d76
Rollup merge of #145510 - cjgillot:visit-async-drop, r=davidtwco
Visit and print async_fut local for async drop.

This is a bugfix for a MIR local we forget to visit.

I had a lot of trouble reading the docs for `async_fut`, so I'm not certain about the change to the pretty-printer.
2025-08-19 19:45:37 +08:00
许杰友 Jieyou Xu (Joe)
3134f22d8b
Rollup merge of #145505 - cjgillot:tweak-span-cache, r=petrochenkov
Simplify span caches

Split from https://github.com/rust-lang/rust/pull/143882

r? `@petrochenkov`
2025-08-19 19:45:37 +08:00
许杰友 Jieyou Xu (Joe)
758866d48b
Rollup merge of #145500 - JonathanBrouwer:must_use_target, r=jdonszelmann
Port must_use to the new target checking

This PR ports `must_use` to the new target checking logic
This also adds a tool-only suggestion to remove attributes on invalid targets, as to not immediately undo the work of https://github.com/rust-lang/rust/pull/145274

r? `@jdonszelmann`
2025-08-19 19:45:36 +08:00