Commit graph

9969 commits

Author SHA1 Message Date
The Miri Cronjob Bot
c301bf9629 Preparing for merge from rustc 2024-03-08 05:09:59 +00:00
Ralf Jung
3c2318c0b2 make remaining FloatTy matches exhaustive 2024-03-06 19:48:55 +01:00
Ralf Jung
a5a843726c Merge from rustc 2024-03-06 19:41:01 +01:00
beetrees
d626d135bc
Use rustc_driver::args::raw_args() in Clippy 2024-03-07 00:20:01 +00:00
beetrees
63091b105d
Make arg_expand_all not short-circuit on first error 2024-03-07 00:19:55 +00:00
Matthias Krüger
efe9deace8
Rollup merge of #121382 - nnethercote:rework-untranslatable_diagnostic-lint, r=davidtwco
Rework `untranslatable_diagnostic` lint

Currently it only checks calls to functions marked with `#[rustc_lint_diagnostics]`. This PR changes it to check calls to any function with an `impl Into<{D,Subd}iagnosticMessage>` parameter. This greatly improves its coverage and doesn't rely on people remembering to add `#[rustc_lint_diagnostics]`. It also lets us add `#[rustc_lint_diagnostics]` to a number of functions that don't have an `impl Into<{D,Subd}iagnosticMessage>`, such as `Diag::span`.

r? ``@davidtwco``
2024-03-06 22:02:46 +01:00
Ralf Jung
4b955f14db Preparing for merge from rustc 2024-03-06 19:40:31 +01:00
bors
3314d5ce4c Auto merge of #121956 - ChrisDenton:srwlock, r=joboet
Windows: Implement condvar, mutex and rwlock using futex

Well, the Windows equivalent: [`WaitOnAddress`,](https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitonaddress) [`WakeByAddressSingle`](https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-wakebyaddresssingle) and [`WakeByAddressAll`](https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-wakebyaddressall).

Note that Windows flavoured futexes can be different sizes (1, 2, 4 or 8 bytes). I took advantage of that in the `Mutex` implementation.

I also edited the Mutex implementation a bit more than necessary. I was having trouble keeping in my head what 0, 1 and 2 meant so I replaced them with consts.

I *think* we're maybe spinning a bit much. `WaitOnAddress` seems to be looping quite a bit too. But for now I've keep the implementations the same. I do wonder if it'd be worth reducing or removing our spinning on Windows.

This also adds a new shim to miri, because of course it does.

Fixes #121949
2024-03-06 12:19:40 +00:00
bors
033c1e00b0 Auto merge of #3340 - RalfJung:no-disable-abi-check, r=oli-obk
remove the ability to disable ABI checking

This got deprecated in https://github.com/rust-lang/miri/pull/3071, about half a year ago.

`@rust-lang/miri` I think it's fine to remove this now.
2024-03-06 07:37:33 +00:00
Nicholas Nethercote
b7d58eef4b Rewrite the untranslatable_diagnostic lint.
Currently it only checks calls to functions marked with
`#[rustc_lint_diagnostics]`. This commit changes it to check calls to
any function with an `impl Into<{D,Subd}iagMessage>` parameter. This
greatly improves its coverage and doesn't rely on people remembering to
add `#[rustc_lint_diagnostics]`.

The commit also adds `#[allow(rustc::untranslatable_diagnostic)`]
attributes to places that need it that are caught by the improved lint.
These places that might be easy to convert to translatable diagnostics.

Finally, it also:
- Expands and corrects some comments.
- Does some minor formatting improvements.
- Adds missing `DecorateLint` cases to
  `tests/ui-fulldeps/internal-lints/diagnostics.rs`.
2024-03-06 14:19:01 +11:00
bors
62415e2a95 Auto merge of #122041 - matthiaskrgr:rollup-imsmdke, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #121202 (Limit the number of names and values in check-cfg diagnostics)
 - #121301 (errors: share `SilentEmitter` between rustc and rustfmt)
 - #121658 (Hint user to update nightly on ICEs produced from outdated nightly)
 - #121846 (only compare ambiguity item that have hard error)
 - #121961 (add test for #78894 #71450)
 - #121975 (hir_analysis: enums return `None` in `find_field`)
 - #121978 (Fix duplicated path in the "not found dylib" error)
 - #121991 (Merge impl_trait_in_assoc_types_defined_by query back into `opaque_types_defined_by`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-06 00:03:50 +00:00
Matthias Krüger
9153451a91
Rollup merge of #121301 - davidtwco:rustfmt-silent-emitter, r=pnkfelix
errors: share `SilentEmitter` between rustc and rustfmt

Fixes rust-lang/rustfmt#6082.

Shares the `SilentEmitter` between rustc and rustfmt, and gives it a fallback bundle (since it can emit diagnostics in some contexts).
2024-03-05 19:53:18 +01:00
Jason Newcomb
be9b125d41 Convert TypeVisitor and DefIdVisitor to use VisitorResult 2024-03-05 13:28:15 -05:00
bors
c7beecf3e3 Auto merge of #121992 - jieyouxu:fix-tidy-unpaired-revision, r=onur-ozkan
tidy: split dots in filename not the entire path when checking for stray stdout/stderr files

I committed a path crime by splitting the entire path on `.`, when I meant to split on the filename. This means that any parent folders which contain `.` will cause tidy failure. Added a regression test so that doesn't happen again.

### Follow-up

- [ ] Adjust rustc-dev-guide to document assert on test name not containing dots. https://github.com/rust-lang/rustc-dev-guide/pull/1927

Fixes #121986.
2024-03-05 13:02:42 +00:00
David Wood
2ee0409f32
errors: share SilentEmitter between rustc and rustfmt
Signed-off-by: David Wood <david@davidtw.co>
2024-03-05 10:14:36 +00:00
许杰友 Jieyou Xu (Joe)
53f48ddbc7
Assert that test names cannot contain dots
This is so that we can catch stray test output files, since test names
without dots can form predictable patterns we can match on.
2024-03-05 08:11:27 +00:00
Nicholas Nethercote
d602394827 Change message type in bug functions.
From `impl Into<DiagnosticMessage>` to `impl Into<Cow<'static, str>>`.

Because these functions don't produce user-facing output and we don't
want their strings to be translated.
2024-03-05 17:11:42 +11:00
bors
1547c076bf Auto merge of #121780 - nnethercote:diag-renaming2, r=davidtwco
Diagnostic renaming 2

A sequel to #121489.

r? `@davidtwco`
2024-03-05 02:58:34 +00:00
Nicholas Nethercote
d98ad0a181 Rename DiagnosticExt as DiagExt. 2024-03-05 12:14:49 +11:00
Nicholas Nethercote
18715c98c6 Rename DiagnosticMessage as DiagMessage. 2024-03-05 12:14:49 +11:00
Chris Denton
f700641bd9
Windows: Implement mutex using futex
Well, the Windows equivalent: `WaitOnAddress`, `WakeByAddressSingle` and `WakeByAddressAll`.
2024-03-05 00:19:42 +00:00
bors
2eeff462b7 Auto merge of #120675 - oli-obk:intrinsics3.0, r=pnkfelix
Add a scheme for moving away from `extern "rust-intrinsic"` entirely

All `rust-intrinsic`s can become free functions now, either with a fallback body, or with a dummy body and an attribute, requiring backends to actually implement the intrinsic.

This PR demonstrates the dummy-body scheme with the `vtable_size` intrinsic.

cc https://github.com/rust-lang/rust/issues/63585

follow-up to #120500

MCP at https://github.com/rust-lang/compiler-team/issues/720
2024-03-05 00:13:01 +00:00
bors
50e77f133f Auto merge of #121998 - matthiaskrgr:rollup-l7lzwpb, r=matthiaskrgr
Rollup of 10 pull requests

Successful merges:

 - #120976 (constify a couple thread_local statics)
 - #121683 (Fix LVI tests after frame pointers are enabled by default)
 - #121703 (Add a way to add constructors for `rustc_type_ir` types)
 - #121732 (Improve assert_matches! documentation)
 - #121928 (Extract an arguments struct for `Builder::then_else_break`)
 - #121939 (Small enhancement to description of From trait)
 - #121968 (Don't run test_get_os_named_thread on win7)
 - #121969 (`ParseSess` cleanups)
 - #121977 (Doc: Fix incorrect reference to integer in Atomic{Ptr,Bool}::as_ptr.)
 - #121994 (Update platform-support.md with supported musl version)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-04 21:56:57 +00:00
dependabot[bot]
5294dd8afd
Bump mio from 0.8.10 to 0.8.11 in /test_dependencies
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 21:30:41 +00:00
Matthias Krüger
13b971209a
Rollup merge of #121969 - nnethercote:ParseSess-cleanups, r=wesleywiser
`ParseSess` cleanups

The main change here is to rename all `ParseSess` values as `psess`. Plus a few other small cleanups.

r? `@wesleywiser`
2024-03-04 22:16:33 +01:00
Nicholas Nethercote
80d2bdb619 Rename all ParseSess variables/fields/lifetimes as psess.
Existing names for values of this type are `sess`, `parse_sess`,
`parse_session`, and `ps`. `sess` is particularly annoying because
that's also used for `Session` values, which are often co-located, and
it can be difficult to know which type a value named `sess` refers to.
(That annoyance is the main motivation for this change.) `psess` is nice
and short, which is good for a name used this much.

The commit also renames some `parse_sess_created` values as
`psess_created`.
2024-03-05 08:11:45 +11:00
许杰友 Jieyou Xu (Joe)
9bebbf14c5
Use Path::file_stem instead 2024-03-04 20:07:39 +00:00
许杰友 Jieyou Xu (Joe)
b4936133bb
Split dots in filename, not the entire path 2024-03-04 19:30:53 +00:00
bors
d18480b84f Auto merge of #120468 - alexcrichton:start-wasm32-wasi-rename, r=wesleywiser
Add a new `wasm32-wasip1` target to rustc

This commit adds a new target called `wasm32-wasip1` to rustc. This new target is explained in these two MCPs:

* https://github.com/rust-lang/compiler-team/issues/607
* https://github.com/rust-lang/compiler-team/issues/695

In short, the previous `wasm32-wasi` target is going to be renamed to `wasm32-wasip1` to better live alongside the [new `wasm32-wasip2` target](https://github.com/rust-lang/rust/pull/119616). This new target is added alongside the `wasm32-wasi` target and has the exact same definition as the previous target. This PR is effectively a rename of `wasm32-wasi` to `wasm32-wasip1`. Note, however, that as explained in rust-lang/compiler-team#695 the previous `wasm32-wasi` target is not being removed at this time. This change will reach stable Rust before even a warning about the rename will be printed. At this time this change is just the start where a new target is introduced and users can start migrating if they support only Nightly for example.
2024-03-04 18:55:14 +00:00
bors
65ec028455 Auto merge of #3358 - RalfJung:zzz, r=RalfJung
give macOS even more time to sleep
2024-03-04 18:45:12 +00:00
Ralf Jung
2b40181cb3 give macOS even more time to sleep 2024-03-04 19:11:09 +01:00
bors
790287a08f Auto merge of #3357 - RalfJung:imports, r=RalfJung
reorder rustc crate imports a bit
2024-03-04 17:57:38 +00:00
Oli Scherer
aa2ae6b491 Add is_intrinsic helper 2024-03-04 16:13:50 +00:00
bors
4fdb2152d9 Auto merge of #3356 - RalfJung:typo, r=RalfJung
Conjob → Cronjob

Same as https://github.com/rust-lang/miri-test-libstd/pull/44
2024-03-04 16:08:52 +00:00
Ralf Jung
45d955edb0 reorder rustc crate imports a bit 2024-03-04 16:23:25 +01:00
Ralf Jung
a477cf45ff Conjob → Cronjob 2024-03-04 16:22:30 +01:00
Ben Kimock
75f6694ce8 Use cargo miri clean in build-all-targets.sh 2024-03-04 10:13:49 -05:00
Ralf Jung
974446eb92 we properly rebuild the cache now when MIRI_LIB_SRC contents change 2024-03-04 15:07:35 +01:00
bors
e87f82578d Auto merge of #3351 - RalfJung:diagnostic-dedup-considered-harmful, r=RalfJung
disable diagnostic deduplication

`@oli-obk` is there a better way to do this? Ideally we'd only set this when interpretation starts but the value in the compiler session seems to be immutable. I assume people will do `cargo check` before `cargo miri` so hopefully this won't lead to too much confusion.

Fixes https://github.com/rust-lang/miri/issues/3350
2024-03-04 09:21:33 +00:00
bors
ede97c6510 Auto merge of #3339 - RalfJung:remove-old-flags, r=saethlin
remove some flags that haven't had an effect in a while

`@rust-lang/miri` any objections to this?
2024-03-04 08:34:11 +00:00
Ralf Jung
f70feaf604 linux-futex test: add comment 2024-03-04 09:34:07 +01:00
Ralf Jung
d5f31bda4f implement manual deduplication for isolation-error=warn-nobacktrace 2024-03-04 09:34:07 +01:00
Ralf Jung
fbafd36333 disable diagnostic deduplication 2024-03-04 09:34:07 +01:00
Nicholas Nethercote
aa38c26bbf Tweak parse_asm_args.
It doesn't need a `Parser` and a `ParseSess`, because the former
contains the latter.
2024-03-04 16:12:33 +11:00
bors
8b1af4c661 Auto merge of #120585 - Amanieu:ohos-tier2, r=Kobzol
Promote OpenHarmony targets to tier 2

MCP: rust-lang/compiler-team#719
2024-03-04 03:03:35 +00:00
Matthias Krüger
d37ad03513
Rollup merge of #121248 - c410-f3r:testsssssss, r=petrochenkov
Move some tests

r? `@petrochenkov`
2024-03-03 22:56:12 +01:00
Caio
2aab000105 Move tests 2024-03-03 16:30:48 -03:00
bors
279c9ba260 Auto merge of #121936 - RalfJung:miri, r=RalfJung
Miri subtree update

r? `@ghost`
2024-03-03 16:34:15 +00:00
bors
f47732b55e Auto merge of #3330 - RossSmyth:win-fmt, r=RalfJung
Fix .\miri fmt on Windows

This allows .\miri fmt to work on Windows. Closes #3317.

To reiterate, the problem with using `miri fmt` on Windows is that the CLI arguments to rustfmt are too long. Currently over 65,000 characters are used in the call to rustfmt, [which is incompatible with Windows](https://devblogs.microsoft.com/oldnewthing/20031210-00/?p=41553) as it is limited to (2^15 - 1) for all arguments plus all env vars.

Two things are done do get around this limit:

1. Call out to cargo-fmt for the crates that exist.
2. Batch rustfmt calls by length

Another alternative would be to just use rustfmt for everything and don't use cargo-fmt for the crates.

I don't know how much you guys may care about `miri fmt` time to run. I don't know the diff as it did not work before on my computer.

[I have another branch that solves this, but in a less permanent way](RossSmyth/miri/tree/windows-fmt). That was my initial attempt, and I learned that even with cargo-fmt and relative paths, the rustfmt call still has 27k characters. This is closer to the limit than I expected, so it would not be a permanent solution. So I went back to absolute paths & batching.
2024-03-03 14:02:57 +00:00
Ralf Jung
83e2e2d89d
nits and typos 2024-03-03 15:00:47 +01:00