Commit graph

158484 commits

Author SHA1 Message Date
bors
99768c80a1 Auto merge of #135921 - matthiaskrgr:rollup-5mzn76m, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #134746 (Don't ICE in coerce when autoderef fails to structurally normalize non-WF type in new solver)
 - #135552 ([AIX] Lint on structs that have a different alignment in AIX's C ABI)
 - #135779 (CI: free disk on linux arm runner)
 - #135790 (Update windows-gnu targets to set `DebuginfoKind::DWARF`)
 - #135879 (fix outdated file path ref in llvm)
 - #135883 (Remove erroneous `unsafe` in `BTreeSet::upper_bound_mut`)
 - #135884 (remove implied end of slice)
 - #135887 (improvements on `build_steps::test` implementation)
 - #135898 (rustdoc-json-types: Finalize dyn compatibility renaming)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-23 12:39:00 +00:00
bors
fc0094f8d4 Auto merge of #135494 - yotamofek:rustdoc-fmt-from_fn, r=fmease
Refactor `fmt::Display` impls in rustdoc

This PR does a couple of things, with the intention of cleaning up and streamlining some of the `fmt::Display` impls in rustdoc:
1. Use the unstable [`fmt::from_fn`](https://github.com/rust-lang/rust/issues/117729) instead of open-coding it.
2. ~~Replace bespoke implementations of `Itertools::format` with the method itself.~~
4. Some more minor cleanups - DRY, remove unnecessary calls to `Symbol::as_str()`, replace some `format!()` calls with lazier options

The changes are mostly cosmetic but some of them might have a slight positive effect on performance.
2025-01-23 09:30:49 +00:00
Matthias Krüger
4b3d7ef888
Rollup merge of #135898 - aDotInTheVoid:dyndoc, r=fmease
rustdoc-json-types: Finalize dyn compatibility renaming

Followup to #131595.

Part of #130852.

Inspired by #135858 (does the same thing but for the rustdoc-types docs).

r? ````@fmease````
2025-01-23 09:49:36 +01:00
Matthias Krüger
76e68ccbb6
Rollup merge of #135887 - onur-ozkan:testing-improvements, r=jieyouxu
improvements on `build_steps::test` implementation

Reviewing commits one-by-one should make it easier to understand.
2025-01-23 09:49:33 +01:00
Matthias Krüger
e1ee0381a0
Rollup merge of #135879 - onur-ozkan:invalid-file-path, r=jieyouxu
fix outdated file path ref in llvm

This was added years ago and is outdated today.
2025-01-23 09:49:24 +01:00
Matthias Krüger
a6157d3038
Rollup merge of #135779 - marcoieni:free-disk-arm-runner, r=Kobzol
CI: free disk on linux arm runner

try-job: aarch64-gnu
2025-01-23 09:49:21 +01:00
bors
cf577f34c4 Auto merge of #135461 - jieyouxu:migrate-jobserver-errors, r=Noratrieb
tests: Port `jobserver-error` to rmake.rs

Part of #121876.

This PR ports `tests/run-make/jobserver-error` to rmake.rs, and is basically #128789 slightly adjusted.

The complexity involved here is mostly how to get `/dev/null/` piping to fd 3 working with std `Command`, whereas with a shell this is much easier (as is evident with the `Makefile` version).

Supersedes #128789.
This PR is co-authored with `@Oneirical` and `@coolreader18.`

try-job: aarch64-gnu
try-job: i686-gnu-1
try-job: x86_64-gnu-debug
try-job: x86_64-gnu-llvm-18-1
2025-01-23 05:31:12 +00:00
bors
3cd8fcbf87 Auto merge of #135164 - Kobzol:run-make-test-glibc-symbols, r=jieyouxu
Add test for checking used glibc symbols

This test checks that we do not use too new glibc symbols in the compiler on x64 GNU Linux, in order not to break our [glibc promises](https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html).

One thing that isn't solved in the PR yet is to make sure that this test will only run on `dist` CI, more specifically on the `dist-x86_64-linux` runner, in the opt-dist post-optimization tests (it can fail elsewhere, that doesn't matter). Any suggestions on how to do that are welcome.

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

r? `@jieyouxu`
2025-01-23 01:03:32 +00:00
bors
a30f9151fe Auto merge of #135896 - matthiaskrgr:rollup-g6rv7za, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #132983 (Edit dangling pointers )
 - #135409 (Fix ICE-133117: multiple never-pattern arm doesn't have false_edge_start_block)
 - #135557 (Point at invalid utf-8 span on user's source code)
 - #135596 (Properly note when query stack is being cut off)
 - #135794 (Detect missing fields with default values and suggest `..`)
 - #135814 (ci: use ghcr buildkit image)
 - #135826 (Misc. `rustc_resolve` cleanups)
 - #135837 (Remove test panic from File::open)
 - #135856 (Library: Finalize dyn compatibility renaming)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-22 22:19:08 +00:00
Alona Enraght-Moony
0149c0fdd8 rustdoc-json-types: Finalize dyn compatibility renaming 2025-01-22 20:01:17 +00:00
Matthias Krüger
672d2de37b
Rollup merge of #135814 - marcoieni:use-buildkit-ghcr, r=Kobzol
ci: use ghcr buildkit image
2025-01-22 20:37:26 +01:00
Matthias Krüger
b4266b0bcd
Rollup merge of #135557 - estebank:wtf8, r=fee1-dead
Point at invalid utf-8 span on user's source code

```
error: couldn't read `$DIR/not-utf8-bin-file.rs`: stream did not contain valid UTF-8
  --> $DIR/not-utf8-2.rs:6:5
   |
LL |     include!("not-utf8-bin-file.rs");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: byte `193` is not valid utf-8
  --> $DIR/not-utf8-bin-file.rs:2:14
   |
LL |     let _ = "�|�␂!5�cc␕␂��";
   |              ^
   = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)
```

When we attempt to load a Rust source code file, if there is a OS file failure we try reading the file as bytes. If that succeeds we try to turn it into UTF-8. If *that* fails, we provide additional context about *where* the file has the first invalid UTF-8 character.

Fix #76869.
2025-01-22 20:37:24 +01:00
Matthias Krüger
413f87a1f8
Rollup merge of #135858 - fmease:rustdoc-mv-obj-save-dyn-compat-ii, r=GuillaumeGomez
rustdoc: Finalize dyn compatibility renaming

Update the Reference link to use the new URL fragment from https://github.com/rust-lang/reference/pull/1666 (this change has finally hit stable). Fixes a FIXME.

Follow-up to #131594.
Part of #130852.
2025-01-22 19:29:42 +01:00
Matthias Krüger
b0bb6e3474
Rollup merge of #135850 - alexcrichton:update-wasm-component-ld, r=jieyouxu
Update the `wasm-component-ld` tool

This commit updates the `wasm-component-ld` tool from 0.5.11 to 0.5.12. This pulls in a fix for the binary adapters that are included with this tool for an issue described in bytecodealliance/wasmtime#10058. Some other dependencies have additionally been updated in the meantime of `wasm-component-ld` but there should otherwise be no major changes.
2025-01-22 19:29:42 +01:00
onur-ozkan
e3a5314e0a reduce number of prepare_cargo_test args
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:48:44 +03:00
onur-ozkan
17b2ede40d resolve clippy FIXME
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:45:52 +03:00
onur-ozkan
c568da9f16 make bootstrap self test to use bootstrap cargo
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:36:17 +03:00
onur-ozkan
f0dfda124d fix outdated file path ref in llvm
This was added years ago and is outdated today.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 16:52:04 +03:00
Jakub Beránek
7877883339
Run the glibc run-make test in opt-dist 2025-01-22 12:47:44 +01:00
Boxy
513bfaa8bc Use structurally_normalize instead of manual normalizes-to goals 2025-01-22 07:04:53 +00:00
Yotam Ofek
48b5481943 rustdoc: extract duplicated code into method 2025-01-22 05:30:51 +00:00
Yotam Ofek
1dee842c92 rustdoc: use std's (unstable) fmt::from_fn instead of open-coding it 2025-01-22 05:13:52 +00:00
Yotam Ofek
73fc7af716 rustdoc: pass around decoration info by ref 2025-01-22 05:13:38 +00:00
许杰友 Jieyou Xu (Joe)
20229200c8 tests: port jobserver-error.rs to rmake.rs
Co-authored-by: Noa <coolreader18@gmail.com>
Co-authored-by: Oneirical <manchot@videotron.ca>
2025-01-22 12:26:50 +08:00
许杰友 Jieyou Xu (Joe)
ead78bb243 run-make-support: add set_aux_fd helper
Co-authored-by: Noa <coolreader18@gmail.com>
Co-authored-by: Oneirical <manchot@videotron.ca>
2025-01-22 12:26:14 +08:00
León Orell Valerian Liehr
ff7cf142c0
rustdoc: Finalize dyn compatibility renaming 2025-01-22 05:03:54 +01:00
bors
c234b839d1 Auto merge of #135848 - matthiaskrgr:rollup-sftciqm, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #132232 (CI: build FreeBSD artifacts on FreeBSD 13.4)
 - #135706 (Move `supertrait_def_ids` into the elaborate module like all other fns)
 - #135750 (Add an example of using `carrying_mul_add` to write wider multiplication)
 - #135793 (Ignore `mermaid.min.js`)
 - #135810 (Add Kobzol on vacation)
 - #135821 (fix OsString::from_encoded_bytes_unchecked description)
 - #135824 (tests: delete `cat-and-grep-sanity-check`)
 - #135833 (Add fixme and test for issue #135289)

Failed merges:

 - #135816 (Use `structurally_normalize` instead of manual `normalizes-to` goals in alias relate errors)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-22 01:13:23 +00:00
Esteban Küber
57dd42d613 Point at invalid utf-8 span on user's source code
```
error: couldn't read `$DIR/not-utf8-bin-file.rs`: stream did not contain valid UTF-8
  --> $DIR/not-utf8-2.rs:6:5
   |
LL |     include!("not-utf8-bin-file.rs");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: `[193]` is not valid utf-8
  --> $DIR/not-utf8-bin-file.rs:2:14
   |
LL |     let _ = "�|�␂!5�cc␕␂��";
   |              ^
   = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)
```

When we attempt to load a Rust source code file, if there is a OS file failure we try reading the file as bytes. If that succeeds we try to turn it into UTF-8. If *that* fails, we provide additional context about *where* the file has the first invalid UTF-8 character.

Fix #76869.
2025-01-22 00:52:27 +00:00
Alex Crichton
8600694b89 Update the wasm-component-ld tool
This commit updates the `wasm-component-ld` tool from 0.5.11 to 0.5.12.
This pulls in a fix for the binary adapters that are included with this
tool for an issue described in bytecodealliance/wasmtime#10058. Some
other dependencies have additionally been updated in the meantime of
`wasm-component-ld` but there should otherwise be no major changes.
2025-01-21 15:22:01 -08:00
Matthias Krüger
60cb6c4044
Rollup merge of #135824 - jieyouxu:delete-bintools-check, r=Noratrieb
tests: delete `cat-and-grep-sanity-check`

Part of #121876.

All remaining `Makefile`s have open PRs that do not rely on platform `cat` or `grep` or the `cat-and-grep` script.
2025-01-21 23:30:22 +01:00
Matthias Krüger
4af3ff8cd1
Rollup merge of #135706 - compiler-errors:elaborate, r=lcnr
Move `supertrait_def_ids` into the elaborate module like all other fns

It's strange that this is the only elaborate-like fn on tcx.

r? lcnr
2025-01-21 23:30:18 +01:00
Matthias Krüger
ea594c692b
Rollup merge of #132232 - asomers:fbsd-13.4, r=Mark-Simulacrum
CI: build FreeBSD artifacts on FreeBSD 13.4

13.2 is EoL, and 13.3 will be EoL too in about 2 months.  Plus, both suffer from a bug in LLVM's libunwind.  It causes a segfault inside of std::backtrace::Backtrace::capture().

Fixes #132185

cc ``````@ehuss`````` .  before you can do the trybuild, you'll also have to download new FreeBSD 13.4 base.txz images and place them in https://ci-mirrors.rust-lang.org/rustc , then update this PR with the correct file names.

try-job: dist-x86_64-freebsd
try-job: dist-various-2
2025-01-21 23:30:17 +01:00
bors
a24bdc60ce Auto merge of #135487 - klensy:windows-0.59, r=Mark-Simulacrum
bump compiler and tools to windows 0.59, bootstrap to 0.57

This bumps compiler and tools to windows 0.59 (temporary dupes version, as `sysinfo` still depend on <= 0.57).
Bootstrap bumps only to 0.57 (the same sysinfo dep).

This additionally resolves my comment https://github.com/rust-lang/rust/pull/130874#issuecomment-2393562071

Will work on it in follow up pr: There still some sus imports for `rustc_driver.dll` like ws2_32 or RoOriginateErrorW, but i will look at them later.
2025-01-21 22:29:46 +00:00
bors
ed43cbcb88 Auto merge of #134299 - RalfJung:remove-start, r=compiler-errors
remove support for the (unstable) #[start] attribute

As explained by `@Noratrieb:`
`#[start]` should be deleted. It's nothing but an accidentally leaked implementation detail that's a not very useful mix between "portable" entrypoint logic and bad abstraction.

I think the way the stable user-facing entrypoint should work (and works today on stable) is pretty simple:
- `std`-using cross-platform programs should use `fn main()`. the compiler, together with `std`, will then ensure that code ends up at `main` (by having a platform-specific entrypoint that gets directed through `lang_start` in `std` to `main` - but that's just an implementation detail)
- `no_std` platform-specific programs should use `#![no_main]` and define their own platform-specific entrypoint symbol with `#[no_mangle]`, like `main`, `_start`, `WinMain` or `my_embedded_platform_wants_to_start_here`. most of them only support a single platform anyways, and need cfg for the different platform's ways of passing arguments or other things *anyways*

`#[start]` is in a super weird position of being neither of those two. It tries to pretend that it's cross-platform, but its signature is  a total lie. Those arguments are just stubbed out to zero on ~~Windows~~ wasm, for example. It also only handles the platform-specific entrypoints for a few platforms that are supported by `std`, like Windows or Unix-likes. `my_embedded_platform_wants_to_start_here` can't use it, and neither could a libc-less Linux program.
So we have an attribute that only works in some cases anyways, that has a signature that's a total lie (and a signature that, as I might want to add, has changed recently, and that I definitely would not be comfortable giving *any* stability guarantees on), and where there's a pretty easy way to get things working without it in the first place.

Note that this feature has **not** been RFCed in the first place.

*This comment was posted [in May](https://github.com/rust-lang/rust/issues/29633#issuecomment-2088596042) and so far nobody spoke up in that issue with a usecase that would require keeping the attribute.*

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

try-job: x86_64-gnu-nopt
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: test-various
2025-01-21 19:46:20 +00:00
Michael Goulet
45929a8f46 Move supertrait_def_ids into the elaborate module like all other fns 2025-01-21 17:36:57 +00:00
Ralf Jung
56c90dc31e remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
klensy
6c5f084c77 tidy 2025-01-21 16:48:44 +03:00
klensy
5619398f40 bump bootsrap windows to 0.57 2025-01-21 16:48:44 +03:00
klensy
84ce2e129a bumpt compiler and tools to windows 0.59 2025-01-21 16:48:44 +03:00
许杰友 Jieyou Xu (Joe)
c45e97c549 tests: delete cat-and-grep-sanity-check
All remaining `Makefile`s have open PRs that do not rely on platform
`cat` or `grep`.
2025-01-21 21:37:14 +08:00
MarcoIeni
cd9dcfc6bc
ci: use ghcr buildkit image 2025-01-21 11:42:56 +01:00
Jakub Beránek
75f8cc6ab6
Enable verbose tests in opt-dist tests 2025-01-21 10:20:24 +01:00
Jakub Beránek
ef9349db86
Add test for checking used glibc symbols 2025-01-21 10:20:24 +01:00
bors
ebbe63891f Auto merge of #135632 - marcoieni:split-x86_64-msvc-2025, r=Kobzol
CI: split x86_64-msvc job using windows 2025

try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: dist-x86_64-msvc
2025-01-21 06:58:11 +00:00
bors
a42d5ecf34 Auto merge of #134286 - Urgau:unreach_pub-std, r=ibraheemdev
Enable `unreachable_pub` lint in core

This PR enables the [`unreachable_pub`](https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#unreachable-pub) as warn in `core`, `rtstartup` and `panic_unwind`.

The motivation is similar to the compiler [MCP: Enable deny(unreachable_pub) on `rustc_*` crates](https://github.com/rust-lang/compiler-team/issues/773#issue-2467219005) :

> "Where is this thing used?" is a question I ask all the time when reading unfamiliar code. Because of this, I generally find it annoying when things are marked with a more permissive visibility than necessary. "This thing marked pub, which other crates is it used in? Oh, it's not used in any other crates."

Another motivation is to help to lint by utilizing it in-tree and seeing it's limitation in more complex scenarios.

The diff was mostly generated with `./x.py fix --stage 1 library/core/ -- --broken-code`, as well as manual edits for code in macros, generated code and other targets.

r? libs
2025-01-20 23:34:04 +00:00
Matthias Krüger
b0eadb1a37
Rollup merge of #135775 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? ``@ghost``
2025-01-20 20:58:37 +01:00
Matthias Krüger
0d5b8138bb
Rollup merge of #135333 - vayunbiyani:test-environment, r=RalfJung
Partial progress on #132735: Replace extern "rust-intrinsic" with #[rustc_intrinsic] across the codebase

Part of #132735: Replace `extern "rust-intrinsic"` with `#[rustc_intrinsic]` macro

- Updated all instances of `extern "rust-intrinsic"` to use the `#[rustc_intrinsic]` macro.
- Skipped `.md` files and test files to avoid unnecessary changes.
2025-01-20 20:58:35 +01:00
Urgau
8e61502484 core: add #![warn(unreachable_pub)] 2025-01-20 18:35:32 +01:00
MarcoIeni
a175e8d903
CI: free disk on linux arm runner 2025-01-20 17:38:17 +01:00
vayunbiyani
c79fc90e9a Updated several files to use rust intrinsic macros instead of the legacy extern "rust-intrinsic" blocks 2025-01-20 09:15:23 -05:00