Ralf Jung
|
f2e14d9314
|
use memory::check_bounds_ptr for offset check
|
2018-12-26 13:16:47 +01:00 |
|
Ralf Jung
|
5a8f9e58f7
|
properly compare unequal function pointers
|
2018-12-25 13:29:38 +01:00 |
|
Ralf Jung
|
4e4569cf4b
|
fix build and tests with latest nightly
|
2018-12-25 13:26:40 +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
|
51ed485ba4
|
implement stdout/stderr on Windows
|
2018-12-19 12:16:07 +01:00 |
|
Ralf Jung
|
d67da9f04b
|
no need to set the cargo-miri feature twice
|
2018-12-19 11:12:56 +01:00 |
|
Ralf Jung
|
11433bf38e
|
actually show warnings about suppressed output
|
2018-12-19 11:07:24 +01:00 |
|
Ralf Jung
|
ecf6599051
|
xargo version check: also check application name, just to be sure
|
2018-12-19 11:06:46 +01:00 |
|
Ralf Jung
|
4e0fe62bd9
|
typo
|
2018-12-18 19:45:10 +01:00 |
|
Ralf Jung
|
e4fd710606
|
there is a new xargo released, use that
|
2018-12-18 19:41:32 +01:00 |
|
Ralf Jung
|
e8c53e81f8
|
implement macOS functions for argc, argv
|
2018-12-18 19:26:57 +01:00 |
|
Ralf Jung
|
93b8c23f7b
|
Merge remote-tracking branch 'origin/master' into cargo-miri-test
|
2018-12-18 18:36:19 +01:00 |
|
Ralf Jung
|
96b2c347d7
|
temporarily use git version of xargo
|
2018-12-15 18:39:42 +01:00 |
|
Ralf Jung
|
6a37e723c4
|
detect outdated xargo version
|
2018-12-15 15:08:03 +01:00 |
|
Ralf Jung
|
e6147ae67e
|
*oops*
|
2018-12-12 17:30:20 +01:00 |
|
Ralf Jung
|
b6a4556cb9
|
use show_error to terminate
|
2018-12-12 17:05:23 +01:00 |
|
Ralf Jung
|
ed83cc2600
|
use RUSTC_WRAPPER for the cargo hook
|
2018-12-12 17:03:40 +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
|
ce5089c390
|
rebase fallout
|
2018-12-11 17:54:39 +01:00 |
|
Ralf Jung
|
9417b28de5
|
treat test binaries like all others
|
2018-12-11 17:42:18 +01:00 |
|
Ralf Jung
|
f31bb43804
|
implement some libc hooks needed by libtest
|
2018-12-11 17:39:46 +01:00 |
|
Ralf Jung
|
6b376dc394
|
get rid of to_bytes hack
|
2018-12-11 14:32:59 +01:00 |
|
Ralf Jung
|
383d215386
|
make some functions private to StackedBorrows
|
2018-12-11 14:18:51 +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
|
b50662d68c
|
fix CI
|
2018-12-10 12:21:39 +01:00 |
|
Ralf Jung
|
b8e6af49d9
|
fix setting the manifest path manually when using cargo miri
|
2018-12-10 10:53:32 +01:00 |
|
Ralf Jung
|
b6eb2cd08e
|
cargo miri: support foreign targets
|
2018-12-10 09:53:14 +01:00 |
|
Ralf Jung
|
c84c1527e2
|
factor grabbing of cargo options into separate function and make it better
|
2018-12-10 09:28:24 +01:00 |
|
Ralf Jung
|
f06e25f9b2
|
bump Rust version, fix build
|
2018-12-08 10:38:36 +01:00 |
|
Ralf Jung
|
61f20761d3
|
Merge branch 'master' into stacked-borrows-2-phase
|
2018-12-03 11:11:32 +01:00 |
|
Ralf Jung
|
d11a6766ad
|
use assert
|
2018-12-03 10:26:39 +01:00 |
|
Ralf Jung
|
0e44876a2d
|
fix mutability gap: do not allow shared mutation when creating frozen reference
|
2018-12-03 09:15:18 +01:00 |
|
Ralf Jung
|
6df89de68a
|
we don't need no whitelist
|
2018-12-02 17:18:25 +01:00 |
|
Ralf Jung
|
e12d4bc70c
|
build libstd with minimal features
|
2018-12-02 14:05:14 +01:00 |
|
Ralf Jung
|
b2305da8d0
|
assert some sense
|
2018-12-02 13:30:09 +01:00 |
|
Ralf Jung
|
479eb3bd2b
|
support for basic (non-overlapping) 2-phase borrows
|
2018-12-02 13:30:09 +01:00 |
|
Ralf Jung
|
dcfc2f207e
|
do not even look for cargo metadata in 'cargo miri setup'
|
2018-12-02 10:29:57 +01:00 |
|
Ralf Jung
|
86e6470a12
|
update README to first describe the usual user setup, and to always set up a proper libstd
|
2018-11-30 09:23:44 +01:00 |
|
Ralf Jung
|
c10811a82d
|
Merge remote-tracking branch 'origin/master' into rustup
|
2018-11-28 16:15:56 +01:00 |
|
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
|
26fe778c55
|
Typo
Co-Authored-By: RalfJung <post@ralfj.de>
|
2018-11-28 09:58:23 +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
|
5958fa6a70
|
Use explicit dyn trait object
|
2018-11-27 16:20:15 +01:00 |
|
Oliver Scherer
|
edc2fb5f60
|
Expose some internals for priroda
|
2018-11-27 14:41:53 +01:00 |
|
Ralf Jung
|
97e010f5b9
|
barriers prevent deallocation
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
194710e112
|
no barriers for boxes
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
dd94930ee3
|
implement function barriers
|
2018-11-27 14:26:23 +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
|
53196554ec
|
inform the user when and where we are creating a cache dir
|
2018-11-27 13:12:52 +01:00 |
|
Ralf Jung
|
bd7f4076cd
|
we need to recursively create the dir
|
2018-11-27 11:43:02 +01:00 |
|
Ralf Jung
|
b91679539e
|
use proper platform cache dir
|
2018-11-27 11:26:53 +01:00 |
|
Ralf Jung
|
464dee8edf
|
std::ptr no longer needs whitelisting
|
2018-11-27 09:23:22 +01:00 |
|
Ralf Jung
|
07f78a37d4
|
tweaks
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
58982d655a
|
remove unneeded backtrace feature
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
82caed1a48
|
cargo miri setup: print when we are executing commands
|
2018-11-27 08:16:58 +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
|
cc4dd29f54
|
kill xargo dir and update docs
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
16ac7ec1b1
|
tweak comments, remove debug output
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
738133b379
|
complete setup routine: instal rust-src, build libstd, use it
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
c945e30d10
|
setup routine to install xargo when missing
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
6bd76c7ee1
|
cargo miri: factor package manifest logic into separate function
|
2018-11-27 08:16:58 +01:00 |
|
Ralf Jung
|
14d58ca8a9
|
fix clippy lint whitelisting
|
2018-11-27 08:16:58 +01:00 |
|
Oliver Scherer
|
32e93ed776
|
Update to Memory -> Allocation method move
|
2018-11-23 17:00:31 +01:00 |
|
Ralf Jung
|
68ba6cdbaa
|
fix for new Align type
|
2018-11-23 09:46:51 +01:00 |
|
Ralf Jung
|
094d07c114
|
Merge remote-tracking branch 'origin/master' into rustup
|
2018-11-22 08:21:05 +01:00 |
|
Ralf Jung
|
694d2490f1
|
slightly more verbose error msg
|
2018-11-21 16:02:38 +01:00 |
|
Ralf Jung
|
41f89beb3f
|
if let
|
2018-11-21 16:01:39 +01:00 |
|
Ralf Jung
|
ec8cc029c1
|
on a deref, check that we are not using a mutable ref with a frozen tag
|
2018-11-21 15:44:47 +01:00 |
|
Ralf Jung
|
984c3368a9
|
remove stabilized feature flag
|
2018-11-21 13:41:57 +01:00 |
|
Ralf Jung
|
6181b29f5d
|
bump Rust
|
2018-11-21 09:52:31 +01:00 |
|
Ralf Jung
|
f41decc6e1
|
Merge branch 'master' into cargo-miri-2018
|
2018-11-20 10:18:34 +01:00 |
|
Ralf Jung
|
cfa6397ad0
|
UnsafeCell no longer needs to be on the whitelist
|
2018-11-20 08:50:08 +01:00 |
|
Ralf Jung
|
6085865975
|
adjust for InboundsCheck parameter of memory bounds check
|
2018-11-20 08:45:25 +01:00 |
|
Ralf Jung
|
d619049b2d
|
Merge branch 'miri-backtrace' into mut-visitor
|
2018-11-20 08:29:51 +01:00 |
|
Ralf Jung
|
ef2ffed93f
|
port cargo-miri-test to 2018 edition, mostly to test that that works with cargo miri
|
2018-11-19 22:59:41 +01:00 |
|
Ralf Jung
|
19f8a9db7d
|
Boxes can also use the fast path
|
2018-11-17 12:35:58 +01:00 |
|
Ralf Jung
|
c847071355
|
add comment about not using builtin_deref
|
2018-11-17 12:33:44 +01:00 |
|
Ralf Jung
|
56f1ef325a
|
remove spurious assignments
|
2018-11-17 10:29:16 +01:00 |
|
Ralf Jung
|
662821f7f7
|
raw ptr deref no longer erases the tag
|
2018-11-17 10:11:21 +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
|
b7dbb5e2a7
|
also consider boxes like unique references
|
2018-11-17 10:05:40 +01:00 |
|
Ralf Jung
|
36b97cd76c
|
Factor out common top-level code from escape-to-raw and retag
|
2018-11-16 11:24:01 +01:00 |
|
Ralf Jung
|
a1f895d6f2
|
retagging: descent into values, type-driven
|
2018-11-16 11:09:33 +01:00 |
|
Ralf Jung
|
60e26af323
|
add a sanity assertion
|
2018-11-16 08:40:00 +01:00 |
|
Ralf Jung
|
cf1746222e
|
we no longer even try pushing to a frozen location
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
f521fd5e0f
|
let's call this a redundant reborrow
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
c234009fdd
|
generalize reborrow-to-raw exception to a general redundancy check
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
5a801c0dc1
|
adjust comment
|
2018-11-15 09:35: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
|
a94e197105
|
better test the special exception for reading through unique when things are shared
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
020313dd85
|
make freezing inherently part of the high-level reactivate/initiate operations
|
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
|
f4e45ff2b7
|
sort the fields ourselves
|
2018-11-08 08:29:34 +01:00 |
|
Ralf Jung
|
00936316d1
|
treat shared and raw borrows alike
|
2018-11-08 08:29:34 +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
|
2ff1f24f2b
|
bump rust
|
2018-11-07 10:41:15 +01:00 |
|
Ralf Jung
|
f6d6470bc4
|
move to 2018 edition
I want NLL :D
|
2018-11-05 15:45:27 +01:00 |
|
Ralf Jung
|
9edac3189a
|
rustup
|
2018-11-05 08:52:02 +01:00 |
|
Ralf Jung
|
a8af5ae139
|
fix for latest nightly
|
2018-11-04 10:30:15 +01:00 |
|
Ralf Jung
|
cb691b7ed9
|
comment on mut-to-shr transmutes
|
2018-11-03 11:42:38 +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
|
478f137c39
|
put all the logic into reactivatable()
|
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
|
1fe925e758
|
Merge branch 'master' into atomic-arith
|
2018-10-31 11:19:26 +01:00 |
|
Ralf Jung
|
40b7502613
|
Reject atomic arithmetic on non-integer types
Fixes #181
|
2018-10-31 11:04:35 +01:00 |
|
Ralf Jung
|
016009a301
|
properly recognize log levels
|
2018-10-31 10:58:19 +01:00 |
|
Ralf Jung
|
5397f2e436
|
when using MIRI_LOG, avoid logging for what rustc does before miri gets started
|
2018-10-31 10:53:37 +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
|
1fa0ff88c0
|
fix nits
|
2018-10-30 10:41:01 +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
|
4a98f64142
|
Merge remote-tracking branch 'origin/master' into rustup
|
2018-10-26 15:06:21 +02:00 |
|
Ralf Jung
|
d890a70c39
|
update for is_null removal
|
2018-10-25 11:37:42 +02:00 |
|
Ralf Jung
|
a34b9c7b70
|
make some things public for the benefit of priroda
|
2018-10-24 11:39:31 +02:00 |
|
Ralf Jung
|
5388037f8a
|
remove code duplication by letting reactivatable() compute what reactivate() has to do
|
2018-10-23 15:59:50 +02:00 |
|
Ralf Jung
|
fe83ef323c
|
also run compile-fail tests with and without optimizations
|
2018-10-23 13:09:17 +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
|
1a7fb7ec3c
|
expand comment about incomplete support for interior mutability
|
2018-10-22 12:51:47 +02:00 |
|
Ralf Jung
|
957d18c343
|
Merge remote-tracking branch 'origin/master' into rustup
|
2018-10-22 08:41:01 +02:00 |
|
Ralf Jung
|
069b661a10
|
typo
|
2018-10-19 10:09:53 +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 |
|
Andrew Poelstra
|
4fa5bfa2bb
|
add some comments to clarify command-line argument munging in #482
|
2018-10-17 20:24:52 +00: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 |
|
Andrew Poelstra
|
4faf8fad10
|
cargo-miri: support running unit tests for libraries as well as test binaries
|
2018-10-15 18:38:07 +00:00 |
|