Ralf Jung
830cc58f8a
rustup
2022-04-03 20:00:03 -04:00
Ben Kimock
65125df1cd
Consider the cargo workspace when checking if a frame is local
2022-03-18 16:28:13 -04:00
Ralf Jung
bfed3c4f0d
implement simd bitmask intrinsics
2022-03-17 13:08:01 -04:00
Ralf Jung
47f8218d0d
add write_int_fields to replace write_packed_immediates
...
for stat, lookup fields by name
2022-03-12 12:17:23 -05:00
Ralf Jung
4bd6bc9098
use dirent64_layout and field projections for writing dirent info
2022-03-12 12:03:33 -05:00
Ralf Jung
27d5b846ee
rustup
2022-03-12 09:46:10 -05:00
Ralf Jung
6d3506adef
fs: add and test for DirectoryNotEmpty error variant
2022-03-07 18:30:12 -05:00
Ralf Jung
f672282bf2
factor SIMD bool handling into helper functions
2022-03-01 18:15:39 -05:00
Ralf Jung
ee6198fb98
rustup
2022-01-09 14:50:03 +01:00
Ralf Jung
a312297973
adjust for FnAbi changes
2021-12-24 12:02:22 +01:00
hyd-dev
3fedc7b249
rustc_target::abi::LayoutOf
-> rustc_middle::ty::layout::LayoutOf
2021-09-06 23:05:48 +08:00
Frank Steffahn
c79f6dd5a0
Fix a typo “an”→“a”
2021-08-22 18:07:01 +02:00
Smit Soni
a1cabac727
Fix use of deprecated check_no_isolation
in posix fs ops
...
Update posix fs shims to use new API `reject_in_isolation`, which
allows rejection with error code instead of always forcing abort.
Error code chosen for each op is the most appropriate one from the
list in corresponding syscall's manual.
Updated helper APIs to not use quotes (`) around input name while
preparing the message. This allows callers to pass multi-word string
like -- "`read` from stdin".
2021-07-20 08:23:51 -07:00
Ralf Jung
a1233a721d
adjust Miri to Pointer type overhaul
2021-07-16 10:10:12 +02:00
Ralf Jung
0341b8ac84
fmt: set force_multiline_blocks=true
2021-07-11 14:18:44 +02:00
Smitty
d19376985d
Make work after mir-alloc-oom
2021-07-04 09:59:55 -04:00
hyd-dev
76fe48543c
Update for TyCtxt::crates()
change
2021-07-02 16:08:27 +08:00
hyd-dev
9011524454
Remove strip_linker_suffix
2021-06-15 01:16:38 +08:00
hyd-dev
a67a65359f
Only pass Symbol
to emulate_foreign_item_by_name
2021-06-15 00:43:15 +08:00
hyd-dev
ce7040075a
Disallow #[no_mangle]
/#[export_name = ...]
functions that have the same symbol name as built-in shims
2021-06-11 15:18:47 +08:00
bors
e5c3af6f51
Auto merge of #1818 - landaire:feature/panic-on-unsupported-syscalls, r=RalfJung
...
Add support for panicking in the emulated application when unsupported functionality is encountered
This PR fixes #1807 and allows an optional flag to be specified to panic when an unsupported syscall is encountered. In essence, instead of bubbling up an error in the context of the Miri application Miri will panic within the context of the *emulated* application. This feature is desired to allow CI pipelines to determine if a Miri failure is unsupported functionality or actual UB. Please read [this comment](https://github.com/rust-lang/miri/issues/1807#issuecomment-845425076 ) for the rationale behind this change.
Note: this change does not cover all cases where unsupported functionality errors may be raised. If you search the repo for `throw_unsup_format!` there are many cases that I think are less likely to occur and may still be problematic for some folks.
TODO:
- [x] README documentation on this new flag
- [x] Add tests
2021-06-09 18:09:06 +00:00
Ralf Jung
a38f02c44c
isolated operations return EPERM; tweak isolation hint
2021-06-09 18:24:59 +02:00
Smit Soni
ba64f485c8
Fix parameter of io error helper function
...
`set_last_error_from_io_error` works with only the error kind, and
discards the payload. Fix its signature to make it explicit.
2021-06-09 06:28:35 -07: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
Lander Brandt
ae237098f8
Add support for panicking in the emulated application when unsupported syscalls are encountered
2021-06-07 15:21:53 -07:00
hyd-dev
3871c493b2
in_std
-> frame_in_std
2021-06-06 11:21:20 +08:00
hyd-dev
545101040d
Don't unwrap()
in in_std()
2021-06-06 11:12:13 +08:00
hyd-dev
879000b133
Detect std
by checking if the crate defines #[lang = "start"]
rather than string comparison
2021-06-06 11:12:05 +08:00
bors
28717a0e90
Auto merge of #1776 - hyd-dev:1170, r=RalfJung
...
Implement calls to exported symbols (#1170 )
Closes #1170 .
2021-06-03 15:59:56 +00:00
hyd-dev
647ee17b40
original_crate_name
-> crate_name
2021-06-03 10:22:31 +08:00
hyd-dev
382295cd47
Move check_abi()
into EvalContextExt
2021-05-31 11:15:31 +08:00
hyd-dev
71f4140550
Add -Zmiri-disable-abi-check
2021-05-31 11:14:23 +08:00
Ralf Jung
801a1744cd
update for Memory API changes
2021-05-19 15:27:58 +02:00
Ralf Jung
4f171d7fe3
stop relying on c_str/wide_str helpers in rustc
2021-05-17 14:31:59 +02:00
Ralf Jung
4e231bab5e
format much of Miri
2021-05-16 11:48:28 +02:00
Ralf Jung
aac6e2ad3e
fix checking os_family
2021-05-03 09:57:13 +02:00
Ralf Jung
d1dec9cd23
don't ICE when callee has the wrong number of arguments
2021-03-14 15:38:22 +01:00
Ralf Jung
893843fd45
when Miri calls a function ptr, make sure it has the right ABI
2021-03-14 15:30:37 +01:00
Ralf Jung
98f28ac9c8
rustup
2021-03-11 09:07:05 +01: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
Tomasz Miąsko
0eb341417c
rustup to e7c23ab933
2021-02-20 00:00:00 +00:00
Nym Seddon
de4eea9d49
Add ABI check for shims
2021-01-27 22:32:25 +00:00
Ralf Jung
43673d9a87
rustup
2020-11-11 10:29:10 +01:00
est31
1ae157bc9e
Replace target.target with target
...
Rustc removed the target wrapper and exposed the target directly.
Result of running:
find . -type f -exec sed -i -e 's/target\.target\([)\.,;]\)/target\1/g' {} \;
Plus one manual edit of the rust-version file
2020-10-15 21:18:23 +02:00
Mara Bos
66282754ff
Remove backtics from isolation error.
...
Otherwise `FUTEX_WAIT with timeout` will look weird.
2020-10-03 11:38:16 +02:00
Ralf Jung
b0baa151b2
rustup
2020-09-20 13:13:57 +02:00
David Cook
b06f0d16a9
Use try block instead of closure
2020-09-07 15:09:34 -05:00
David Cook
597360f499
Simplify read_timespec error handling
2020-09-07 11:31:28 -05:00
David Cook
33e928c9ca
Review comments
2020-09-07 10:54:39 -05:00
David Cook
6d323e1032
Refactor timespec parsing, improve error handling
2020-09-06 18:07:14 -05:00
LeSeulArtichaut
4f2f87b2df
Change ty.kind
-> ty.kind()
2020-09-04 22:03:45 +02:00
David Cook
a6746ad893
Add comment
2020-09-02 20:58:41 -05:00
David Cook
7a2c6812b9
Per-thread errno storage
2020-09-02 20:57:20 -05:00
Ralf Jung
5657f08bea
fs: move isolation handling to inside trait
2020-08-08 15:24:30 +02:00
Philippe Nadon
5161ba346c
renamed ScalarMaybeUninit::not_undef to check_init
...
Related to PR https://github.com/rust-lang/rust/pull/74664
2020-07-26 16:05:20 -06:00
Ralf Jung
7d6aec6887
rustup
2020-07-23 10:40:13 +02:00
Ralf Jung
a9dc2796ca
Move get/set_at_offset helpers to global helpers file
2020-06-28 09:23:01 +02:00
Ralf Jung
e063ce2737
rustup; and a bit of UnsafeCell detection refactoring
2020-06-13 11:30:31 +02:00
Ralf Jung
379ac82a1c
bump Rust, fix for renames
2020-05-09 10:15:09 +02:00
Chase Albert
4e3d1fee51
Address comments.
2020-05-04 14:24:22 -04: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
5224c72403
Move the stack to the evaluator to make Miri compile with the newest Rustc.
2020-04-20 09:19:37 +02:00
Ralf Jung
6ad0187265
rustup for FieldsShape::Primitive
2020-04-17 14:19:26 +02:00
Ralf Jung
9f3383d55d
rustup for import changes
2020-04-03 00:05:35 +02:00
Ralf Jung
5ce2466892
fix for FieldPlacement rename
2020-04-02 09:19:56 +02:00
Ralf Jung
f599687f3f
adjust for span not being passed around any more
2020-04-02 09:14:17 +02:00
bors
6536f3165e
Auto merge of #1290 - RalfJung:rustup, r=RalfJung
...
Rustup
Also remove ICEing `breakpoint` intrinsic shim.
2020-04-01 17:59:33 +00:00
Ralf Jung
1e3800ffb1
rustup
2020-04-01 19:40:10 +02:00
JOE1994
b3f9e53049
Implement 'GetSystemTimeAsFileTime' shim for Windows
2020-04-01 10:55:26 -04:00
Ralf Jung
8948a29a4c
adjust for librustc rename; reduce 'extern crate' to rustc crates
2020-03-30 11:07:32 +02:00
Ralf Jung
5ff7eef2ff
rustup; fix for TyLayout rename
2020-03-30 10:23:04 +02:00
JOE1994
fe9ecb50d1
Follow-up to reviews from RalfJung
...
1. Fix 'fn convert_path_separator' in src/shims/os_str.rs
2. Fix 'fn set_last_error_from_io_error' in src/helpers.rs
3. Minor comment fix for 'fn SetCurrentDirectoryW' in src/shims/env.rs
2020-03-29 11:30:08 -04:00
JOE1994
a481b8f261
partially implement 'set_last_error_from_io_error' for Windows
2020-03-29 11:30:08 -04:00
Ralf Jung
f181e75db2
rustup
2020-03-29 10:01:31 +02:00
bors
7a5e95c9ac
Auto merge of #1276 - RalfJung:scalar-precise-sizes, r=RalfJung
...
Construct Scalar with precise sizes
2020-03-28 18:16:13 +00:00
Ralf Jung
fbbca59de7
avoid Scalar::from_(u)int in favor of giving the size explicitly
2020-03-28 17:35:40 +01: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
9e39bfbbd9
organize shims and make some only available to libstd as they are incomplete
2020-03-28 11:15:11 +01:00
Ralf Jung
876bded2e8
run Windows TLS dtor function
2020-03-28 10:39:29 +01:00
JOE1994
813d76d948
follow-up to reviews
2020-03-27 07:07:21 -04:00
JOE1994
fc8f88e04e
change helper fn 'write_os_str_to_wide_str'
2020-03-27 00:08:27 -04:00
Ralf Jung
81d505670b
rustup; get rid of some try_from that are no longer needed
2020-03-26 00:11:50 +01:00
Ralf Jung
e9e04e56fc
move path methods together, to the bottom of the string helpers
2020-03-24 09:11:48 +01:00
Ralf Jung
c4e29c8646
convert dir separators on path load/store
2020-03-24 09:11:48 +01:00
Ralf Jung
4ac91384ff
route all path reading/writing through central read/write methods
2020-03-24 09:11:47 +01:00
JOE1994
5f9167bdaa
helper functions for env_var emulation in Windows
2020-03-23 19:40:22 -04:00
Ralf Jung
2f371774ef
fix conditional compilation condition for os_str <-> bytes conversion
2020-03-23 19:43:03 +01:00
Ralf Jung
6dcca62b63
move -Zmiri-disable-isolation hint to help
2020-03-22 19:48:59 +01:00
Ralf Jung
d85f09c4e4
platform -> target
2020-03-22 08:55:39 +01:00
Ralf Jung
681819c8ad
getting a path should never fail
...
we basically treat them as lang items
2020-03-19 08:26:08 +01:00
Ralf Jung
e6e8773272
start messages in lower-case
2020-03-19 08:25:08 +01:00
Ralf Jung
1103a10e2c
adjust for error reform
2020-03-19 08:25:08 +01:00
Ralf Jung
8b6af3eacb
avoid using unchecked casts or arithmetic
2020-03-17 15:21:43 +01:00
Ralf Jung
88c45f9891
adjust for rustc changes
2020-03-02 13:51:08 +01:00
Ralf Jung
cc1ebd0af6
some formatting
2020-03-01 10:29:05 +01:00
David Cook
ad8c784009
Return length from write_os_str_to_c_str
2020-02-24 19:50:25 -06:00
David Cook
94f611348f
Use os_str_length_as_c_str in readdir[64]_r
2020-02-23 15:37:22 -06:00
Ralf Jung
4a9a0a9078
avoid lowercasing platforms
2020-02-23 18:54:08 +01:00
Ralf Jung
5d35548985
helpers.rs cleanup
2020-02-23 18:52:12 +01:00