Commit graph

251042 commits

Author SHA1 Message Date
bors
5730fc5f4d Auto merge of #3433 - RalfJung:m1, r=RalfJung
experiment with macOS M1 runners

Try running our macOS CI on the new free M1 runners. This would mean that our 3 jobs run 3 different OSes and 3 different host CPU architectures. :)
2024-03-31 10:31:12 +00:00
Ralf Jung
1935268557 reset the caches
looks like the M1 runners don't like it when the cache was created on x86

also reorder the lines to be more semantically grouped
2024-03-31 12:29:31 +02:00
Ralf Jung
3c306c750e experiment with macOS M1 runners 2024-03-31 12:05:34 +02:00
bors
25b734dac6 Auto merge of #3436 - RalfJung:win-ci, r=RalfJung
speed up Windows CI

The many-seeds test is taking 15 minutes. Let's just run that only once instead of many times on Windows.

Also refactor the CI script to make the caller control which tests are being run.
2024-03-31 09:28:12 +00:00
Ralf Jung
a8edf26a61 move './miri check' for features to the style check job 2024-03-31 10:44:18 +02:00
Ralf Jung
660a5713f5 python: fix regex backslash escapes 2024-03-31 10:38:50 +02:00
Ralf Jung
540f2411e6 show the time that the main CI steps take 2024-03-31 10:38:49 +02:00
Ralf Jung
e9ee19004e also control the cargo-miri env var test separately 2024-03-31 10:38:31 +02:00
Ralf Jung
836ea71d05 windows ci: run many-seeds test less often 2024-03-31 10:38:31 +02:00
Ralf Jung
9395e1fa6f bash: use variable expansion that properly distinguishes null vs non-existing 2024-03-31 10:38:31 +02:00
Ralf Jung
5d1e92d132 ci: separetely control which host-only tests are run where
No functional change in this commit
2024-03-31 10:38:30 +02:00
bors
ff20a442ce Auto merge of #3437 - RalfJung:extern-so, r=RalfJung
extern-so: give the version script a better name; show errors from failing to build the C lib
2024-03-31 08:12:02 +00:00
Ralf Jung
38780aa5a4 there is no need for these wildcards 2024-03-31 10:10:35 +02:00
Ralf Jung
b5642b361f extern-so: give the version script a better name; show errors from failing to build the C lib 2024-03-31 10:08:56 +02:00
bors
d5de305fef Auto merge of #3435 - rust-lang:rustup-2024-03-31, r=saethlin
Automatic Rustup
2024-03-31 05:44:17 +00:00
The Miri Cronjob Bot
eb8e8c06b6 Merge from rustc 2024-03-31 05:40:36 +00:00
The Miri Cronjob Bot
2dd824789c Preparing for merge from rustc 2024-03-31 05:33:07 +00:00
bors
5baf1e13f5 Auto merge of #122459 - Nadrieril:sort-eq, r=oli-obk
match lowering: sort `Eq` candidates in the failure case too

This is a slight tweak to MIR gen of matches. Take a match like:
```rust
match (s, flag) {
    ("a", _) if foo() => 1,
    ("b", true) => 2,
    ("a", false) => 3,
    (_, true) => 4,
    _ => 5,
}
```
If we switch on `s == "a"`, the first candidate matches, and we learn almost nothing about the second candidate. So there's a choice:
1. (what we do today) stop sorting candidates, keep the "b" case grouped with everything below. This could allow us to be clever here and test on `flag == true` next.
2. (what this PR does) sort "b" into the failure case. The "b" will be alone (fewer opportunities for picking a good test), but that means the two "a" cases require a single test.

Today, we aren't clever in which tests we pick, so this is an unambiguous win. In a future where we pick tests better, idk. Grouping tests as much as possible feels like a generally good strategy.

This was proposed in https://github.com/rust-lang/rust/issues/29623 (9 years ago :D)
2024-03-31 02:12:50 +00:00
bors
1aedc9640c Auto merge of #123181 - stepancheg:pointee-metadata-debug, r=the8472,Amanieu
Require Debug for Pointee::Metadata

Useful for debugging.
2024-03-31 00:09:41 +00:00
bors
723acede10 Auto merge of #3434 - RalfJung:stacked-borrows-cache-consistency, r=RalfJung
cotrol stacked borrows consistency check with its own feature flag

Fixes https://github.com/rust-lang/miri/issues/3431
2024-03-30 22:57:13 +00:00
bors
a8fd61bf13 Auto merge of #3432 - RalfJung:gc-stress, r=RalfJung
run GC stress test only for host tests

I suspect these are a significant contributor to our Linux CI job being by far the slowest currently. Let's see.

We have Linux, Windows, and macOS hosts so all major OSes are still covered.
2024-03-30 22:14:41 +00:00
Ralf Jung
10217fdec6 cotrol stacked borrows consistency check with its own feature flag 2024-03-30 23:10:43 +01:00
bors
5da1a1b59a Auto merge of #123085 - tgross35:f16-f128-step4.0-libs-basic-impls, r=Amanieu
Add basic trait impls for `f16` and `f128`

Split off part of <https://github.com/rust-lang/rust/pull/122470> so the compiler doesn't ICE because it expects primitives to have some minimal traits.

Fixes <https://github.com/rust-lang/rust/issues/123074>
2024-03-30 21:58:49 +00:00
bors
8df7e723ea Auto merge of #99322 - GKFX:const-int-parse, r=Mark-Simulacrum
Make {integer}::from_str_radix constant

This commit makes FromStr on integers constant so that `const x: u32 = "23".parse();` works. More practical use-case is with environment variables at build time as discussed in https://github.com/rust-lang/rfcs/issues/1907.

Tracking issue #59133.

ACP: https://github.com/rust-lang/libs-team/issues/74
2024-03-30 19:56:58 +00:00
bors
70714e38f2 Auto merge of #123106 - maurer:cfi-closures, r=compiler-errors
CFI: Abstract Closures and Coroutines

This will abstract coroutines in a moment, it's just abstracting closures for now to show `@rcvalle`

This uses the same principal as the methods on traits - figure out the `dyn` type representing the fn trait, instantiate it, and attach that alias set. We're essentially just computing how we would be called in a dynamic context, and attaching that.
2024-03-30 17:56:26 +00:00
Ralf Jung
7f6d89dae9 move tests away from the slow Windows builder 2024-03-30 18:45:38 +01:00
Nadrieril
65efa5b3b9 Add FileCheck directives to the new tests. 2024-03-30 18:11:41 +01:00
Ralf Jung
9f6c675238 run GC stress test only for host tests 2024-03-30 17:58:34 +01:00
Matthew Maurer
8cc9a912d7 CFI: Rewrite closure and coroutine instances to their trait method
Similar to methods on a trait object, the most common way to indirectly
call a closure or coroutine is through the vtable on the appropriate
trait. This uses the same approach as we use for trait methods, after
backing out the trait arguments from the type.
2024-03-30 16:40:38 +00:00
Matthew Maurer
e974570c42 CFI: Only encode Coroutine Parent Args
Fixes #122705
2024-03-30 16:39:51 +00:00
Nadrieril
75d2e67ed2 Sort Eq candidates in the failure case too 2024-03-30 17:37:15 +01:00
Nadrieril
5ef9ad37ab Add test 2024-03-30 17:37:15 +01:00
Nadrieril
e67f5294df Regroup mir-opt tests of match building 2024-03-30 17:37:15 +01:00
bors
ef49365102 Auto merge of #123207 - Urgau:improve_ambi_non_null, r=Nadrieril
Add support for `NonNull`s in the `ambiguous_wide_ptr_comparisions` lint

This PR add support for `NonNull` pointers in the `ambiguous_wide_ptr_comparisions` lint.

Fixes https://github.com/rust-lang/rust/issues/121264
r? `@Nadrieril` (since you just reviewed #121268, feel free to reassign)
2024-03-30 15:53:28 +00:00
bors
f04352a7dd Auto merge of #3430 - RalfJung:doc, r=RalfJung
make some doc comments not doc tests

`./miri test --doc` will run doctests even if we have them disabled (that's a cargo quirk: https://github.com/rust-lang/cargo/issues/13668). This fixes that command to not fail.
2024-03-30 15:45:01 +00:00
Ralf Jung
a8b0f6f239 make some doc comments not doc tests 2024-03-30 16:42:33 +01:00
bors
1852728224 Auto merge of #123230 - matthiaskrgr:rollup-4twuzj4, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #121573 (unix_sigpipe: Add test for SIGPIPE disposition in child processes)
 - #123170 (Replace regions in const canonical vars' types with `'static` in next-solver canonicalizer)
 - #123200 (KCFI: Require -C panic=abort)
 - #123201 (Improve wording in std::any explanation)
 - #123224 (compiletest: print reason for failing to read tests)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-30 13:51:24 +00:00
Matthias Krüger
9b067df618
Rollup merge of #123224 - pacak:better-error-message, r=compiler-errors
compiletest: print reason for failing to read tests

Turns this
```
Could not read tests from /path/to/rust/tests/run-make
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build completed unsuccessfully in 0:00:05
```
into this:
```
Could not read tests from /path/to/rust/tests/run-make: run-make tests cannot have both `Makefile` and `rmake.rs`
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build completed unsuccessfully in 0:00:05
```

While first one is technically correct - it's not helpful at all, adding backtrace is not making it any better.
2024-03-30 14:30:51 +01:00
Matthias Krüger
558880ab88
Rollup merge of #123201 - Wilfred:patch-2, r=Nilstrieb
Improve wording in std::any explanation

Prefer 'log' over 'log out' to avoid confusion, and use backticks consistently.
2024-03-30 14:30:50 +01:00
Matthias Krüger
3afd111489
Rollup merge of #123200 - maurer:kcfi-abort, r=compiler-errors
KCFI: Require -C panic=abort

While the KCFI scheme is not incompatible with unwinding, LLVM's `invoke` instruction does not currently support KCFI bundles. While it likely will in the near future, we won't be able to assume that in Rust for a while.

We encountered this problem while [turning on closure support](https://github.com/rust-lang/rust/pull/123106#issuecomment-2027436640).

r? ``@workingjubilee``
2024-03-30 14:30:50 +01:00
Matthias Krüger
93f1443280
Rollup merge of #123170 - compiler-errors:const-statics, r=lcnr
Replace regions in const canonical vars' types with `'static` in next-solver canonicalizer

We shouldn't ever have non-static regions in consts on stable (or really any regions at all, lol).

The test I committed is less minimal than, e.g., https://github.com/rust-lang/rust/issues/123155?notification_referrer_id=NT_kwDOADgQyrMxMDAzNDU4MDI0OTozNjc0MzE0#issuecomment-2025472029 -- however, I believe that it actually portrays the underlying issue here a bit better than that one.

In the linked issue, we end up emitting a normalizes-to predicate for a const placeholder because we don't actually unify `false` and `""`. In the test I committed, we emit a normalizes-to predicate as a part of actually solving a negative coherence goal.

Fixes #123155
Fixes #118783

r? lcnr
2024-03-30 14:30:49 +01:00
Matthias Krüger
5977d63925
Rollup merge of #121573 - Enselic:sigpipe-child-process, r=Mark-Simulacrum
unix_sigpipe: Add test for SIGPIPE disposition in child processes

To make it clearer what the impact would be to stop using `SIG_IGN` and instead use a noop handler, like suggested [here](https://github.com/rust-lang/rust/issues/62569#issuecomment-1961586025) and implemented [here](https://github.com/rust-lang/rust/pull/121578).

Part of https://github.com/rust-lang/rust/issues/97889
2024-03-30 14:30:49 +01:00
George Bateman
3855b8bb60
Make {integer}::from_str_radix constant 2024-03-30 12:43:58 +00:00
bors
40116ad1ed Auto merge of #123214 - compiler-errors:subst, r=estebank
Assert that ADTs have the right number of args

We're doing it for many other types, let's also do ADTs 😇
2024-03-30 11:48:31 +00:00
bors
7e0ed43287 Auto merge of #123202 - estebank:issue-123009, r=compiler-errors
Do not attempt to write `ty::Err` on binding that isn't from current HIR Owner

Fix #123009. Follow up to #122119.
2024-03-30 08:38:48 +00:00
bors
d3accba79b Auto merge of #3428 - rust-lang:rustup-2024-03-30, r=RalfJung
Automatic Rustup
2024-03-30 08:29:08 +00:00
bors
50e3d6296d Auto merge of #123012 - maurer:cfi-supertraits, r=compiler-errors
CFI: Support calling methods on supertraits

Automatically adjust `Virtual` calls to supertrait functions to use the supertrait's trait object type as the receiver rather than the child trait.

cc `@compiler-errors` - this is the next usage of `trait_object_ty` I intend to have, so I thought it might be relevant while reviewing the existing one.
2024-03-30 06:38:18 +00:00
The Miri Cronjob Bot
28521fd2eb Merge from rustc 2024-03-30 05:23:38 +00:00
The Miri Cronjob Bot
fee9a8eab8 Preparing for merge from rustc 2024-03-30 05:16:27 +00:00
bors
174d07b539 Auto merge of #121948 - Gankra:stab-align, r=dtolnay
stabilize ptr.is_aligned, move ptr.is_aligned_to to a new feature gate

This is an alternative to #121920
2024-03-30 04:36:09 +00:00