Commit graph

149311 commits

Author SHA1 Message Date
Eric Huss
39f2d25090 Fix heading anchors in doc pages. 2024-03-18 09:13:18 -07:00
Esteban Küber
6c31f6ce12 Provide structured suggestion for #![feature(foo)]
```
error: `S2<'_>` is forbidden as the type of a const generic parameter
  --> $DIR/lifetime-in-const-param.rs:5:23
   |
LL | struct S<'a, const N: S2>(&'a ());
   |                       ^^
   |
   = note: the only supported types are integers, `bool` and `char`
help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types
   |
LL + #![feature(adt_const_params)]
   |
```

Fix #55941.
2024-03-18 16:08:58 +00:00
Matthias Krüger
1ac0239bd2
Rollup merge of #122649 - cuviper:min-llvm-17, r=nikic
Update the minimum external LLVM to 17

With this change, we'll have stable support for LLVM 17 and 18.
For reference, the previous increase to LLVM 16 was #117947.
2024-03-18 16:27:09 +01:00
Matthias Krüger
3fa48ec849
Rollup merge of #122647 - RalfJung:box-to-raw-retag, r=oli-obk
add_retag: ensure box-to-raw-ptr casts are preserved for Miri

In https://github.com/rust-lang/rust/pull/122233 I added `retag_box_to_raw` not realizing that we can already do `addr_of_mut!(*bx)` to turn a box into a raw pointer without an intermediate reference. We just need to ensure this information is preserved past the ElaborateBoxDerefs pass.

r? ``@oli-obk``
2024-03-18 16:27:08 +01:00
Matthias Krüger
4608079604
Rollup merge of #122480 - oli-obk:const-eval-span-no-opt, r=RalfJung
Avoid various uses of `Option<Span>` in favor of using `DUMMY_SP` in the few cases that used `None`

based on #122471

`DUMMY_SP` is already the sentinel value we have that says "no span". We don't need to wrap these `Span`s in a separate `Option`.
2024-03-18 16:27:07 +01:00
bors
3cdcdaf31b Auto merge of #122646 - saethlin:library-frame-pointers, r=onur-ozkan
Enable frame pointers for the standard library

There's been a few past experiments for enabling frame pointers for all our artifacts. I don't think that frame pointers in the distributed compiler are nearly as useful as frame pointers in the standard library. Our users are much more likely to be profiling apps written in Rust than they are profiling the Rust compiler.

So yeah it would be cool to have frame pointers in the compiler, but much more of the value is having them on the precompiled standard library. That's what this PR does.
2024-03-18 12:43:41 +00:00
Oli Scherer
be9317d1ec Prevent opaque types being instantiated twice with different regions within the same function 2024-03-18 10:26:10 +00:00
bors
13abc0ac9b Auto merge of #122558 - kjetilkjeka:llvm_bitcode_linker_no_trigger_rebuild, r=onur-ozkan
LLVM bitcode linker: use --cfg=parallel_compiler to avoid invalidating the build cache of rustdoc

fixes #122491

`@rustbot` ready
2024-03-18 09:48:40 +00:00
Oli Scherer
adda9da604 Avoid various uses of Option<Span> in favor of using DUMMY_SP in the few cases that used None 2024-03-18 09:34:08 +00:00
Ralf Jung
bcf8015177 remove retag_box_to_raw, it is no longer needed 2024-03-18 10:32:25 +01:00
Ralf Jung
c96fa5e143 add_retag: ensure box-to-raw-ptr casts are preserved for Miri 2024-03-18 10:32:25 +01:00
bors
b648a9a728 Auto merge of #3387 - RalfJung:bench, r=RalfJung
make 'invalidate' benchmark shorter

This is currently by far the slowest benchmark in our suite, taking >9s, when the second slowest takes 2.7s. So let's speed this up to 2.3s, making it still the second-slowest in the benchmark suite.

`@saethlin` any objections? Also, why is this called "invalidate"? It got added in https://github.com/rust-lang/miri/pull/3083 but I can't figure out the point of that name even after looking at the PR.^^ There should be a comment in the benchmark explaining what it is testing.
2024-03-18 08:52:41 +00:00
Ralf Jung
311024c575 rename 'invalidate' bench to something more clear 2024-03-18 08:59:19 +01:00
Ralf Jung
c99c314171 add exposed-provenance example where we miss UB 2024-03-18 08:55:49 +01:00
Matthias Krüger
069b93335f
Rollup merge of #122657 - beetrees:option-env-tests, r=compiler-errors,Nilstrieb
Move `option_env!` and `env!` tests to the `env-macro` directory

This PR moves the `option_env!` tests to there own directory (`extoption_env`), matching the naming convention used by the tests for `env!` (which live in the `extenv` directory).
2024-03-18 06:58:50 +01:00
Kjetil Kjeka
7bdd63dcdd LLVM bitcode linker: use --cfg=parallell_compiler to avoid trashing the cache of rustdoc 2024-03-17 23:20:40 +01:00
beetrees
36514015ff
Move option_env! and env! tests to the env-macro directory 2024-03-17 21:59:40 +00:00
onur-ozkan
a61bf3093e use --cap-lints only when deny and forbid rules are not specified
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-03-18 00:13:52 +03:00
onur-ozkan
1945e8f1f6 pass ignored lints after manual ones
Previously, when passing lint rules manually using `x clippy ..`, ignored lints would
override manual ones. This change corrects the order by passing ignored lints after the
manual ones.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-03-18 00:13:48 +03:00
onur-ozkan
b43dc065dd add unit test: order_of_clippy_rules
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-03-18 00:13:29 +03:00
onur-ozkan
ead18f43f8 reorder clippy rules to their original order before passing them
We need to keep the order of the given clippy lint rules before passing them.
Since clap doesn't offer any useful interface for this purpose out of the box,
we have to handle it manually.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-03-18 00:10:23 +03:00
Michael Howell
2e368bfe9e Fix style errors 2024-03-17 13:59:46 -07:00
Josh Stone
f512f9e949
Use pushd and popd
Co-authored-by: Urgau <3616612+Urgau@users.noreply.github.com>
2024-03-17 13:10:49 -07:00
Josh Stone
7936e18213
Use the rust-lang/gcc repo directly
Co-authored-by: Urgau <3616612+Urgau@users.noreply.github.com>
2024-03-17 13:08:06 -07:00
Scott McMurray
e032248210 MIRI tests to confirm it's typed 2024-03-17 11:59:18 -07:00
Josh Stone
9d66b1b202 ci: Build gccjit from a git archive
A full `git clone` of GCC includes quite a lot of history, and it's
completely unnecessary for building it in CI. We can use a GitHub
archive URL to get a simple tarball that is much faster to download.

Also, the `gcc-build` directory can be removed after install to reduce
the image size even further.
2024-03-17 11:45:07 -07:00
Matthias Krüger
1588d9bdc8
Rollup merge of #122636 - matthiaskrgr:compl3, r=compiler-errors
some minor code simplifications
2024-03-17 19:26:23 +01:00
Josh Stone
29430554f6 Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
Ayush Singh
c1cf422140
Mark UEFI std support as WIP
Signed-off-by: Ayush Singh <ayushdevel1325@gmail.com>
2024-03-17 21:32:50 +05:30
Ben Kimock
aeb3447f61 Enable frame pointers for the library 2024-03-17 12:01:18 -04:00
Ben Kimock
9e0d1a3284 Print a backtrace in const eval if interrupted 2024-03-17 11:55:20 -04:00
bors
35dfc67d94 Auto merge of #122637 - matthiaskrgr:rollup-bczj5bp, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #121236 (Don't show suggestion if slice pattern is not top-level)
 - #121787 (run change tracker even when config parse fails)
 - #122633 (avoid unnecessary collect())

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-17 13:55:27 +00:00
onur-ozkan
b75e6b4e7e fetch submodule before checking llvm stamp
Previously, we were checking the LLVM stamp before fetching the submodule
which leads to not being able to compile llvm on submodule updates.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-03-17 16:41:16 +03:00
Ralf Jung
a6f362f471 make 'invalidate' benchmark shorter 2024-03-17 14:30:03 +01:00
Matthias Krüger
2448162729
Rollup merge of #121787 - onur-ozkan:improve-change-tracker, r=albertlarsan68
run change tracker even when config parse fails

Please note that we are currently validating the build configuration on two entry points (e.g., profile validation is handled on the python side), and change tracker system is handled on the rust side. Once #94829 is completed (scheduled for 2024), we will be able to handle this more effectively.

Fixes #121756
2024-03-17 14:04:14 +01:00
Matthias Krüger
0437a0c372 some minor code simplifications 2024-03-17 13:44:44 +01:00
bors
a0c20d52e0 Auto merge of #122628 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`
2024-03-17 11:53:08 +00:00
Martin Nordholts
bc5aeb14f5 compiletest: Remove unneeded pub on get_lib_name() 2024-03-17 12:46:53 +01:00
Ralf Jung
b4cb2ee55f fix Zulip topic for PR-creation message 2024-03-17 10:56:36 +01:00
Laurențiu Nicola
20ecf0744d Merge commit '5ecace48f6' into sync-from-ra 2024-03-17 11:04:52 +02:00
Matthias Krüger
ea0745604f
Rollup merge of #122295 - Nadrieril:mir-opt-run-current-target, r=Mark-Simulacrum
mir-opt: always run tests for the current target

Currently, `./x.py test tests/mir-opt` runs only the tests for the current target, and `./x.py test tests/mir-opt --bless` runs tests for a representative set of targets. That representative set does not include the current target however, which means `--bless` can succeed when tests fail without it. This PR ensures we run the current target always.

Fixes https://github.com/rust-lang/rust/issues/122292
cc ``@RalfJung``
2024-03-17 08:23:26 +01:00
Matthias Krüger
a5dbdc2fa9
Rollup merge of #122248 - jieyouxu:rmake-sysroot, r=Mark-Simulacrum
Respect stage0 sysroot when compiling rmake.rs with COMPILETEST_FORCE_STAGE0

Context: <https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/stage0.20compiletest.20broken>.
> cg_clif uses `COMPILETEST_FORCE_STAGE0=1 ./x.py test --stage 0` for running the rustc test suite. With the introduction of rmake.rs this broke. `librun_make_support.rlib` is compiled using the bootstrap rustc wrapper which sets `--sysroot build/aarch64-unknown-linux-gnu/stage0-sysroot`, but then compiletest will compile `rmake.rs` using the sysroot of the bootstrap compiler causing it to not find the `libstd.rlib` against which `librun_make_support.rlib` is compiled.

cc ``@bjorn3``

Fixes #122196.
2024-03-17 08:23:25 +01:00
The Miri Cronjob Bot
0dff16a30c Merge from rustc 2024-03-17 05:22:24 +00:00
The Miri Cronjob Bot
96674fce4c Preparing for merge from rustc 2024-03-17 05:15:04 +00:00
Michael Howell
5b44bfda7f rustdoc-search: shard the search result descriptions
The descriptions are, on almost all crates[^1], the majority
of the size of the search index, even though they aren't really
used for searching. This makes it relatively easy to separate
them into their own files.

This commit also bumps us to ES8. Out of the browsers we support,
all of them support async functions according to caniuse.

https://caniuse.com/async-functions

[^1]:
    <https://microsoft.github.io/windows-docs-rs/>, a crate with
    44MiB of pure names and no descriptions for them, is an outlier
    and should not be counted.
2024-03-16 22:07:30 -07:00
bors
c8f0d492a7 Auto merge of #122321 - majaha:mingw_ci_new, r=Mark-Simulacrum
`mv` tools off the path instead of `rm -r`-ing them in `install-msys2.sh`

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

r? `@Mark-Simulacrum`
2024-03-17 04:31:11 +00:00
bors
a615cea333 Auto merge of #121885 - reitermarkus:generic-nonzero-inner, r=oli-obk,wesleywiser
Move generic `NonZero` `rustc_layout_scalar_valid_range_start` attribute to inner type.

Tracking issue: https://github.com/rust-lang/rust/issues/120257

r? `@dtolnay`
2024-03-17 02:27:52 +00:00
bors
c8813ddd6d Auto merge of #122607 - fmease:rollup-ozl1eeq, r=fmease
Rollup of 9 pull requests

Successful merges:

 - #117918 (Add `wasm_c_abi` `future-incompat` lint)
 - #121545 (fix attribute validation on associated items in traits)
 - #121720 (Split refining_impl_trait lint into _reachable, _internal variants)
 - #122270 (fix `long-linker-command-lines` failure caused by `rust.rpath=false`)
 - #122564 (Delegation: fix ICE on duplicated associative items)
 - #122577 (Remove obsolete parameter `speculative` from `instantiate_poly_trait_ref`)
 - #122601 (Optimize `ptr::replace`)
 - #122604 (Mention jieyouxu for changes to compiletest, run-make tests and the run-make-support library)
 - #122605 (rustc-metadata: Store crate name in self-profile of metadata_register_crate)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-17 00:22:29 +00:00
许杰友 Jieyou Xu (Joe)
cacdf92d37
Note that type param is chosen by caller when suggesting return impl Trait 2024-03-16 23:20:42 +00:00
León Orell Valerian Liehr
0995508562
Rollup merge of #121720 - tmandry:split-refining, r=compiler-errors
Split refining_impl_trait lint into _reachable, _internal variants

As discussed in https://github.com/rust-lang/rust/issues/119535#issuecomment-1909352040:

> We discussed this today in triage and developed a consensus to:
>
> * Add a separate lint against impls that refine a return type defined with RPITIT even when the trait is not crate public.
> * Place that in a lint group along with the analogous crate public lint.
> * Create an issue to solicit feedback on these lints (or perhaps two separate ones).
> * Have the warnings displayed with each lint reference this issue in a similar manner to how we do that today with the required `Self: '0'` bound on GATs.
> * Make a note to review this feedback on 2-3 release cycles.

This points users to https://github.com/rust-lang/rust/issues/121718 to leave feedback.
2024-03-16 23:28:47 +01:00