Commit Graph

331 Commits

Author SHA1 Message Date
Ralf Jung
d213c64d85 let the user skip the sysroot consistency check 2019-07-31 15:15:14 +02:00
Ralf Jung
faadb86159 bump Rust 2019-07-26 22:50:01 +02:00
Ralf Jung
11d71195dd fix miri-rustc-tests 2019-07-19 18:03:55 +02:00
Ralf Jung
66ca0f2cc2 fix for rustc_driver change 2019-07-19 17:36:25 +02:00
Ralf Jung
a11d1f55ff avoid unnecessary allocation 2019-07-13 15:18:15 +02:00
Joshua Nelson
ebf65cbdab Give a useful error message if user gives invalid random seed 2019-07-13 08:28:33 -04:00
Ralf Jung
6f5529a05b
Merge branch 'master' into patch-1 2019-06-20 20:47:27 +02:00
Ralf Jung
03eff5981b use org.rust-lang.miri folder on macOS 2019-06-20 19:45:39 +02:00
soc
a561f949ad Fix project dirs path
ProjectDirs::from("miri", "miri", "miri")

would get you `miri\miri` on Windows and `miri.miri.miri` on macOS.

I'm assuming here that your intention was to have only a `miri` directory on every OS.
2019-06-15 17:03:16 +02:00
Lzu Tao
fd0dccd4b1 Fix wrong lifetime of TyCtxt
Rustup rust-lang/rust#61817
2019-06-15 02:34:11 +07:00
Ralf Jung
34b0922cec fix running a Miri that was built in bootstrap 2019-06-14 12:09:43 +02:00
Ralf Jung
ac2f6cbcde change sysroot check to print the output in case of an error 2019-06-14 11:16:39 +02:00
Ralf Jung
ad0c941547 rustup for lifetime refactorings 2019-06-13 09:18:03 +02:00
Ralf Jung
0a9f9e0a0b factor out common code to determine miri binary 2019-06-09 19:47:09 +02:00
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
cf96396fcc make miri script smarter: auto-determine MIRI_SYSROOT, handle MIRI_TEST_TARGET 2019-05-27 14:41:44 +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
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
Bastien Orivel
69a252c1b3 Update cargo_metadata to 0.7 2019-04-27 23:31:48 +02:00
Ralf Jung
2481d6091a warn when cargo miri setup does not do anything 2019-04-19 19:27:19 +02:00
Ralf Jung
36e99a1bda remove some unneeded 'extern crate' 2019-04-18 16:16:32 +02:00
Aaron Hill
6b0440e26d
Cleanup argument parsing 2019-04-08 21:40:52 -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
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
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
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
9397b36ab8 typo and comments 2019-02-15 09:35:55 +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
35ed590075 also enable passing arguments through from cargo-miri 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
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
Oliver Scherer
9c1c407a02 Update to latest rustc master 2019-01-21 17:29:09 +01:00
Ralf Jung
fced2ac865 move env var stuff out of the miri lib 2019-01-04 15:37:51 +01:00
Ralf Jung
d67da9f04b no need to set the cargo-miri feature twice 2018-12-19 11:12:56 +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
e4fd710606 there is a new xargo released, use that 2018-12-18 19:41:32 +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
9417b28de5 treat test binaries like all others 2018-12-11 17:42:18 +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
e12d4bc70c build libstd with minimal features 2018-12-02 14:05:14 +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
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
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
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
984c3368a9 remove stabilized feature flag 2018-11-21 13:41:57 +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
f6d6470bc4 move to 2018 edition
I want NLL :D
2018-11-05 15:45:27 +01:00
Ralf Jung
8da2c9e34e fix adding default arguments 2018-11-03 11:03:53 +01:00
Ralf Jung
fba55ba2a9 make the -Z flags we use more consistent 2018-11-01 08:58:03 +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
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
0b6e349417 automalically use start-fn if we have all the MIR 2018-10-19 10:07:17 +02:00
Andrew Poelstra
4fa5bfa2bb add some comments to clarify command-line argument munging in #482 2018-10-17 20:24:52 +00: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
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
f925e5dafd cargo miri: show version number 2018-09-16 15:18:18 +02:00
Oliver Schneider
be91aea0fa Rustup 2018-08-07 15:22:11 +02:00
Ralf Jung
ff3efb4e04 clarify error message when sysroot was not found 2018-07-30 14:49:01 +02:00
Oliver Schneider
b055ff03f1 Produce the exit codes that compiletest expects 2018-07-25 17:28:16 +02:00
Ralf Jung
f9a8d2618e fix for latest rust nightly 2018-07-16 22:26:32 +02:00
Ralf Jung
0e0f52df75
Merge branch 'master' into start-fn 2018-07-11 21:30:24 +02:00
Ralf Jung
e5de51a322 use -Zmiri-start-fn as a clue to REQUIRE the lang item to be present 2018-07-11 20:25:27 +02:00
Ralf Jung
dd7cc47e5c document -Zmiri-start-fn; make its logic more clear 2018-07-11 19:39:09 +02:00
Ralf Jung
197b75764c without aux builds, we don't need to set always-encode-mir any more 2018-07-11 19:36:45 +02:00
Ralf Jung
7023126094 stop producing binaries 2018-07-11 19:36:45 +02:00
Mateusz Mikuła
d4b98b221d Rusutp 2018-06-29 14:10:57 +02:00
bjorn3
60669cbdfd Rustup to rustc 1.28.0-nightly (2a0062974 2018-06-09) 2018-06-10 11:23:56 +02:00
Oliver Schneider
675587280f Update cargo-miri 2018-06-03 13:08:51 +02:00
Oliver Schneider
601673d06f trans -> codegen_backend 2018-06-03 13:08:51 +02:00
bjorn3
b906ce84ec Rustup to rustc 1.28.0-nightly (952f344cd 2018-05-18) 2018-06-03 13:08:51 +02:00
Oliver Schneider
27fe263669
Move back to a normal folder structure 2018-05-09 14:37:00 +02:00
Oliver Schneider
4cfa7c5d12
Prep miri repository for rustc merger 2017-07-21 11:30:56 +02:00
Oliver Schneider
f2d0101065
Also test optimized MIR 2017-07-20 20:25:43 +02:00
David Renshaw
e3fa4fb849 get cargo-miri to work 2017-06-29 13:06:36 -04:00
Ralf Jung
44a45f7c34 run test suite also against libstd with full MIR 2017-05-31 13:39:40 -07:00
Ralf Jung
6619ed89ba bin/miri.rs looks for RUST_SYSROOT, so should bin/cargo-miri.rs 2017-05-31 11:17:33 -07:00
Ralf Jung
24a9a14dfa fix various small nits 2017-05-30 10:41:38 -07:00
Ralf Jung
cd6e3e6431 If a "start" lang item incl. MIR is present, run that instead of running main directly
This fixes the memory leaks when running a simple "Hello World" with MIR-libstd
2017-05-30 10:41:38 -07:00
Oliver Schneider
da3860a293 Address things complained about by clippy 2017-05-05 10:34:38 +02:00
Oliver Schneider
07229d6305 Rustup to rustc 1.19.0-nightly (2d4ed8e0c 2017-05-03) 2017-05-04 17:42:43 +02:00
David Renshaw
3612d826e7 ast::Attribute no longer has a 'value' field 2017-03-21 11:04:49 -04:00
Scott Olson
eeae478e74 Remove stable feature flag. 2017-02-10 15:13:50 -08:00
Scott Olson
a5b9a0cb78 Simplify logging output. 2017-02-07 00:45:22 -08:00
Scott Olson
2ba883ce98 Merge pull request #107 from canndrew/rename_map_hir
TyCtxt's map renamed to hir
2017-02-03 15:20:05 -08:00
Scott Olson
b490a4077c Merge pull request #103 from oli-obk/tuples
allow using tuple variant names as function handles
2017-01-29 03:27:29 -08:00
Andrew Cann
1752af689f TyCtxt's map renamed to hir 2017-01-29 15:21:24 +08:00
Oliver Schneider
8f7e492305 drive-by rust update 2017-01-28 15:27:20 +01:00
Oliver Schneider
17090b8524
add tests for cargo miri and run them on travis 2017-01-28 11:57:53 +01:00
Oliver Schneider
2cca377bd4
add cargo miri test sub sub command 2017-01-28 11:57:53 +01:00
Oliver Schneider
5adb84645f
add cargo-miri subcommand to directly interpret the main binary of a crate 2017-01-28 11:57:52 +01:00
Oliver Schneider
32cd8efb97
re-enable auxiliary tests for the host only 2017-01-12 08:40:16 +01:00
Oliver Schneider
3a658e09e8
rustup (i128) 2017-01-12 08:28:42 +01:00
Scott Olson
0591683b73 Stop before trans so I can test non-x86_64 targets.
I had problems when it tried to link outputs for targets other than my
host.

This re-breaks tests with auxiliary builds. I'm not sure what to do
about those right now.
2016-12-16 23:47:43 -08:00
Scott Olson
6ec3d65068 Revert "Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)"" 2016-12-16 17:10:16 -08:00
Scott Olson
0deabf9c00 Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)" 2016-12-15 01:16:06 -08:00
Oliver Schneider
24203602e1
remove unused import 2016-12-15 09:56:40 +01:00
Oliver Schneider
9ec97bac71
enable auxiliary builds 2016-12-14 17:06:36 +01:00
Oliver Schneider
8b8c7430f1
re-use mir-opt compiletest instead of rolling our own 2016-12-14 17:06:36 +01:00
Scott Olson
020f0b782b Refactor passing of resource limits. 2016-11-26 17:54:19 -08:00
Scott Olson
3f764a5cfd Update for changes in rustc and refactor. 2016-11-26 17:36:31 -08:00
Oliver Schneider
0039ebc940
replace most uses of usize with u64 so the host architecture isn't exposed anymore 2016-11-18 12:55:14 +01:00
Oliver Schneider
19c44dab05
rustup to rustc 1.14.0-nightly (7c69b0d5a 2016-11-01) 2016-11-03 10:38:08 +01:00
Oliver Schneider
de38015e47 rustup 2016-10-01 15:33:07 +02:00
Oliver Schneider
f5a89d297c
rustc now can use integer literals in attributes 2016-09-07 10:27:57 +02:00
Oliver Schneider
cd91f9feee
replace all unreachable! and panic! calls with bug! 2016-09-06 16:16:49 +02:00
Oliver Schneider
cd42bb97f0
rustup to rustc 1.13.0-nightly (91f057de3 2016-09-04) 2016-09-06 16:04:51 +02:00
Scott Olson
45cf3cfde2 Update for changes in rustc. 2016-08-27 01:44:54 -06:00
Oliver Schneider
a7d3a85d9e
infer type of the various limits 2016-07-07 11:20:09 +02:00
Oliver Schneider
7d2803ae3f
remove unused extern crate 2016-07-07 11:19:55 +02:00
Oliver Schneider
4781a6ba54
add attribute to limit the stack size 2016-07-05 13:23:58 +02:00
Oliver Schneider
88d98998e1
add execution time limit 2016-07-05 13:17:40 +02:00
Oliver Schneider
1444cabc08
make the memory limit configurable 2016-07-05 13:04:46 +02:00
Scott Olson
64eca52ad3 Run Mir passes (copied from rustc pre-trans). 2016-06-30 21:33:24 -06:00
Scott Olson
f4cf3f3636 Get benchmarks running again and factor out some parts in common with bin/miri.rs. 2016-06-17 21:35:37 -06:00
Scott Olson
51edf7ede6 Rename max indentation constant for clarity. 2016-06-17 19:55:24 -06:00
Scott Olson
5ae4a0f2a9 Only indent trace logs. 2016-06-17 19:48:45 -06:00
Scott Olson
8db0bc0ce9 Merge pull request #27 from oli-obk/travis
create a miri-pass test that allows us to run miri for arbitrary targets
2016-06-16 14:03:41 -05:00
Oliver Schneider
82dc95c3ad
create a miri-pass test that allows us to run miri for arbitrary targets 2016-06-15 16:01:00 +02:00
Scott Olson
bac37e69d7 Merge branch 'wip' 2016-06-15 05:24:15 -06:00
Oliver Schneider
d82a79220b
use the logging framework instead of println! 2016-06-15 13:00:51 +02:00
Oliver Schneider
a55ac1fea8
pass arguments to start 2016-06-15 12:55:04 +02:00
Scott Olson
16f778ad20 Rename next_block to block and reorganize Frame fields. 2016-06-14 20:13:59 -06:00
Scott Olson
269f70007f Get the sysroot (like compiletest) in Miri itself. 2016-06-14 19:30:59 -06:00
Oliver Schneider
1bd00e8cb4
run start and main language item if provided 2016-06-14 11:52:45 +02:00
Oliver Schneider
55fd060cd8
don't use #[miri_run] anymore, but execute the main function 2016-06-13 15:33:05 +02:00
Scott Olson
71188ea2df Remove inception test for now. 2016-06-11 13:10:25 -06:00
Scott Olson
947e9a5c31 Fix infinite loop when debug trace is disabled. 2016-06-11 12:38:50 -06:00
Scott Olson
781c3a6660 Update for changes in rustc nightly. 2016-06-11 12:38:28 -06:00
Oliver Schneider
cea2a8ae9e
adjust lifetimes and bindings to the GlobalEvalContext -> EvalContext rename 2016-06-10 16:56:04 +02:00
Oliver Schneider
9c8f84caf7
style nit 2016-06-10 16:32:39 +02:00
Oliver Schneider
6af821f202
rename GlobalEvalContext to EvalContext 2016-06-10 16:20:17 +02:00
Oliver Schneider
b3c1713b89
expose a minimal API and use it in the binary 2016-06-10 13:01:51 +02:00
Oliver Schneider
fee3a2c1a7
remove intermediate vars 2016-06-01 18:42:57 +02:00
Oliver Schneider
af41c54301
use format! compile time magics for indentation 2016-06-01 18:33:29 +02:00
Oliver Schneider
c62cce3116
wraparound when reaching indentation lvl 40 2016-06-01 18:18:01 +02:00
Oliver Schneider
b7df4fdc75
use a number for the maximum indentation instead of relying on str::len() 2016-06-01 17:58:50 +02:00
Oliver Schneider
f9a5416135
use MIRI_LOG instead of RUST_LOG, because rustc's output is very verbose 2016-06-01 17:32:57 +02:00
Oliver Schneider
f1e4ef6c6f
re-introduce the module name to the logs and show vertical bars 2016-06-01 11:47:55 +02:00
Oliver Schneider
4f3f2020ed
add the log crate + env_logger to be able to choose the log granularity at runtime 2016-06-01 11:47:41 +02:00
Scott Olson
49b6349577 Update to a new nightly. 2016-05-09 15:32:18 -06:00
Oliver Schneider
ef5fc75c35 various testing improvements 2016-04-22 20:09:00 +02:00
Oliver Schneider
211c12a1d0 use compiletest_rs 2016-04-22 10:34:14 +02:00
Scott Olson
877d2d900e Abort miri if the Rust code had compilation errors. 2016-03-21 02:54:20 -06:00
Scott Olson
5e0ba54d00 Move miri binary source into src/bin. 2015-12-12 00:46:03 -06:00