Ralf Jung
5b91ecc066
fix comments
2019-06-09 17:12:41 +02:00
Ralf Jung
b0b082d4d8
do not handle MIRI_SYSROOT in the driver at all, rely fully on the --sysroot flag
2019-06-09 17:10:04 +02:00
Ralf Jung
244011a47f
don't have both MIRI_SYSROOT and --sysroot
2019-06-09 15:43:22 +02:00
Ralf Jung
619f296463
explain why we always set a sysroot; make sure we error if both MIRI_SYSROOT and --sysroot are set
2019-06-09 14:31:05 +02:00
Ralf Jung
05b7e61977
remove outdated sysroot management
2019-06-09 14:10:42 +02:00
Ralf Jung
09f30cabf0
cargo miri: make sure we see the same sysroot for rustc and miri
2019-06-09 13:53:04 +02:00
Ralf Jung
d6bcfc58e3
rustup for EvalResult rename
2019-06-08 22:14:47 +02:00
Dylan MacKenzie
1ceb81b345
Use in-core implementation of type_name
.
...
We bump `rust-version` to pick up the new impl from
https://github.com/rust-lang/rust/pull/61498 and add a test.
2019-06-05 22:36:53 -07:00
Ralf Jung
03b74c12c8
Merge branch 'master' into debug
2019-06-03 11:02:17 +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
96444c11ee
remove too expensive debug assertion
2019-05-31 16:34:22 +02:00
Ralf Jung
e4cee77121
fix for rustc changes
2019-05-29 09:30:36 +02:00
Ralf Jung
7a7b853120
adjust for rustc changes
2019-05-28 22:46:56 +02:00
Ralf Jung
543e57990c
Merge branch 'master' into miri-build
2019-05-27 23:26:22 +02:00
Ralf Jung
8b219a1329
fix for latest rustc
2019-05-27 18:50:32 +02:00
Ralf Jung
cf96396fcc
make miri script smarter: auto-determine MIRI_SYSROOT, handle MIRI_TEST_TARGET
2019-05-27 14:41:44 +02:00
Ralf Jung
21fb14dba1
avoid printing the tag twice
2019-05-24 13:09:29 +02:00
Ralf Jung
5569fffe7d
avoid having both Debug and Display for a type and using the wrong one
2019-05-24 10:09:23 +02:00
Ralf Jung
1d92791965
use prettier printing
2019-05-23 15:54:50 +02:00
Ralf Jung
3e33e54b5b
hopefully improve error message a bit
2019-05-23 11:03:08 +02:00
Ralf Jung
5c54a58c06
typo
2019-05-19 14:04:59 +02:00
Oliver Scherer
3fde45233b
Prefer drain
over manual implementation of drain
2019-05-19 12:40:59 +02:00
Ralf Jung
6b4164e0df
nits
2019-05-17 19:42:35 +02:00
Ralf Jung
9c161b80d0
reading does not remove Unique, it just invalidates them
2019-05-17 15:29:02 +02:00
Ralf Jung
4b9e1544c2
give up on two-phase borrows
2019-05-17 15:02:31 +02:00
Ralf Jung
1447242bf9
refactor to simplify
2019-05-15 18:12:58 +02:00
Ralf Jung
f676f2265b
make writes act stack-like
2019-05-15 18:12:58 +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
ada5edbf96
RUST_LOG got renamed to RUSTC_LOG
2019-05-13 14:10:52 +02:00
Ralf Jung
be47fae173
build with latest version
2019-05-13 11:37:54 +02:00
Ralf Jung
a9e66928d6
Update src/stacked_borrows.rs
...
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2019-05-11 12:07:25 +02:00
Ralf Jung
8530080d03
rename per-location part of reborowing to 'granting'
2019-05-11 12:06:59 +02:00
Ralf Jung
0f96676f43
switch back to upstream xargo
2019-05-10 08:28:02 +02:00
Ralf Jung
d05159f3a9
switch to my xargo fork, because that one works with current libstd
2019-05-01 20:37:08 +02:00
bjorn3
17643af868
Apply suggestions from code review
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-04-30 15:31:53 +02:00
Ralf Jung
59985157d3
SharedReadOnly reborrows are never weak
2019-04-30 13:55:04 +02:00
Bastien Orivel
69a252c1b3
Update cargo_metadata to 0.7
2019-04-27 23:31:48 +02:00
Ralf Jung
53f59431a5
fix HeapFree return value
2019-04-27 18:21:10 +02:00
Ralf Jung
aaa8ee743b
unify code paths
2019-04-22 13:20:51 +02:00
Ralf Jung
42b70f17d2
Merge branch 'master' into exit
2019-04-22 11:35:36 +02:00
Ralf Jung
131548a748
gen_random: handle size 0 and writing to mem
2019-04-22 11:08:23 +02:00
Ralf Jung
703b7f8a7e
implement SecRandomCopyBytes for macOS RNG
2019-04-22 11:08:23 +02:00
Ralf Jung
e4970fe6ff
Windows: implement heap functions
2019-04-21 16:48:02 +02:00
Ralf Jung
6a6c0cd5f0
implement ExitProcess for Windows
2019-04-21 13:25: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
2481d6091a
warn when cargo miri setup does not do anything
2019-04-19 19:27:19 +02:00
Ralf Jung
0a5e541272
two-phase-borrow comment
2019-04-19 08:36:05 +02:00
Ralf Jung
22b57f6435
Merge branch 'master' into stacked-borrows-2
2019-04-18 19:28:25 +02:00
Ralf Jung
36e99a1bda
remove some unneeded 'extern crate'
2019-04-18 16:16:32 +02:00
Tim Diekmann
9ecc07c9b2
Add handling for nullptr
and size == 0
2019-04-18 15:20:32 +02:00
Tim Diekmann
afb64232db
Fix for latest upstream update
2019-04-18 12:39:18 +02:00
Tim Diekmann
af3c4c0c23
Merge branch 'master' into realloc
2019-04-18 12:22:58 +02:00
Tim Diekmann
0e6deee76e
Add realloc
2019-04-18 01:20:21 +02:00
Ralf Jung
39ecd05c46
embrace find_map and some whitespace changes
2019-04-17 16:25:38 +02:00
Oliver Scherer
abe8959339
Apply suggestions from code review
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-04-17 16:22:33 +02:00
Ralf Jung
46d5fd8487
barriers are dead, long live protectors -- this enables overlapping two-phase borrows!
2019-04-17 16:02:57 +02:00
Ralf Jung
14e701f7d8
abstract mapping over all the stacks in some memory range
2019-04-17 16:02:57 +02:00
Ralf Jung
7b7fef1b53
let the permission of a new pointer depend on the type only
2019-04-17 16:02:57 +02:00
Ralf Jung
924624f810
some failures are impossible
2019-04-17 16:02:57 +02:00
Ralf Jung
a6d377ca0b
more comments
2019-04-17 16:02:57 +02:00
Ralf Jung
966d638760
make run-pass tests pass. tweak how we remove barriers.
2019-04-17 16:02:57 +02:00
Ralf Jung
3f0a2a2941
rewrite Stacked Borrows Core. this passes stacked-borrows.rs!
2019-04-17 16:02:57 +02:00
Ralf Jung
a50512f751
fix RtlGenRandom argument size
2019-04-16 21:27:27 +02:00
Ralf Jung
6fdc75024b
Merge branch 'master' into rand
2019-04-16 20:55:58 +02:00
Ralf Jung
ba567d19f0
stub out pthread_atfork to that we support thread_rng()
2019-04-16 19:53:10 +02:00
Ralf Jung
9c8ad5f9e1
fix 0-sized getrandom
2019-04-16 19:26:02 +02:00
Ralf Jung
378d9d4172
be pragmatic about ptr-int comparisons, for now
2019-04-16 17:47:37 +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
Ralf Jung
48b22b80c5
Fix typo
...
Co-Authored-By: Aaron1011 <aa1ronham@gmail.com>
2019-04-09 23:33:13 -04:00
Oliver Scherer
2eb2c8dd57
Merge branch 'master' into feature/random
2019-04-09 21:58:15 +02:00
Aaron Hill
0837d630f7
Some final cleanup
2019-04-09 15:49:34 -04:00
Aaron Hill
c6e0d09714
Retrieve SYS_getrandom from libc using const-eval
2019-04-09 11:04:30 -04:00
Aaron Hill
22044c878d
Improve deterministic mode error message
2019-04-09 10:16:32 -04:00
Aaron Hill
6b4c5b81da
Fix 'RtlGenRandom' argument slots
2019-04-08 23:18:10 -04:00
Aaron Hill
5f997645bc
Interpret system call numbers relative to target architecture
2019-04-08 22:37:58 -04:00
Aaron Hill
6d3e93c281
Refactor random number generation
2019-04-08 22:22:41 -04:00
Aaron Hill
6b0440e26d
Cleanup argument parsing
2019-04-08 21:40:52 -04:00
Ralf Jung
06af617b92
fix dumping uninitialized locals
2019-04-08 13:40:11 +02:00
bjorn3
32d01263a9
Update src/fn_call.rs
...
Co-Authored-By: TimDiekmann <21277928+TimDiekmann@users.noreply.github.com>
2019-04-08 10:44:02 +02:00
Aaron Hill
808b149671
Use raw syscall numbers
2019-04-07 20:09:53 -04:00
Aaron Hill
dddeda7f7d
Use getrandom() syscall number from libc
2019-04-07 19:57:14 -04: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
Tim Diekmann
a59e155206
Tidy up calloc code
2019-04-08 01:12:44 +02:00
Tim Diekmann
d1d05c8b41
Fix tagging order
2019-04-07 21:09:21 +02:00
Tim Diekmann
6e4264bf27
Add calloc
2019-04-07 20:52:12 +02:00
Oliver Scherer
9a0eaf6ebd
Update to rustc nightly
2019-04-03 10:48:11 +02:00
kenta7777
d9178b9300
renames EvalContext to InterpretCx
2019-03-30 10:58:28 +09:00
Oliver Scherer
5d3825fc48
Update src/bin/miri-rustc-tests.rs
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-03-18 15:08:36 +01:00
Ralf Jung
8ee67994cc
fix for rustc change
2019-03-18 13:48:37 +01:00
Ralf Jung
687c5d13ea
bump Rust; remove stabilized feature
2019-03-18 13:31:29 +01:00
Oliver Scherer
56c7656568
Remove dead code and docs
2019-03-11 10:28:03 +01:00
Oliver Scherer
a672abddfa
Make the rustc test runner build again
2019-03-11 10:25:21 +01:00
Oliver Scherer
ecae3751b4
Reintroduce prepending the input file name to the miri arguments
2019-03-11 09:43:52 +01:00
John Kåre Alsaker
7d142ecf75
Use the new rustc interface
2019-03-11 09:43:52 +01:00
Ralf Jung
8c74325441
mention --exclude-should-panic
2019-03-10 17:53:30 +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
rchaser53
b1c0cf2ef9
use copy_op directly insteadof write_scalar
...
- fix volatile_store logic
- rename test to be able to read back from later
- expand test to use assert_eq! and confirm to fix volatile_store
- expand test to use assert_eq! and confirm normal load
2019-02-26 19:49:02 +09:00
Ralf Jung
9397b36ab8
typo and comments
2019-02-15 09:35:55 +01: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
2d323857e9
implement and test posix_memalign
2019-02-13 17:47:54 +01:00
Ralf Jung
2d892c160b
skip installing rust-src if XARGO_RUST_SRC is set
2019-02-13 12:10:05 +01:00
Ralf Jung
fd6bd5ba4b
rename things away from 'Shr' that are used for much more than just shared references
2019-02-12 10:58:18 +01:00
Ralf Jung
3c652032c0
be more clear which stack we are talking about
2019-02-12 10:51:03 +01:00
Ralf Jung
35ed590075
also enable passing arguments through from cargo-miri
2019-02-09 20:00:40 +01:00
Ralf Jung
5e468766b7
also pass actual arguments to Windows
2019-02-09 20:00:40 +01:00
Ralf Jung
e400b42c21
fix build
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
0f6e82db36
fix (un)likely intrinsics
2019-02-09 13:08:23 +01:00
Ralf Jung
7af75abdd7
we don't need to flush stderr
2019-02-08 10:41:44 +01:00
Ralf Jung
68e8ff1a09
flush stdout/stderr to make sure it appears on the screen
2019-02-07 18:04:58 +01:00
Ralf Jung
e0891bd619
Fix cargo miri test on lib crates
2019-02-07 16:33:46 +01:00
Ralf Jung
5766b32871
update test for cargo-miri
2019-02-07 13:03:03 +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
48ac35f072
panic_impl is another way to panic
2019-02-06 11:41:45 +01:00
Ralf Jung
661ed7b82d
implement atomic_nand
2019-02-06 11:40:10 +01:00
Ralf Jung
76985f1e2d
remove outdated comment
2019-01-25 08:59:12 +01:00
Oliver Scherer
9f06cdc87a
Explain Ref problems
2019-01-22 17:19:19 +01:00
Oliver Scherer
7269a884c9
Expose AllocId
s for priroda
2019-01-22 16:46:45 +01:00
Oliver Scherer
9c1c407a02
Update to latest rustc master
2019-01-21 17:29:09 +01:00
Ralf Jung
c54d7eef07
expand docs
2019-01-07 19:41:18 +01:00
Ralf Jung
a957a36ddc
tweak merging to give up if we don't make any progress
2019-01-07 19:36:25 +01:00
Ralf Jung
17d11ebe6e
be explicit about doing a binary search; fix out-of-bounds check
2019-01-07 15:10:22 +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
f24d0354f9
rewrite RangeMap to use a sorted Vec instead of a RangeMap
...
This gives us a 20% perf improve for the benchmark from https://github.com/solson/miri/issues/593
2019-01-07 15:10:22 +01:00
Ralf Jung
6c9e702d9b
range_map: also test size of the internal representation
2019-01-07 15:10:22 +01:00
Ralf Jung
e81d81e5af
implement panic_if_uninhabited intrinsic
2019-01-07 11:23:08 +01:00
Ralf Jung
fced2ac865
move env var stuff out of the miri lib
2019-01-04 15:37:51 +01:00
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
Ralf Jung
88ec62640e
make rustc-tests a binary in the main project
2018-10-14 11:48:15 +02:00
Ralf Jung
9a1dd865c1
whitelist Windows Mutex
2018-10-14 11:06:36 +02:00
Ralf Jung
837a17625a
Merge remote-tracking branch 'origin/master' into rustup
2018-10-14 10:35:27 +02:00
Ralf Jung
62b819ba18
whitelist std::ptr::read
2018-10-12 10:40:44 +02:00
Ralf Jung
b99e1267be
atomics wrap around on overflow
2018-10-12 09:08:17 +02:00
Ralf Jung
1846f111c9
fix return place for __rust_maybe_catch_panic
2018-10-11 15:28:21 +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
791f464ea0
update for size_and_align considering extern types
2018-10-11 08:59:39 +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
a439262859
Merge branch 'master' into ptr-offset
2018-10-10 10:03:34 +02:00
Ralf Jung
edf28fa227
only allow offset-by-0 on integer pointers
2018-10-09 20:13:46 +02:00
Ralf Jung
cc275c63a9
fix for fn allocations now having an alignment (1) and a size (0)
2018-10-08 13:35:54 +02:00
Ralf Jung
146f5d8d10
rustup; test for return type mismatch
2018-10-02 21:16:55 +02:00
Ralf Jung
72cd905484
rustup
2018-10-02 09:25:55 +02:00
Ralf Jung
1ce05523c4
remove needs_drop impl
2018-10-01 08:24:42 +02:00