Commit graph

299821 commits

Author SHA1 Message Date
León Orell Valerian Liehr
2cbd0bc27c
Rollup merge of #143822 - RalfJung:miri-ui-clean, r=jieyouxu
./x test miri: fix cleaning the miri_ui directory

Fixes https://github.com/rust-lang/rust/issues/143680
2025-07-13 07:21:24 +02:00
León Orell Valerian Liehr
886ad3a947
Rollup merge of #143817 - Kobzol:wasi-sdk-path, r=jieyouxu
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-13 07:21:24 +02:00
León Orell Valerian Liehr
f8bbc91f76
Rollup merge of #143814 - lolbinarycat:htmldocck-negative-err, r=fmease
htmldocck: better error messages for some negative directives

Previously it was saying "did not match pattern" even when the error was that it did match the pattern, and it wasn't supposed to.
2025-07-13 07:21:23 +02:00
León Orell Valerian Liehr
95b5a082cc
Rollup merge of #143803 - RalfJung:const-trait-tracking, r=compiler-errors
New tracking issues for const_ops and const_cmp

Let's do a clean start with new tracking issues to avoid mixing things up with the previous constification.

I assume the fact that the `PartialEq` *trait* and *impls* used different feature names  was a mistake (the feature name on the impl is entirely irrelevant anyway).

Part of https://github.com/rust-lang/rust/issues/143800, https://github.com/rust-lang/rust/issues/143802

r? ``@oli-obk``
2025-07-13 07:21:23 +02:00
León Orell Valerian Liehr
d607b944e4
Rollup merge of #143798 - 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-13 07:21:22 +02:00
León Orell Valerian Liehr
b0e559a976
Rollup merge of #143796 - JonathanBrouwer:fix-builtin-attribute-prefix, r=jdonszelmann
Fix ICE for parsed attributes with longer path not handled by CheckAttribute

Fixes https://github.com/rust-lang/rust/issues/137590
Fixes https://github.com/rust-lang/rust/issues/143789

r? ```@jdonszelmann```
2025-07-13 07:21:21 +02:00
León Orell Valerian Liehr
8719acd4d1
Rollup merge of #143791 - GuillaumeGomez:update-sysinfo, r=jieyouxu
Update sysinfo version to `0.36.0`

Bugfixes and some new API additions.
2025-07-13 07:21:21 +02:00
León Orell Valerian Liehr
3cd37dfcbe
Rollup merge of #143782 - jieyouxu:debug-assertions, r=ChrisDenton
Disambiguate between rustc vs std having debug assertions in `run-make-support` and `run-make` tests

`NO_DEBUG_ASSERTIONS` is set by CI that threads through to the `./configure.py` script, which is somewhat fragile and "spooky action at a distance". For `fmt-write-bloat`, this is actually wrong because the test wants to gate on *std* being built with debug assertions or not, whereas `NO_DEBUG_ASSERTIONS` determines *rustc* being built with debug assertions or not. Instead, use env vars controlled by compiletest, whose debug assertion info comes from bootstrap.

855e0fe46e/src/ci/run.sh (L137-L146)

`NO_DEBUG_ASSERTIONS` controls `--enable-debug-assertions`

855e0fe46e/src/bootstrap/configure.py (L124)

which sets `--rust.debug-assertions`, which controls *rustc* debug assertions.

855e0fe46e/src/bootstrap/configure.py (L125-L129)

`--rust.debug-assertions-std` controls *std* debug assertions.

Noticed while investigating `fmt-write-bloat` in https://github.com/rust-lang/rust/pull/143669#discussion_r2200522215.

Best reviewed commit-by-commit.

r? ``@ChrisDenton`` (or compiler/bootstrap)
2025-07-13 07:21:20 +02:00
León Orell Valerian Liehr
59859b8a37
Rollup merge of #143778 - oli-obk:const-cleanup, r=fee1-dead
Some const_trait_impl test cleanups

Some tests we forgot to update when the feature gate was reimplemented

r? ``@fee1-dead`` ``@compiler-errors``
2025-07-13 07:21:20 +02:00
León Orell Valerian Liehr
5d5645972f
Rollup merge of #143776 - no1wudi:fix, r=tgross35
std: move NuttX to use arc4random for random number generation

arc4random support in libc merged in https://github.com/rust-lang/libc/pull/4464, so:

* Move `target_os = "nuttx"` from unix_legacy to arc4random section
* This aligns NuttX with other POSIX-compliant systems that support arc4random
* Improves random number generation quality on NuttX by using the system's built-in arc4random implementation instead of legacy fallback methods

NuttX supports arc4random_buf which provides better entropy and security compared to the legacy random number generation methods.
2025-07-13 07:21:19 +02:00
bors
b1d2f2c64c Auto merge of #140717 - mejrs:diagnostic_lints, r=oli-obk
Split up the `unknown_or_malformed_diagnostic_attributes` lint

This splits up the lint into the following lint group:
- `unknown_diagnostic_attributes` - triggers if the attribute is unknown to the current compiler
- `misplaced_diagnostic_attributes` - triggers if the attribute exists but it is not placed on the item kind it's meant for
- `malformed_diagnostic_attributes` - triggers if the attribute's syntax or options are invalid
- `malformed_diagnostic_format_literals` - triggers if the format string literal is invalid, for example if it has unpaired curly braces or invalid parameters
- this pr doesn't create it, but future lints for things like deprecations can also go here.

This PR does not start emitting lints in places that previously did not.

## Motivation

I want to have finer control over what `unknown_or_malformed_diagnostic_attributes` does

I have a project with fairly low msrv that is/will have a lower msrv than future diagnostic attributes. So lints will be emitted when I or others compile it on a lower msrv.

At this time, there are two options to silence these lints:

-  `#[allow(unknown_or_malformed_diagnostic_attributes)]` - this risks diagnostic regressions if I (or others) mess up using the attribute, or if the attribute's syntax ever changes.
- write a build script to detect the compiler version and emit cfgs, and then conditionally enable the attribute:
    ```rust
    #[cfg_attr(rust_version_99, diagnostic::new_attr_in_rust_99(thing = ..))]`
    struct Foo;
    ```
    or conditionally `allow`  the lint:
    ```rust
   // lib.rs
   #![cfg_attr(not(current_rust), allow(unknown_or_malformed_diagnostic_attributes))]
   ```

I like to avoid using build scripts if I can, so the following works much better for me. That is what this PR will let me do in the future:
```rust
    #[allow(unknown_diagnostic_attribute, reason = "attribute came out in rust 1.99 but msrv is 1.70")]
    #[diagnostic::new_attr_in_rust_99(thing = ..)]`
    struct Foo;
2025-07-13 01:11:56 +00:00
bors
288e94c4ba Auto merge of #143783 - bvanjoi:issue-143697-2, r=compiler-errors
compute all rpitit of a trait

Fixes rust-lang/rust#143697

r? `@compiler-errors`
2025-07-12 22:08:57 +00:00
Michael Goulet
736bfa12de Clean up implementation of RPITIT assoc item lowering 2025-07-12 19:31:15 +00:00
bohan
47e15d90e1 query RPITIT in a trait or impl 2025-07-13 02:52:13 +08:00
bohan
dc6c3300fc compute all rpitit of a trait 2025-07-13 02:52:13 +08:00
bors
bfc046a4b8 Auto merge of #143624 - tmiasko:copy-prop-borrowed, r=cjgillot
Propagate from borrowed locals in CopyProp

r? cjgillot
2025-07-12 13:48:36 +00:00
bors
915e535244 Auto merge of #143810 - matthiaskrgr:rollup-iw7a23z, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#143403 (Port several trait/coherence-related attributes the new attribute system)
 - rust-lang/rust#143633 (fix: correct assertion to check for 'noinline' attribute presence before removal)
 - rust-lang/rust#143647 (Clarify and expand documentation for std::sys_common dependency structure)
 - rust-lang/rust#143716 (compiler: doc/comment some codegen-for-functions interfaces)
 - rust-lang/rust#143747 (Add target maintainer information for aarch64-unknown-linux-musl)
 - rust-lang/rust#143759 (Fix typos in function names in the `target_feature` test)
 - rust-lang/rust#143767 (Bump `src/tools/x` to Edition 2024 and some cleanups)
 - rust-lang/rust#143769 (Remove support for SwitchInt edge effects in backward dataflow)
 - rust-lang/rust#143770 (build-helper: clippy fixes)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-12 10:46:43 +00:00
bors
2f9c9cede6 Auto merge of #143766 - matthiaskrgr:rollup-0x7t69s, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#142391 (rust: library: Add `setsid` method to `CommandExt` trait)
 - rust-lang/rust#143302 (`tests/ui`: A New Order [27/N])
 - rust-lang/rust#143303 (`tests/ui`: A New Order [28/28] FINAL PART)
 - rust-lang/rust#143568 (std: sys: net: uefi: tcp4: Add timeout support)
 - rust-lang/rust#143611 (Mention more APIs in `ParseIntError` docs)
 - rust-lang/rust#143661 (chore: Improve how the other suggestions message gets rendered)
 - rust-lang/rust#143708 (fix: Include frontmatter in -Zunpretty output )
 - rust-lang/rust#143718 (Make UB transmutes really UB in LLVM)

r? `@ghost`
`@rustbot` modify labels: rollup

try-job: i686-gnu-nopt-1
try-job: test-various
2025-07-12 07:44:04 +00:00
Ralf Jung
b0e4c3594f ./x test miri: fix cleaning the miri_ui directory 2025-07-12 09:40:35 +02:00
bors
9535feebd5 Auto merge of #143809 - weihanglo:update-cargo, r=weihanglo
Update cargo

14 commits in 930b4f62cfcd1f0eabdb30a56d91bf6844b739bf..eabb4cd923deb73e714f7ad3f5234d68ca284dbe
2025-06-28 14:58:43 +0000 to 2025-07-09 22:07:55 +0000
- feat: Implementation and tests for `multiple-build-scripts` (rust-lang/cargo#15704)
- perf: Speed up TOML parsing by upgrading toml (rust-lang/cargo#15736)
- Mark cachelock tests that rely on interprocess blocking behaviour as unsupported on AIX. (rust-lang/cargo#15734)
- feat(publish): Stabilize multi-package publishing (rust-lang/cargo#15636)
- Update to Rust 2024 (rust-lang/cargo#15732)
- Clarify package ID specifications in SBOMs are fully qualified (rust-lang/cargo#15731)
- chore(deps): update cargo-semver-checks to v0.42.0 (rust-lang/cargo#15730)
- test: Switch config tests to use snapshots (rust-lang/cargo#15729)
- implement package feature unification (rust-lang/cargo#15684)
- chore: Upgrade dependencies (rust-lang/cargo#15722)
- Report valid file name when we can't find a build target for `name = "foo.rs"` (rust-lang/cargo#15707)
- chore(release): Publish build-rs on release (rust-lang/cargo#15708)
- Override `Cargo.lock` checksums when doing a dry-run `publish` (rust-lang/cargo#15711)
- test(rustfix): Update for nightly (rust-lang/cargo#15717)

r? ghost
2025-07-12 04:39:57 +00:00
Jakub Beránek
0528cc9638
Access wasi_sdk_path instead of reading environment variable in bootstrap 2025-07-11 22:43:02 +02:00
binarycat
507fd38a3f htmldocck: better error messages for negative raw directives 2025-07-11 13:56:18 -05:00
Matthias Krüger
324bc31c16
Rollup merge of #143770 - hkBst:build-helper-cleanup, r=Kobzol
build-helper: clippy fixes
2025-07-11 19:45:27 +02:00
Matthias Krüger
1d2aa4d8dd
Rollup merge of #143769 - tmiasko:rm-backward-switch-int, r=lqd
Remove support for SwitchInt edge effects in backward dataflow

Those effects are untested and unused. Remove them along with the implementation of `BasicBlocks::switch_sources`.
2025-07-11 19:45:26 +02:00
Matthias Krüger
8c5f3e415a
Rollup merge of #143767 - hkBst:cleanup-x, r=jieyouxu
Bump `src/tools/x` to Edition 2024 and some cleanups

- Some clippy fixes
- Bump `src/tools/x` to Edition 2024
2025-07-11 19:45:25 +02:00
Matthias Krüger
93caee661a
Rollup merge of #143759 - fluiderson:rdttff, r=aDotInTheVoid
Fix typos in function names in the `target_feature` test

Seems like `test1` was copy-pasted but forgotten to be renamed after.
2025-07-11 19:45:25 +02:00
Matthias Krüger
287e6e7d4d
Rollup merge of #143747 - Gelbpunkt:aarch64-musl-maintainer, r=jieyouxu
Add target maintainer information for aarch64-unknown-linux-musl

Mentioning ``@famfo`` so that they can review the documentation. We're both very invested in this target; I originally promoted it to tier 2 with host tools in rust-lang/rust#76420 back in 2020.
2025-07-11 19:45:24 +02:00
Matthias Krüger
b18064f2f2
Rollup merge of #143716 - workingjubilee:document-some-codegen-backend-stuff, r=bjorn3,fee1-dead
compiler: doc/comment some codegen-for-functions interfaces

An out-of-date comment gets updated and some underdocumented functions get documented.
2025-07-11 19:45:24 +02:00
Matthias Krüger
140fc184f2
Rollup merge of #143647 - ColtenOuO:master, r=ChrisDenton
Clarify and expand documentation for std::sys_common dependency structure

This PR makes a minor improvement to the module-level documentation of std::sys_common:

Replaces the lowercase “dag” with the more standard and explicit form “DAG (Directed Acyclic Graph)” for clarity.
2025-07-11 19:45:23 +02:00
Matthias Krüger
7f3204f34d
Rollup merge of #143633 - dillona:noinline-assert, r=fee1-dead
fix: correct assertion to check for 'noinline' attribute presence before removal
2025-07-11 19:45:23 +02:00
Matthias Krüger
c8780fff6a
Rollup merge of #143403 - GrigorenkoPV:attributes/traits, r=jdonszelmann
Port several trait/coherence-related attributes the new attribute system

Part of rust-lang/rust#131229

This ports:
- `#[const_trait]`
- `#[rustc_deny_explicit_impl]`
- `#[rustc_do_not_implement_via_object]`
- `#[rustc_coinductive]`
- `#[type_const]`
- `#[rustc_specialization_trait]`
- `#[rustc_unsafe_specialization_marker]`
- `#[marker]`
- `#[fundamental]`
- `#[rustc_paren_sugar]`
- `#[rustc_allow_incoherent_impl]`
- `#[rustc_coherence_is_core]`

This also changes `#[marker]` to error on duplicates instead of warning.
cc rust-lang/rust#142838, but I don't think it matters too much, since it's unstable.

r? ``@oli-obk``
2025-07-11 19:45:22 +02:00
Weihang Lo
2268e069c0
Update cargo 2025-07-11 13:01:45 -04:00
bit-aloo
d004abb4d3
remove format short command and push format short command method inside fingerprint impl 2025-07-11 21:37:38 +05:30
Ralf Jung
b94083e87f fix const_ops tracking issue 2025-07-11 17:57:50 +02:00
Ralf Jung
0c81bf80e0 fix PartialEq const feature name and const_cmp tracking issue 2025-07-11 17:57:50 +02:00
bit-aloo
cdbe44d806
Use short command method directly from fingerprint 2025-07-11 20:33:36 +05:30
Jonathan Brouwer
2f05fa6fff
Fix ICE for parsed attributes with longer path not handled by CheckAttrVisitor
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-11 17:02:57 +02:00
Guillaume Gomez
1a28fb8b7b Update sysinfo version to 0.36.0 2025-07-11 15:51:42 +02:00
Jieyou Xu
33e69623ba
Fix std debug assertions gate in fmt-write-boat
The test itself is still broken, but fix this gating separately first.
2025-07-11 20:01:42 +08:00
Jieyou Xu
120c9fcb86
Disambiguate between rustc vs std having debug assertions
Additionally, `NO_DEBUG_ASSERTIONS` is set by CI that threads through to
the `./configure` script, which is somewhat fragile and "spooky action
at a distance". Instead, use env vars controlled by compiletest, whose
debug assertion info comes from bootstrap.
2025-07-11 19:58:22 +08:00
Oli Scherer
7ad30cc619 Some const_trait_impl test cleanups 2025-07-11 10:01:03 +00:00
Huang Qi
074846289a std: move NuttX to use arc4random for random number generation
* Move `target_os = "nuttx"` from unix_legacy to arc4random section
* This aligns NuttX with other POSIX-compliant systems that support arc4random
* Improves random number generation quality on NuttX by using the system's
  built-in arc4random implementation instead of legacy fallback methods

NuttX supports arc4random_buf which provides better entropy and security
compared to the legacy random number generation methods.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2025-07-11 17:31:27 +08:00
Tomasz Miąsko
5b6d661039 Remove support for SwitchInt edge effects in backward dataflow analyses
Those effects are untested and unused. Remove them along with
the implementation of `BasicBlocks::switch_sources`.
2025-07-11 10:56:50 +02:00
Jubilee Young
39f7707fea compiler: comment on some call-related codegen fn in cg_ssa
Partially documents the situation due to LLVM CFI.
2025-07-11 01:08:21 -07:00
Marijn Schouten
ba3b7a7d9c build-helper: clippy fixes 2025-07-11 07:15:20 +00:00
Tomasz Miąsko
011d4aa81f Call get_switch_int_data on a block with SwitchInt terminator
Fix a mix-up of a block with its predecessors in handling of SwitchInt
edge effects for backward analysis. Note that this functionality is
currently unused, so change has no practical impact.
2025-07-11 08:49:11 +02:00
Marijn Schouten
dcf965d652 x: use let-else 2025-07-11 05:38:05 +00:00
Marijn Schouten
b87a1b1297 x: move to edition 2024 2025-07-11 05:38:05 +00:00
Marijn Schouten
28612748f6 x: clippy fixes 2025-07-11 05:38:00 +00:00
Matthias Krüger
e43481e362
Rollup merge of #143718 - scottmcm:ub-transmute-is-ub, r=WaffleLapkin
Make UB transmutes really UB in LLVM

Ralf suggested in <https://github.com/rust-lang/rust/pull/143410#discussion_r2184928123> that UB transmutes shouldn't be trapping, which happened for the one path *that* PR was changing, but there's another path as well, so *this* PR changes that other path to match.

r? codegen
2025-07-11 07:35:22 +02:00