Commit graph

287650 commits

Author SHA1 Message Date
Ayush Singh
d40d424d43
CI: docker: host-x86_64: test-various: uefi_qemu_test: Update r-efi
- Update r-efi to 5.2.0

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-04-27 14:07:33 +05:30
Ayush Singh
59b6cf5332
uefi: Update r-efi
- Bump up the version to 5.2.0

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-04-26 13:51:27 +05:30
bors
d3508a8ad0 Auto merge of #140177 - tmandry:compiletest-par, r=jieyouxu
[compiletest] Parallelize test discovery

Certain filesystems are slow to service individual read requests, but can service many in parallel. This change brings down the time to run a single cached test on one of those filesystems from 40s to about 8s.
2025-04-26 02:03:54 +00:00
bors
555e1d0386 Auto merge of #140295 - antoyo:subtree-update_cg_gcc_2025-04-25, r=GuillaumeGomez
Subtree update cg_gcc 2025/04/25

r? GuillaumeGomez
2025-04-25 21:58:13 +00:00
bors
b4c8b0c3f0 Auto merge of #140298 - matthiaskrgr:rollup-5tc1gvb, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #137683 (Add a tidy check for GCC submodule version)
 - #138968 (Update the index of Result to make the summary more comprehensive)
 - #139572 (docs(std): mention const blocks in const keyword doc page)
 - #140152 (Unify the format of rustc cli flags)
 - #140193 (fix ICE in `#[naked]` attribute validation)
 - #140205 (Tidying up UI tests [2/N])
 - #140284 (remove expect() in `unnecessary_transmutes`)
 - #140290 (rustdoc: fix typo change from equivelent to equivalent)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-25 18:51:15 +00:00
bors
e3e432d4d6 Auto merge of #139756 - Zoxc:out-of-order-dep-graph, r=oli-obk
Allow out of order dep graph node encoding

This allows out of order dep graph node encoding by also encoding the index instead of using the file node order as the index.

`MemEncoder` is also brought back to life and used for encoding.

Both of these are done to enable thread-local encoding of dep graph nodes.

This is based on https://github.com/rust-lang/rust/pull/139636.
2025-04-25 15:38:58 +00:00
Matthias Krüger
99dc43b717
Rollup merge of #140290 - styvane:patch0001-fix-typo-in-rusdoc-search, r=GuillaumeGomez
rustdoc: fix typo change from equivelent to equivalent

This PR fixes a typo in the search section in `rustdoc` book.
2025-04-25 17:31:50 +02:00
Matthias Krüger
432393972c
Rollup merge of #140284 - bend-n:fix-expectation-unmet, r=jieyouxu
remove expect() in `unnecessary_transmutes`

removes expect() from #136083 and fixes #140277
includes regression test

r? lcnr
2025-04-25 17:31:49 +02:00
Matthias Krüger
8888488a03
Rollup merge of #140205 - reddevilmidzy:clean-up-test, r=jieyouxu
Tidying up UI tests [2/N]

Part of #133895

Moved the location of the tests that were in `tests/ui` and added descriptions!
I'll squash before merge!

r? jieyouxu
2025-04-25 17:31:49 +02:00
Matthias Krüger
7f27d16400
Rollup merge of #140193 - folkertdev:fix-issue-140082, r=jdonszelmann
fix ICE in `#[naked]` attribute validation

fixes https://github.com/rust-lang/rust/issues/140082

The comment here https://github.com/rust-lang/rust/pull/139615/files#r2040684192 is relevant, a better way to print the full path would be nice. If there's an issue I should `FIXME` this with let me know.

r? `@jdonszelmann`
cc `@nnethercote` https://github.com/rust-lang/rust/pull/139615
2025-04-25 17:31:48 +02:00
Matthias Krüger
eb225e395d
Rollup merge of #140152 - xizheyin:issue-140102, r=jieyouxu
Unify the format of rustc cli flags

As mentioned in #140102, I unified the format of rustc CLI flags.

I use the following rules:
1. `<param>`: Indicates a required parameter
2. `[param]`: Indicates an optional parameter
3. `|`: Indicates a mutually exclusive option
4. `*`: a list element with description

Current output:
```bash
Usage: rustc [OPTIONS] INPUT

Options:
    -h, --help          Display this message
        --cfg <SPEC>    Configure the compilation environment.
                        SPEC supports the syntax `<NAME>[="<VALUE>"]`.
        --check-cfg <SPEC>
                        Provide list of expected cfgs for checking
    -L [<KIND>=]<PATH>  Add a directory to the library search path. The
                        optional KIND can be one of
                        <dependency|crate|native|framework|all> (default:
                        all).
    -l [<KIND>[:<MODIFIERS>]=]<NAME>[:<RENAME>]
                        Link the generated crate(s) to the specified native
                        library NAME. The optional KIND can be one of
                        <static|framework|dylib> (default: dylib).
                        Optional comma separated MODIFIERS
                        <bundle|verbatim|whole-archive|as-needed>
                        may be specified each with a prefix of either '+' to
                        enable or '-' to disable.
        --crate-type <bin|lib|rlib|dylib|cdylib|staticlib|proc-macro>
                        Comma separated list of types of crates
                        for the compiler to emit
        --crate-name <NAME>
                        Specify the name of the crate being built
        --edition <2015|2018|2021|2024|future>
                        Specify which edition of the compiler to use when
                        compiling code. The default is 2015 and the latest
                        stable edition is 2024.
        --emit <TYPE>[=<FILE>]
                        Comma separated list of types of output for the
                        compiler to emit.
                        Each TYPE has the default FILE name:
                        * asm - CRATE_NAME.s
                        * llvm-bc - CRATE_NAME.bc
                        * dep-info - CRATE_NAME.d
                        * link - (platform and crate-type dependent)
                        * llvm-ir - CRATE_NAME.ll
                        * metadata - libCRATE_NAME.rmeta
                        * mir - CRATE_NAME.mir
                        * obj - CRATE_NAME.o
                        * thin-link-bitcode - CRATE_NAME.indexing.o
        --print <INFO>[=<FILE>]
                        Compiler information to print on stdout (or to a file)
                        INFO may be one of
                        <all-target-specs-json|calling-conventions|cfg|check-cfg|code-models|crate-name|crate-root-lint-levels|deployment-target|file-names|host-tuple|link-args|native-static-libs|relocation-models|split-debuginfo|stack-protector-strategies|supported-crate-types|sysroot|target-cpus|target-features|target-libdir|target-list|target-spec-json|tls-models>.
    -g                  Equivalent to -C debuginfo=2
    -O                  Equivalent to -C opt-level=3
    -o <FILENAME>       Write output to FILENAME
        --out-dir <DIR> Write output to compiler-chosen filename in DIR
        --explain <OPT> Provide a detailed explanation of an error message
        --test          Build a test harness
        --target <TARGET>
                        Target triple for which the code is compiled
    -A, --allow <LINT>  Set lint allowed
    -W, --warn <LINT>   Set lint warnings
        --force-warn <LINT>
                        Set lint force-warn
    -D, --deny <LINT>   Set lint denied
    -F, --forbid <LINT> Set lint forbidden
        --cap-lints <LEVEL>
                        Set the most restrictive lint level. More restrictive
                        lints are capped at this level
    -C, --codegen <OPT>[=<VALUE>]
                        Set a codegen option
    -V, --version       Print version info and exit
    -v, --verbose       Use verbose output

Additional help:
    -C help             Print codegen options
    -W help             Print 'lint' options and default settings
    -Z help             Print unstable compiler options
    --help -v           Print the full set of options rustc accepts
```
2025-04-25 17:31:47 +02:00
Matthias Krüger
394cdca40f
Rollup merge of #139572 - ismailarilik:docs/std/mention-const-blocks-in-const-keyword-doc-page, r=tgross35
docs(std): mention const blocks in const keyword doc page

Aims to close #139549
2025-04-25 17:31:47 +02:00
Matthias Krüger
a35379654c
Rollup merge of #138968 - Natural-selection1:update-Result-doc, r=Amanieu
Update the index of Result to make the summary more comprehensive

fix #138966

This PR and #138957 are twin PR

r? `@Amanieu`
2025-04-25 17:31:46 +02:00
Matthias Krüger
4bbd21b7ab
Rollup merge of #137683 - Kobzol:tidy-gcc-submodule, r=GuillaumeGomez
Add a tidy check for GCC submodule version

To make sure that it stays in sync with the required GCC version of the GCC codegen backend.

The check should succeed on CI, although it will fail after https://github.com/rust-lang/rust/pull/137660, until the next GCC sync.

r? `@GuillaumeGomez`
2025-04-25 17:31:46 +02:00
Antoni Boucher
3cd97b644d Merge commit '4f83a4258d' into subtree-update_cg_gcc_2025-04-25 2025-04-25 10:44:19 -04:00
antoyo
4f83a4258d
Merge pull request #652 from rust-lang/sync_from_rust_2025_04_25_2
Sync from rust 2025/04/25
2025-04-25 10:41:04 -04:00
Antoni Boucher
9059f8cd7c Fix test 2025-04-25 10:18:12 -04:00
Antoni Boucher
5e5ad10bc6 Fix clippy warnings 2025-04-25 10:10:50 -04:00
Antoni Boucher
79339104b1 Update to nightly-2025-04-25 2025-04-25 10:05:35 -04:00
Antoni Boucher
5dbe271045 Merge branch 'master' into sync_from_rust_2025_04_25_2 2025-04-25 10:05:03 -04:00
bors
8f43b85954 Auto merge of #140282 - matthiaskrgr:rollup-g6ze4jj, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #137653 (Deprecate the unstable `concat_idents!`)
 - #138957 (Update the index of Option to make the summary more comprehensive)
 - #140006 (ensure compiler existance of tools on the dist step)
 - #140143 (Move `sys::pal::os::Env` into `sys::env`)
 - #140202 (Make #![feature(let_chains)] bootstrap conditional in compiler/)
 - #140236 (norm nested aliases before evaluating the parent goal)
 - #140257 (Some drive-by housecleaning in `rustc_borrowck`)
 - #140278 (Don't use item name to look up associated item from trait item)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-25 12:27:16 +00:00
bendn
d3a4ebca85
remove expect() in unnecessary_transmutes 2025-04-25 19:07:41 +07:00
reddevilmidzy
db2a73e284 Cleaned up 5 tests in tests/ui 2025-04-25 20:50:57 +09:00
xizheyin
999b9069dd
Add option style comment for rustc_optgroups
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-25 19:37:42 +08:00
Sede Soukossi
8604d0fd34
rustdoc: fix typo change from equivelent to equivalent 2025-04-25 12:03:08 +02:00
bors
5c54aa781f Auto merge of #140273 - matthiaskrgr:rollup-rxmuvkg, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #137096 (Stabilize flags for doctest cross compilation)
 - #140148 (CI: use aws codebuild for job dist-arm-linux)
 - #140187 ([AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test)
 - #140196 (Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`))
 - #140210 (Work around cygwin issue on condvar timeout)
 - #140213 (mention about `x.py setup` in `INSTALL.md`)
 - #140229 (`DelimArgs` tweaks)
 - #140248 (Fix impl block items indent)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-25 09:09:27 +00:00
Jakub Beránek
796a9ee378
Update gcc submodule to 0ea98a1365b81f7488073512c850e8ee951a4afd
To keep it in sync with rustc_codegen_gcc.
2025-04-25 09:27:10 +02:00
Jakub Beránek
0e4ffa15c1
Add a tidy check for GCC submodule version 2025-04-25 09:26:47 +02:00
ismailarilik
49cb451b5d docs(std): mention const blocks in const keyword doc page 2025-04-25 10:17:27 +03:00
bors
862156d6f2 Auto merge of #140233 - Zalathar:revert-new-executor, r=jieyouxu
Revert compiletest new-executor, to re-land without download-rustc

Revert <https://github.com/rust-lang/rust/pull/139998> because the original merge triggered download-rustc, which messes with test metrics and prevents us from properly comparing them before/after the change.

The plan is to re-land this PR as-is, combined with a trivial compiler change to avoid download-rustc and get proper test metrics for comparison.

This reverts commit be181dd75c, reversing changes made to 645d0ad2a4.

r? ghost
2025-04-25 06:00:11 +00:00
Matthias Krüger
3c08a50a15
Rollup merge of #140278 - compiler-errors:name-based-comparison, r=nnethercote
Don't use item name to look up associated item from trait item

This fix should be self-justifying b/c the fact that we were using identifiers here was kinda sus anyways, esp b/c we have a failproof way of doing the comparison :) I'll leave some info about why this repro needs a macro.

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

r? `@nnethercote`
2025-04-25 07:50:27 +02:00
Matthias Krüger
e534fad2e5
Rollup merge of #140257 - amandasystems:housecleaning, r=wesleywiser
Some drive-by housecleaning in `rustc_borrowck`

This commit picks up a few odd ends discovered during the work on #130227. It adds some documentation and renames a few methods with too generic names to describe what they actually do. It also adds some debug output that was helpful during bug hunting and generally cleans up a few things (for my values of "clean").

r? lcnr
2025-04-25 07:50:27 +02:00
Matthias Krüger
9eb0078556
Rollup merge of #140236 - lcnr:normalizes-to-goals, r=compiler-errors
norm nested aliases before evaluating the parent goal

see the explanation of the underlying issue in tests/ui/traits/next-solver/normalize/eager-norm-pre-normalizes-to.rs.

This is also the cause of https://github.com/rust-lang/trait-system-refactor-initiative/issues/184, fixing the overflow errors with the new solver. I did not add any tests based on it directly as relying on that behavior to cause recursion limit shenanigans feels fragile. Thanks `@Nadrieril` for minimizing the issue [on zulip](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/typenum.20.602.20.2F.201.60.20overflow.20error/with/513993621).

r? `@compiler-errors`
2025-04-25 07:50:26 +02:00
Matthias Krüger
564e5ccb5c
Rollup merge of #140202 - est31:let_chains_feature_compiler, r=lcnr
Make #![feature(let_chains)] bootstrap conditional in compiler/

Let chains have been stabilized recently in #132833, so we can remove the gating from our uses in the compiler (as the compiler uses edition 2024).
2025-04-25 07:50:25 +02:00
Matthias Krüger
f3641df491
Rollup merge of #140143 - thaliaarchi:move-env-pal, r=joboet
Move `sys::pal::os::Env` into `sys::env`

Although `Env` (as `Vars`), `Args`, path functions, and OS constants are publicly exposed via `std::env`, their implementations are each self-contained. Keep them separate in `std::sys` and make a new module, `sys::env`, for `Env`.

Also fix `unsafe_op_in_unsafe_fn` for Unix and update the `!DynSend` and `!DynSync` impls which had grown out of sync with the platforms (see #48005 for discussion on that).

r? joboet

Tracked in #117276.
2025-04-25 07:50:25 +02:00
Matthias Krüger
886816359c
Rollup merge of #140006 - onur-ozkan:138778, r=onur-ozkan
ensure compiler existance of tools on the dist step

Fixes https://github.com/rust-lang/rust/issues/138778 with a coverage on https://github.com/rust-lang/rust/issues/138123 and https://github.com/rust-lang/rust/issues/138004.

try-job: dist-powerpc64le-linux
2025-04-25 07:50:24 +02:00
Matthias Krüger
59191fa513
Rollup merge of #138957 - Natural-selection1:update-Option-doc, r=Amanieu
Update the index of Option to make the summary more comprehensive

fix: #138955

This PR and #138968 are twin PR

By the way, this is my first time contributing to rust, and I'm not a native English speaker, so any suggestions—whether about the wording in the docs or the contribution process itself—would be greatly appreciated!
2025-04-25 07:50:24 +02:00
Matthias Krüger
84a921d957
Rollup merge of #137653 - tgross35:deprecate-concat_idents, r=workingjubilee
Deprecate the unstable `concat_idents!`

`concat_idents` has been around unstably for a long time, but there is now a better (but still unstable) way to join identifiers using `${concat(...)}` syntax with `macro_metavar_expr_concat`. This resolves a lot of the problems with `concat_idents` and is on a better track toward stabilization, so there is no need to keep both versions around. `concat_idents!` still has a lot of use in the ecosystem so deprecate it before removing, as discussed in [1].

Link: https://github.com/rust-lang/rust/issues/124225

[1]: https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Removing.20.60concat_idents.60
2025-04-25 07:50:23 +02:00
John Kåre Alsaker
c8e7c6261e Zero the buffer passed from write_with 2025-04-25 07:14:27 +02:00
Hegui Dai
cdc7298392 Solved suggestions 2025-04-25 11:06:53 +08:00
Michael Goulet
1d0b3be659 Don't use item name to look up associated item from trait item 2025-04-25 01:57:45 +00:00
bors
847e3ee6b0 Auto merge of #139752 - usamoi:macos-used, r=saethlin,madsmtm
set subsections_via_symbols for ld64 helper sections

closes https://github.com/rust-lang/rust/issues/139744
cc `@madsmtm`
2025-04-24 22:59:00 +00:00
Matthias Krüger
bc25dc2376
Rollup merge of #140248 - GuillaumeGomez:fix-impl-block-items-indent, r=notriddle
Fix impl block items indent

Fixes #139771.

Now, all impl block "before impl block items" indent are the same (ie, item info and documentation).

With this fix, it looks like this:

![Screenshot From 2025-04-24 12-32-40](https://github.com/user-attachments/assets/907803a2-2949-4d01-afa5-fc3132d10ff2)

You can test it [here](https://rustdoc.crud.net/imperio/fix-impl-block-items-indent/foo/struct.Context.html).

r? `@notriddle`
2025-04-25 00:54:01 +02:00
Matthias Krüger
c43022f8cb
Rollup merge of #140229 - nnethercote:pre-DelimArgs-spacing, r=petrochenkov
`DelimArgs` tweaks

r? `@petrochenkov`
2025-04-25 00:54:01 +02:00
Matthias Krüger
ee7766a25f
Rollup merge of #140213 - onur-ozkan:x-setup, r=cuviper
mention about `x.py setup` in `INSTALL.md`

Addresses [#t-infra/bootstrap > Installing from Source](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Installing.20from.20Source).
2025-04-25 00:54:00 +02:00
Matthias Krüger
11fbbc54ba
Rollup merge of #140210 - Berrysoft:cygwin-timedwait, r=joboet
Work around cygwin issue on condvar timeout

This workaround *just works*... Actually I don't quite understand why does it work in such way. With a simple test on Cygwin, it seems that the maximum value of `tv_sec` could be 12899331056917, while the maximum value of `tv_nsec` should be a value floating around 464600000. A larger `timespec` could block the syscall forever.

r? `@joboet`
2025-04-25 00:54:00 +02:00
Matthias Krüger
02ebca2784
Rollup merge of #140196 - Kivooeo:new-fix-two, r=wesleywiser
Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`)

here is a small fix that improving error messaging when user is trying to do something like this
```rust
let _ = "x" as Arc<str>;
let _ = 2 as Option<i32>;
```

before it looks like this
```rust
error[E0605]: non-primitive cast: `&'static str` as `Arc<str>`
 --> src\main.rs:3:13
  |
3 |     let _ = "x" as Arc<str>;
  |             ^^^^^^^^^^^^^^^ help: consider using the `From` trait instead: `Arc<str>::from("x")`

error[E0605]: non-primitive cast: `i32` as `Option<i32>`
 --> src\main.rs:4:13
  |
4 |     let _ = 2 as Option<i32>;
```
which looks horrible to be honest
so i made a small fix that make errors looks like this
```rust
error[E0605]: non-primitive cast: `&'static str` as `Arc<str>`
  |
3 |     let _ = "x" as Arc<str>;
  |             ^^^^^^^^^^^^^^^
  |
  = note: an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
help: consider using the `From` trait instead
  |
3 -     let _ = "x" as Arc<str>;
3 +     let _ = Arc::<str>::from("x");
  |

error[E0605]: non-primitive cast: `i32` as `Option<i32>`
  |
4 |     let _ = 2 as Option<i32>;
  |             ^^^^^^^^^^^^^^^^
  |
  = note: an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
help: consider using the `From` trait instead
  |
4 -     let _ = 2 as Option<i32>;
4 +     let _ = Option::<i32>::from(2);
```

**What improves?**
1) `Arc<str>::from("x")` which makes no sense because of missing `::`
2) readability

**Related Issue**
fixes #135412
2025-04-25 00:53:59 +02:00
Matthias Krüger
4c0d38b93e
Rollup merge of #140187 - amy-kwan:amy-kwan/update_runmake_tests_AIX, r=jieyouxu
[AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test

Dynamic libraries on AIX have the ".a" extension. The c-link-to-rust-dylib run-make test checks for the extension explicitly, so the extension for AIX is also added to accommodate the test case on AIX.
2025-04-25 00:53:59 +02:00
Matthias Krüger
7ba71d38d8
Rollup merge of #140148 - marcoieni:ci-aws-codebuild, r=Kobzol
CI: use aws codebuild for job dist-arm-linux

try-job: dist-arm-linux
2025-04-25 00:53:58 +02:00
Matthias Krüger
610ed826e3
Rollup merge of #137096 - ehuss:stabilize-doctest-xcompile, r=fmease
Stabilize flags for doctest cross compilation

This makes the following changes in preparation for supporting doctest cross-compiling in cargo:

- Renames `--runtool` and `--runtool-arg` to `--test-runtool` and `--test-runtool-arg` to maintain consistency with other `--test-*` arguments.
- Stabilizes the `--test-runtool` and `--test-runtool-arg`. These are needed in order to support cargo's `target.runner` option which specifies a runner to execute a cross-compiled doctest (for example, qemu).
- Stabilizes the `--enable-per-target-ignores` flag by removing it and making it unconditionally enabled. This makes it possible to disable a doctest on a per-target basis, which I think will be helpful for rolling out this feature.

These changes were suggested in https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/stabilizing.20doctest.20xcompile/near/409281127

The intent is to stabilize the doctest-xcompile feature in cargo. This will help ensure that for projects that do cross-compile testing that their doctests are also covered. Currently there is a somewhat surprising behavior that they are ignored.

Closes https://github.com/rust-lang/rust/issues/64245

try-job: x86_64-msvc-1
2025-04-25 00:53:58 +02:00