DrMeepster
84b058ac47
add support for #[start]
2021-09-02 15:41:10 -07:00
Ralf Jung
a1233a721d
adjust Miri to Pointer type overhaul
2021-07-16 10:10:12 +02:00
Smit Soni
892f706ce5
Add a support to execute isolated op without halting
...
In user interface, added a new flag `-Zmiri-isolation-error` which
takes one of the four values -- hide, warn, warn-nobacktrace, and
abort. This option can be used to configure Miri to either abort or
return an error code upon executing isolated op. If not aborted, Miri
prints a warning, whose verbosity can be configured using this flag.
In implementation, added a new enum `IsolatedOp` to capture all the
settings related to ops requiring communication with the
host. Old `communicate` flag in both miri configs and machine
stats is replaced with a new helper function `communicate()` which
checks `isolated_op` internally.
Added a new helper function `reject_in_isolation` which can be called
by shims to reject ops according to the reject_with settings. Use miri
specific diagnostics function `report_msg` to print backtrace in the
warning. Update it to take an enum value instead of a bool, indicating
the level of diagnostics.
Updated shims related to current dir to use the new APIs. Added a new
test for current dir ops in isolation without halting machine.
2021-06-09 05:50:52 -07:00
hyd-dev
41f33a64f8
Implement calls to exported symbols
2021-05-31 11:15:29 +08:00
Ralf Jung
4e231bab5e
format much of Miri
2021-05-16 11:48:28 +02:00
hyd-dev
4eed610723
Remove #![feature(or_patterns)]
2021-03-23 16:58:00 +08:00
Mara Bos
5bd5ea21ea
Remove unwrap_none as it won't be stabilized.
...
This upgrades to the latest rustc to be able to use try_insert()
instead.
2021-03-08 16:59:20 +01:00
Yuki Okushi
53612ece7c
Rustup for rust-lang/rust#79951
2021-01-28 22:31:22 +09:00
hyd-dev
9949d9e417
Remove #![feature(const_generics)]
and #![allow(incomplete_features)]
2021-01-17 23:28:20 +08:00
JCTyBlaidd
4cf614ef33
Update release sequence handling to C++20 semantics.
2020-12-06 16:58:32 +00:00
JCTyBlaidd
69fb6413dd
Tidy up comments and function layout, should fix most of the review notes.
2020-11-15 18:30:26 +00:00
JCTyBlaidd
9cb6b8da3f
Split out vector_clock to separate file, general tidy up of some of the
...
code & add support for vector index re-use for multiple threads
after termination.
2020-11-05 03:54:39 +00:00
JCTyBlaidd
89814f1b3f
Initial data-race detector,
...
passes all current tests but additional tests are required
2020-11-02 02:57:05 +00:00
Camelid
05e9ae042c
Make miri_default_args()
a constant
2020-10-24 12:46:38 -07:00
David Cook
b06f0d16a9
Use try block instead of closure
2020-09-07 15:09:34 -05:00
Ralf Jung
cb985670c1
make alignment check integer-based by default, and add an option to make it symbolic
2020-08-16 17:08:38 +02:00
Ralf Jung
c379793cde
add option to track call IDs
2020-07-02 10:33:54 +02:00
Ralf Jung
af5887e869
module organization: move platform-specific code to shims::{posix::{linux, macos}, windows}
2020-06-27 13:22:49 +02:00
Ralf Jung
395f5d40dc
Rename shims::{sync -> posic_sync} and move sync_singlethread test to other sync test
2020-06-27 12:37:12 +02:00
Vytautas Astrauskas
679245769b
Implement support for synchronization primitives.
2020-05-25 00:02:54 +02:00
Ralf Jung
2c94ad08d8
use helper method to compute size of int type
2020-05-24 19:20:44 +02:00
Chase Albert
78f329513a
Check that shims are called with the correct number of arguments
2020-05-04 13:51:21 -04:00
Vytautas Astrauskas
d062f63519
Fix support for MacOS.
2020-04-27 14:26:36 -07:00
Vytautas Astrauskas
44e9305599
Rename threads to thread to match the Rust standard library.
2020-04-27 14:26:36 -07:00
Vytautas Astrauskas
552080a5b7
Fix imports.
2020-04-27 14:26:36 -07:00
Vytautas Astrauskas
1f33f04fd4
Move pthread_create and related shims to a separate file.
2020-04-27 14:23:32 -07:00
Vytautas Astrauskas
82f17ab917
Implement basic support for concurrency (Linux only).
2020-04-27 14:23:32 -07:00
David Cook
bc54c7628d
Eagerly compute i32 and u32 layouts
2020-04-05 16:03:44 -05:00
David Cook
ac8c98da8e
Store layouts of i32 and u32 inside Evaluator
2020-04-05 10:37:57 -05:00
David Cook
dd9896b0f8
Implement mutex and rwlock functions
2020-04-05 10:03:22 -05:00
Ralf Jung
8948a29a4c
adjust for librustc rename; reduce 'extern crate' to rustc crates
2020-03-30 11:07:32 +02:00
bors
ad14b684cc
Auto merge of #1275 - JOE1994:move_string_helpers, r=RalfJung
...
move OsStr helpers to a separate file
Moved OsStr read/write functions from `src/helpers.rs` to `src/shims/os_str.rs`, in order to keep `src/helpers.rs` from bloating too much.
2020-03-28 15:32:16 +00:00
JOE1994
99600ba7a9
move OsStr helpers to a separate file
2020-03-28 10:43:47 -04:00
Ralf Jung
204c13b8c7
env shim: make sure we clean up all the memory we allocate
2020-03-28 11:06:56 +01:00
Ralf Jung
6dcca62b63
move -Zmiri-disable-isolation hint to help
2020-03-22 19:48:59 +01:00
Ralf Jung
5531a79f4c
rustup, test Abort terminator
2020-03-12 20:48:04 +01:00
Ralf Jung
cc1ebd0af6
some formatting
2020-03-01 10:29:05 +01:00
Ralf Jung
ea5aa19487
rustup
2020-03-01 10:22:13 +01:00
bors
c0934e1eca
Auto merge of #1152 - divergentdave:shim-directory, r=RalfJung
...
Add directory-related shims
This PR adds support for `mkdir`, `rmdir`, `opendir`, `closedir`, and `readdir64_r`.
Open directory streams are tracked through a HashMap indexed by pointer locations, which holds directory iterators. Since `DIR` is an opaque type in glibc, I represent them with 1-byte allocations, and then just use their pointers in HashMap lookups.
Tests are included to exercise the new functionality.
2020-02-26 14:15:55 +00:00
Ralf Jung
274ae0438f
add an option to disable Stacked Borrows
2020-02-24 16:22:02 +01:00
David Cook
d7c3f588eb
Add shims for opendir and closedir
2020-02-23 15:02:49 -06:00
David Cook
a6a8f09f1e
Address review comments
2020-02-17 22:24:33 -06:00
Ralf Jung
6ff5b3fcf9
make sure we also trigger debug assertions in libstd
2020-02-16 13:55:51 +01:00
Oliver Scherer
dbffbe5214
Document all the things
2020-01-09 12:42:56 +01:00
Oliver Scherer
c69ebaaed2
Use names that actually represent what's going on
2020-01-08 13:43:23 +01:00
Oliver Scherer
90a8f2f6a3
Make the non-halting diagnostic scheme independent of InterpError
2020-01-08 13:02:55 +01:00
Oliver Scherer
96d6efdf32
Emit errors without halting interpretation
2020-01-08 12:37:25 +01:00
Oliver Scherer
4411903cca
Add a scheme for registering and obtaining errors even without access to an InterpCx
2020-01-08 12:37:25 +01:00
Oliver Scherer
4de031b3da
Move error reporting to its own module
2020-01-08 12:37:25 +01:00
Yuki Okushi
86ee705cd5
Rustup
2020-01-07 05:13:18 +09:00