Commit Graph

3046 Commits

Author SHA1 Message Date
Ralf Jung
8356f4cc23 output realpath as a path, and remove a bogus test 2022-08-02 18:08:43 -04:00
Christian Legnitto
b43bede938 Add shim for realpath on unix 2022-08-02 17:27:11 -04:00
Ralf Jung
9ffea913b8 clippy 2022-08-01 09:27:56 -04:00
Hiroki6
66f6fa68fa Fix typo in eval.rs 2022-07-31 16:15:11 +02:00
Oli Scherer
cd6b723bb6 Add default impls for FileDescriptor methods 2022-07-25 17:57:56 +00:00
bors
6227e1e3a8 Auto merge of #2422 - RalfJung:integers, r=oli-obk
enable clippy lints against integer casts

Cc https://github.com/rust-lang/miri/issues/1236
2022-07-25 11:46:55 +00:00
bors
3d237be15c Auto merge of #2436 - RalfJung:lib-crates, r=oli-obk
fix build.rs invoking RUSTC to do check builds

This makes the Miri driver, when invokved via the RUSTC env var from inside a build script, behave almost entirely like rustc. I had to redo how we propagate sysroot information for this (which is actually back to how we used to do sysroot propagation many years ago).

Fixes https://github.com/rust-lang/miri/issues/2431
2022-07-25 10:39:02 +00:00
Ralf Jung
cbff63a694 rustup 2022-07-24 17:51:39 -04:00
Ralf Jung
d905901d65 make miri a better RUSTC by default inside cargo-miri
this requires a change in sysroot handling: miri driver now requires
MIRI_SYSROOT to be set when it is in 'target' mode, rather than relying on
`--sysroot` always being present.
2022-07-24 13:30:32 -04:00
bors
62efc6201b Auto merge of #2427 - Nilstrieb:doc-fix, r=saethlin
Fix outdated docs in sb stack cache

Since `Item` is bitpacked now, the full `Item` is stored in the cache.
2022-07-23 23:21:26 +00:00
Nilstrieb
8b643809cc Fix outdated docs in sb stack cache
Since `Item` is bitpacked now, the full `Item` is stored in the cache.
2022-07-24 00:35:02 +02:00
Ralf Jung
b08e51d79a refactor away some 'else { None }' 2022-07-23 12:30:48 -04:00
Ralf Jung
649b216482 add a flag to print a diagnostic when an outdated value is returned from an atomic load 2022-07-23 09:39:02 -04:00
Ralf Jung
7f6034862d pass clippy::cast_possible_truncation 2022-07-23 09:14:13 -04:00
Ralf Jung
b67a6ff099 pass clippy::cast_sign_loss and clippy::cast_possible_wrap 2022-07-23 09:13:38 -04:00
Ralf Jung
3f0fdf290f pass clippy::cast_lossless 2022-07-23 09:13:38 -04:00
Ralf Jung
a6b35412d8 adjust for symbolic vtables 2022-07-22 07:18:34 -04:00
Ralf Jung
7cd1d78a47 only complain about runtime toolchain mismatch when there actually is a runtime toolchain 2022-07-21 09:30:09 -04:00
Ralf Jung
9f99d10689 some stray tag → prov renames 2022-07-20 18:32:03 -04:00
Ralf Jung
e649a9acfb check for extern static size mismatches 2022-07-20 18:32:03 -04:00
Ralf Jung
59f9a918ed handle get_alloc_extra the same throughout Stacked Borrows 2022-07-20 17:57:31 -04:00
Ralf Jung
ff4666f39c rustup 2022-07-20 16:02:06 -04:00
bors
ebda1deb7b Auto merge of #2397 - RalfJung:cleanup, r=RalfJung
only do env var cleanup if all threads have stopped

Hopefully fixes https://github.com/rust-lang/miri/issues/2396
2022-07-20 02:12:09 +00:00
Ralf Jung
5fbf036670 only do env var cleanup if all threads have stopped 2022-07-19 21:44:45 -04:00
Ben Kimock
4268918a50 Clarify implementation a bit 2022-07-19 20:53:48 -04:00
Ben Kimock
db93abe823 Fix bugs where unique_range became invalid
And also expand the cache integrity checks to cover this case, and
generally assert a lot more about the unique_range, then tighten up
sloppy implementation scenarios that this uncovered.
2022-07-19 20:02:20 -04:00
Ralf Jung
5721927afe rustup 2022-07-19 15:44:47 -04:00
bors
e8095d0af4 Auto merge of #2390 - RalfJung:debug, r=RalfJung
fix some debugging papercuts

- detect when Miri got locally installed and is being run with the wrong toolchain
- when an ICE occurs, print a backtrace of where the interpreter was at the time
2022-07-19 18:15:05 +00:00
Ralf Jung
5cf7ed1e04 show where the interpreter was interpreting when an ICE occurs 2022-07-19 14:14:20 -04:00
Ralf Jung
9dba78a76b show a better error when running Miri with the wrong sysroot 2022-07-19 14:14:20 -04:00
bors
8757d866ab Auto merge of #2350 - RalfJung:remove-deprecated, r=oli-obk
remove deprecated options

These have been deprecated a month ago and nobody said they need them. Is that enough time? We can also let this PR sit a little.

Cc https://github.com/rust-lang/miri/issues/2187 https://github.com/rust-lang/miri/issues/2188
(keeping them open to track removing their supporting infrastructure in the core interpreter)
2022-07-19 12:29:29 +00:00
Ralf Jung
6ab64620a6 refactor atomic intrinsic handling to actually parse the intrinsic name 2022-07-18 08:55:50 -04:00
Ralf Jung
ad3010c449 make atomic intrinsic impl details private 2022-07-18 08:22:27 -04:00
Ralf Jung
c850ffe01a add support for new RMW orders 2022-07-18 08:20:06 -04:00
Ralf Jung
1174cda4f1 remove ret param from foreign_item hierarchy 2022-07-18 08:05:46 -04:00
Ralf Jung
53ead1b8c9 move simd intrinsics to their own file 2022-07-18 08:03:58 -04:00
Ralf Jung
52a6ac96b0 move atomic intrinsics to their own file 2022-07-18 07:55:11 -04:00
Ralf Jung
896f558f2b with isolation we want to be fully deterministic 2022-07-17 21:50:10 -04:00
bors
8ec3425a8a Auto merge of #2349 - saethlin:isatty, r=RalfJung
Improve isatty support

Per https://github.com/rust-lang/miri/issues/2292#issuecomment-1171858283, this is an attempt at

> do something more clever with Miri's `isatty` shim

Since Unix -> Unix is very simple, I'm starting with a patch that just does that. Happy to augment/rewrite this based on feedback.

The linked file in libtest specifically only supports stdout. If we're doing this to support terminal applications, I think it would be strange to support one but not all 3 of the standard streams.

The `atty` crate contains a bunch of extra logic that libtest does not contain, in order to support MSYS terminals: db8d55f88e so I think if we're going to do Windows support, we should probably access all that logic somehow. I think it's pretty clear that the implementation is not going to change, so I think if we want to, pasting the contents of the `atty` crate into Miri is on the table, instead of taking a dependency.
2022-07-18 01:37:38 +00:00
Ben Kimock
2f84cb34c1 Pass through isatty if the host is also unix 2022-07-17 16:53:14 -04:00
Ralf Jung
39866f817a remove a fastpath that does not seem to actually help 2022-07-17 10:35:19 -04:00
Ralf Jung
68510600a3 use PlaceTy visitor 2022-07-17 10:19:29 -04:00
Ralf Jung
e8ab64e424 make unused flags work like they used to 2022-07-17 08:18:55 -04:00
Ralf Jung
9782b7b039 rustup 2022-07-16 23:40:36 -04:00
bors
86911fd8f6 Auto merge of #2368 - RalfJung:debug, r=oli-obk
Make "./miri {build,run,test}" use debug assertions but "./miri install" not

This makes `./miri run`/`./miri test` use the full set of debug assertions (including the rather expensive ones that check consistency of the Stacked Borrows cache), but `./miri install` installs a Miri *without* those debug assertions.

That's the same behavior as cargo, and helps catch Miri bugs with the test suite while making installed Miri usable for larger runs.
2022-07-15 15:54:47 +00:00
Ralf Jung
98c401977b rustup 2022-07-15 08:09:43 -04:00
Ralf Jung
d6cbe5d014 ensure that RangeMap panics on OOB 2022-07-14 15:09:20 -04:00
Ralf Jung
421f92bee6 make some debug assertions in RangeObjectMap be full assertions 2022-07-14 13:23:35 -04:00
Ralf Jung
5d5999ab13 make cache consistency checks into regular debug assertions 2022-07-14 13:00:35 -04:00
Ralf Jung
eaa7f10cb1 rustup 2022-07-14 09:54:20 -04:00