Ralf Jung
d6bcfc58e3
rustup for EvalResult rename
2019-06-08 22:14:47 +02:00
Ralf Jung
0c704151f7
use new rustc infrastructure to tag the base pointer of static allocations
2019-06-02 22:16:02 +02:00
Ralf Jung
e4cee77121
fix for rustc changes
2019-05-29 09:30:36 +02:00
Ralf Jung
9b3f07b161
make printing return place less verbose
2019-05-15 17:23:33 +02:00
Ralf Jung
bc0c76d861
fix for latest rustc
2019-05-13 22:07:24 +02:00
Ralf Jung
0694435650
implement exit
...
implement exit code via new error kind
2019-04-21 12:36:17 +02:00
Ralf Jung
3f0a2a2941
rewrite Stacked Borrows Core. this passes stacked-borrows.rs!
2019-04-17 16:02:57 +02:00
Ralf Jung
5f29a53992
rustup
2019-04-12 12:32:26 +02:00
Ralf Jung
8de4f34a7f
Merge remote-tracking branch 'origin/master'
2019-04-11 22:09:09 +02:00
Aaron Hill
0837d630f7
Some final cleanup
2019-04-09 15:49:34 -04:00
Ralf Jung
06af617b92
fix dumping uninitialized locals
2019-04-08 13:40:11 +02:00
Aaron Hill
73239573c9
Implement non-deterministc mode
...
Part of #653
This allows us to properly implement getrandom(),
which unlocks the default HashMap type (e.g. HashMap<K, V>)
with RandomState)
This commit adds a new '-Zmiri-seed=<seed>' option. When present,
this option takes a 64-bit hex value, which is used as the seed
to an internal PRNG. This PRNG is used to implement the 'getrandom()'
syscall.
When '-Zmiri-seed' is not passed, 'getrandom()' will be disabled.
2019-04-07 19:26:20 -04:00
kenta7777
d9178b9300
renames EvalContext to InterpretCx
2019-03-30 10:58:28 +09:00
Ralf Jung
687c5d13ea
bump Rust; remove stabilized feature
2019-03-18 13:31:29 +01:00
Santiago Pastorino
0bb6ae8f62
Place::Local(x) is now Place::Base(PlaceBase::Local(x))
2019-03-01 11:27:30 -03:00
Ralf Jung
a9b03f9411
avoid [..]
2019-02-27 11:39:59 +01:00
Alexander Regueiro
205490b85c
Fixed nits raised in review.
2019-02-26 18:37:46 +00:00
Alexander Regueiro
12d3ecbaff
Various cosmetic improvements.
2019-02-26 18:37:46 +00:00
Ralf Jung
2c3ee678b1
Fix comparing fat pointers
2019-02-15 09:35:55 +01:00
Ralf Jung
457741d6d2
update for new bin_op APIs
2019-02-15 09:35:55 +01:00
Ralf Jung
5e468766b7
also pass actual arguments to Windows
2019-02-09 20:00:40 +01:00
Ralf Jung
0802b3a108
implement passing arguments to the interpreted program
2019-02-09 20:00:40 +01:00
Ralf Jung
4309539efe
cargo miri: refactor how we detect what to interpret and how we run cargo rustc, fix running unit tests
2019-02-07 13:00:27 +01:00
Ralf Jung
4f9c14c256
deduplicate RangeMap elements in iter_mut
...
This cuts down execution time of the benchmark in the OP of https://github.com/solson/miri/issues/593 by another 25%, and it cuts max-RSS by 90% (!)
2019-01-07 15:10:22 +01:00
Ralf Jung
fced2ac865
move env var stuff out of the miri lib
2019-01-04 15:37:51 +01:00
Ralf Jung
4f659ed507
fix for infallible allocation
2018-12-23 14:13:16 +01:00
Ralf Jung
a03d184648
Merge branch 'master' into rustup
2018-12-20 13:34:24 +01:00
Ralf Jung
750cd442be
fix argv null terminator
2018-12-19 15:45:23 +01:00
Ralf Jung
af4fb6655e
implement GetCommandLineW, GetEnvironmentVariableW, GetConsoleScreenBufferInfo, SetConsoleTextAttribute, GetSystemInfo
2018-12-19 15:25:25 +01:00
Ralf Jung
4e0fe62bd9
typo
2018-12-18 19:45:10 +01:00
Ralf Jung
e8c53e81f8
implement macOS functions for argc, argv
2018-12-18 19:26:57 +01:00
Ralf Jung
7e9098ff69
treat ref-to-raw cast like a reborrow: do a special kind of retag
2018-12-12 11:11:20 +01:00
Ralf Jung
6b376dc394
get rid of to_bytes hack
2018-12-11 14:32:59 +01:00
Ralf Jung
9de605b32f
avoid repeating signatures in EvalContext extension traits
2018-12-11 14:16:58 +01:00
Ralf Jung
05f2b2ed3d
remove support for not having libstd MIR
2018-12-10 12:26:20 +01:00
Ralf Jung
61f20761d3
Merge branch 'master' into stacked-borrows-2-phase
2018-12-03 11:11:32 +01:00
Ralf Jung
6df89de68a
we don't need no whitelist
2018-12-02 17:18:25 +01:00
Ralf Jung
479eb3bd2b
support for basic (non-overlapping) 2-phase borrows
2018-12-02 13:30:09 +01:00
Ralf Jung
c10811a82d
Merge remote-tracking branch 'origin/master' into rustup
2018-11-28 16:15:56 +01:00
Ralf Jung
6ca4fc7125
Merge remote-tracking branches 'origin/master' and 'ralf/shrink-whitelist' into memory-data-revived
2018-11-28 08:09:58 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
f42b708568
Merge branch 'master' into oli-obk-patch-1
2018-11-27 17:18:16 +01:00
Oliver Scherer
edc2fb5f60
Expose some internals for priroda
2018-11-27 14:41:53 +01:00
Ralf Jung
215ec38624
track call IDs
2018-11-27 14:25:20 +01:00
Ralf Jung
e9370d2b74
adjust for memory_allocated hook, make RangeMap preallocated with a fixed size
2018-11-27 14:25:20 +01:00
Ralf Jung
464dee8edf
std::ptr no longer needs whitelisting
2018-11-27 09:23:22 +01:00
Ralf Jung
b09dfc14a0
there are less places now to keep the flags in sync
2018-11-27 08:16:58 +01:00
Ralf Jung
14d58ca8a9
fix clippy lint whitelisting
2018-11-27 08:16:58 +01:00
Ralf Jung
68ba6cdbaa
fix for new Align type
2018-11-23 09:46:51 +01:00
Ralf Jung
984c3368a9
remove stabilized feature flag
2018-11-21 13:41:57 +01:00
Ralf Jung
cfa6397ad0
UnsafeCell no longer needs to be on the whitelist
2018-11-20 08:50:08 +01:00
Ralf Jung
d619049b2d
Merge branch 'miri-backtrace' into mut-visitor
2018-11-20 08:29:51 +01:00
Ralf Jung
880229d4c3
escape-on-cast, now ptr-deref does not change the tag at all, ever
2018-11-17 10:05:40 +01:00
Ralf Jung
a87e952102
Separate deref and access into different operations; add special exception for creating raw references
2018-11-15 09:35:40 +01:00
Ralf Jung
09919c2b59
Retag is the only operation that generates new tags
2018-11-15 09:35:40 +01:00
Ralf Jung
1e51a382ed
update for changed FrameInfo, do not print span for all frames
2018-11-15 09:14:03 +01:00
Ralf Jung
f5bd85d009
update for memory_deallocated moving to AllocExtra
2018-11-14 16:03:38 +01:00
Ralf Jung
e7aa5c68ff
Update rustc for AllocationExtra trait
...
Based on https://github.com/solson/miri/pull/493 but there were more conflicts
than code so I opted not to cherry-pick.
2018-11-12 08:54:12 +01:00
Ralf Jung
74635a57e2
re-do large parts of stacked borrows, now with proper support for partiall frozen data
2018-11-08 08:29:34 +01:00
Ralf Jung
f6d6470bc4
move to 2018 edition
...
I want NLL :D
2018-11-05 15:45:27 +01:00
Ralf Jung
a8af5ae139
fix for latest nightly
2018-11-04 10:30:15 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8ac5d988e2
typo
...
Co-Authored-By: RalfJung <post@ralfj.de>
2018-11-03 11:39:50 +01:00
Ralf Jung
8da2c9e34e
fix adding default arguments
2018-11-03 11:03:53 +01:00
Ralf Jung
dc859f345d
Merge remote-tracking branch 'origin/master' into rustup
2018-11-02 14:32:56 +01:00
Ralf Jung
a68779fd16
use crate:: import to make edition port easier later
2018-11-01 09:00:09 +01:00
Ralf Jung
81534496dc
rename RefKind to UsageKind, because it not only used for references now
2018-11-01 08:58:03 +01:00
Ralf Jung
85f821d7e9
unify checks on memory access and reborrowing, and update for Machine trait change
2018-11-01 08:58:03 +01:00
Ralf Jung
bba3c49e84
basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref
2018-11-01 08:58:03 +01:00
Ralf Jung
7ac0e79ad5
stub Retag hook; fix tests for removal of -Zmir-emit-validate
2018-11-01 08:58:03 +01:00
Ralf Jung
fba55ba2a9
make the -Z flags we use more consistent
2018-11-01 08:58:03 +01:00
Ralf Jung
27b1f47b0a
use crate:: where appropriate
2018-11-01 08:57:22 +01:00
Ralf Jung
7a6a68731e
remove unused extern crate
2018-10-31 10:19:20 +01:00
Ralf Jung
cd256448d5
dumping locals with MIRI_BACKTRACE=1 is feasible now
2018-10-31 10:16:42 +01:00
Ralf Jung
eb153810e3
Use MIRI_ env vars to set RUST_ ones
...
This means we can do `MIRI_LOG=debug cargo run` and get something reasonable,
even if cargo has to build some dependencies first.
2018-10-31 10:09:55 +01:00
Ralf Jung
559f63a2b6
Merge remote-tracking branch 'origin/master' into rustup
2018-10-30 08:40:30 +01:00
Ralf Jung
4ccdcdcace
rustup
2018-10-29 09:15:15 +01:00
Ralf Jung
a34b9c7b70
make some things public for the benefit of priroda
2018-10-24 11:39:31 +02:00
Ralf Jung
26bb4f79dc
get rid of implicit Raw at bottom of stack; locals get a uniq at their bottom
2018-10-22 18:17:37 +02:00
Ralf Jung
01828fde53
respect memory's privacy
2018-10-22 16:48:10 +02:00
Ralf Jung
dd1558f337
rustc update and be very selective about what we accept on a deref
2018-10-22 16:48:09 +02:00
Ralf Jung
1ae1b9bfea
adapt to rustc API changes and factor out computing the tag for ty+mutbl
2018-10-22 16:45:03 +02:00
Ralf Jung
957d18c343
Merge remote-tracking branch 'origin/master' into rustup
2018-10-22 08:41:01 +02:00
Ralf Jung
0b6e349417
automalically use start-fn if we have all the MIR
2018-10-19 10:07:17 +02:00
Ralf Jung
186e42d088
move resolve_path to helpers module
2018-10-19 09:54:41 +02:00
Ralf Jung
b259512c57
bump for ENABLE_PTR_TRACKING_HOOKS, and remove some dead code
2018-10-17 17:36:07 +02:00
Ralf Jung
d4b78b36ab
stacked borrows: enforcement at memory accesses
2018-10-17 15:15:53 +02:00
Ralf Jung
66b4bb7cf2
stacked borrows: track refs and derefs
2018-10-16 18:35:27 +02:00
Ralf Jung
348f782085
add env var emulation test, and fix it complaining about leaks
2018-10-16 18:35:27 +02:00
Ralf Jung
b84f7e2029
add Borrow tag to pointers; remove old locking code
2018-10-16 18:35:27 +02:00
Ralf Jung
9a1dd865c1
whitelist Windows Mutex
2018-10-14 11:06:36 +02:00
Ralf Jung
62b819ba18
whitelist std::ptr::read
2018-10-12 10:40:44 +02:00
Ralf Jung
e4dfb7013b
enable validation per default, but add a flag to disable it and use that for some run-pass tests
...
compile-fail does not do validation yet
2018-10-11 11:24:22 +02:00
Ralf Jung
d94d32e937
enforce_validity became a function
2018-10-11 09:02:28 +02:00
Ralf Jung
ce5b183e8b
update for new return place handling
2018-10-11 08:59:39 +02:00
Ralf Jung
8ea8cd2919
update for ptr provenance
2018-10-11 08:42:26 +02:00
Ralf Jung
146f5d8d10
rustup; test for return type mismatch
2018-10-02 21:16:55 +02:00
Ralf Jung
8d7cdbb853
rustup
2018-09-20 12:24:55 +02:00
Ralf Jung
ea4232cf22
Move TLS data to machine data
...
There is no good reason to let the machine store stuff in the machine *and* in memory. I plan to get rid of the latter.
2018-09-20 01:00:59 +02:00
Ralf Jung
b488b51b66
bump Rust
2018-09-15 10:34:45 +02:00
Ralf Jung
d889da43f8
move MemoryData to memory.rs; remove all the Hashing stuff
2018-09-09 11:01:15 +02:00
Ralf Jung
c44267960f
ptr equality: only defined for ptrs in the same allocation and live ptrs
2018-08-30 10:46:09 +02:00