Ralf Jung
5e3035b6cb
use apfloat for ldexp
2019-08-09 19:54:01 +02:00
Christian Poveda
e1d1cd191f
Use ldexp from cmath instead
2019-08-08 15:45:58 -05:00
Ralf Jung
19367fd8de
bump xargo version
2019-08-08 19:34:23 +02:00
Christian Poveda
253af9692a
Fix formatting
2019-08-07 10:50:46 -05:00
bors
b12ebfc3de
Auto merge of #895 - RalfJung:uninit, r=oli-obk
...
Revert "uninit intrinsic is gone"
This reverts commit fa290f1a48
.
Uninit is [being reinstated](https://github.com/rust-lang/rust/pull/63343 ) because it breaks some broken code.
2019-08-07 12:42:19 +00:00
Ralf Jung
455531c564
Revert "uninit intrinsic is gone"
...
This reverts commit fa290f1a48
.
Uninit is being reinstated because it breaks some broken code.
2019-08-07 10:49:36 +02:00
Christian Poveda
b731a6a15f
Add support for env communication
2019-08-06 17:40:07 -05:00
Christian Poveda
068c448832
Add communicate field to evaluator and fix formatting
2019-08-06 15:44:44 -05:00
Christian Poveda
655f9af7fe
Add flag to enable communication
2019-08-06 15:18:22 -05:00
Ralf Jung
3fe4eec37a
mention that we get the toolchain right
2019-08-06 20:52:09 +02:00
Ralf Jung
cc8d995605
go back to released xargo (the experiment is done)
2019-08-06 08:05:32 +02:00
Ralf Jung
b0cb603e3a
rustup
2019-08-05 15:49:19 +02:00
Ralf Jung
d26917a9d6
fix for latest rustc
2019-08-05 10:45:48 +02:00
bors
93e110f370
Auto merge of #886 - Aaron1011:shim/getrandom, r=RalfJung
...
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)'
2019-08-04 21:02:08 +00:00
Aaron Hill
f830a6c69e
Apply more formatting fixes
...
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 16:57:17 -04:00
Aaron Hill
8650f02bc9
Add trailing comma
2019-08-04 16:12:24 -04:00
Aaron Hill
56a9a283e7
Cleanup formatting
2019-08-04 16:12:24 -04:00
Aaron Hill
a2bdb3bb94
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)'
2019-08-04 16:12:23 -04:00
bors
96adbf65bc
Auto merge of #885 - Aaron1011:fix/f-round, r=RalfJung
...
Add misssing 'roundf32' and 'roundf64' intrinsics
2019-08-04 20:12:02 +00:00
Aaron Hill
4d3398fc62
Replace match with expect()
2019-08-04 15:49:14 -04:00
Aaron Hill
3118b9fe42
Add misssing 'roundf32' and 'roundf64' intrinsics
2019-08-04 10:25:29 -04:00
Aaron Hill
c2f681f005
Add semicolon
...
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 10:13:29 -04:00
Aaron Hill
0505868d18
Do nothing when we try to generate random data of length 0
...
This preserves compatibility with programs that pass a null pointer and
a length of zero to getrandom(), or their platform's equivalent.
2019-08-04 09:21:17 -04:00
Ralf Jung
0096a0df2a
gen_random helper: move ptr argument to front
2019-08-04 14:49:10 +02:00
bors
ed30152b52
Auto merge of #876 - RalfJung:atomic, r=RalfJung
...
check that atomics are sufficiently aligned
Fixes https://github.com/rust-lang/miri/issues/475
2019-08-04 08:55:18 +00:00
Ralf Jung
a4cc58efc6
one more place -> ptr rename
2019-08-04 10:54:07 +02:00
Ralf Jung
19add0bb75
places and pointers are not the same thing; this is a place
2019-08-04 10:52:09 +02:00
Ralf Jung
f47e58950b
check that atomics are sufficiently aligned, and add test
2019-08-04 10:30:42 +02:00
bors
843691d612
Auto merge of #882 - RalfJung:miri-rustc, r=RalfJung
...
install xargo from git temporarily
This is so that once https://github.com/japaric/xargo/pull/246 landed, we can see if that helps with https://github.com/rust-lang/rust/pull/63162 .
2019-08-04 08:26:51 +00:00
Ralf Jung
162c0ffb1f
use postfix negation instead of prefix
2019-08-04 10:14:51 +02:00
Ralf Jung
874437d717
install xargo from git temporarily
2019-08-04 10:11:45 +02:00
bors
d9d6df93a9
Auto merge of #881 - RalfJung:rustup, r=RalfJung
...
adjust for rustc changes
2019-08-03 18:56:38 +00:00
Ralf Jung
8d99e42f47
test memalign contract (rustc is fixed)
2019-08-03 20:53:42 +02:00
Ralf Jung
f65e7cd2d1
adjust for rustc changes
2019-08-03 20:31:33 +02:00
bors
d0e8850267
Auto merge of #877 - christianpoveda:ldexp-shim, r=RalfJung
...
Add shim for ldexp
Fixes https://github.com/rust-lang/miri/issues/821
r? @RalfJung
2019-08-03 16:14:20 +00:00
Christian Poveda
c4cea035e6
Formatting
2019-08-03 10:51:23 -05:00
Ralf Jung
10f46336af
set RUSTC_DEBUG_ASSERTIONS for when we are in bootstrap
2019-08-03 17:21:30 +02:00
Ralf Jung
ab22da8ce8
annotate some unwraps with better messages
2019-08-03 16:59:30 +02:00
Ralf Jung
61d8a4e101
simplify code
2019-08-03 15:01:04 +02:00
Ralf Jung
82da68c5ca
implement all ptr comparisons through integer casts
2019-08-03 15:01:04 +02:00
Ralf Jung
bb6a91dc94
adjust for ptr_op now being called type-based
2019-08-03 14:38:36 +02:00
Ralf Jung
e71ca965b9
also let bootstrap tell us where to find xargo
2019-08-03 13:53:32 +02:00
Ralf Jung
8071034b93
fix for error refactoring
2019-08-03 10:25:55 +02:00
Christian Poveda
ff2001040f
Add shim for ldexp
2019-08-02 15:46:28 -05:00
Ralf Jung
0dab3d5ee1
honor CARGO env var (for rustc bootstrap)
2019-08-02 18:02:54 +02:00
bors
f0e871785f
Auto merge of #870 - RalfJung:miri-rustc, r=oli-obk
...
Prepare Miri for rustc bootstrap building a separate libstd for it
2019-08-02 08:08:35 +00:00
Ralf Jung
30fb027f33
comment
2019-08-02 08:38:22 +02:00
Ralf Jung
c4c2716f4e
make reborrow shallow, and fix tests for that
2019-08-02 08:09:22 +02:00
Ralf Jung
56630e0ff0
bootstrap no longer carries a copy of these flags
2019-07-31 15:15:31 +02:00
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
Lzu Tao
e6a677fe63
build: Warn if not use 2018 idioms
2019-07-24 21:24:26 +07:00
bors
aadff8560b
Auto merge of #852 - lzutao:rustup, r=RalfJung
...
build: Fix build after rust-lang/rust#60951
2019-07-24 13:05:55 +00:00
Lzu Tao
fd71fbea0f
build: Fix build after rust-lang/rust#60951
2019-07-24 07:45:34 +07:00
Ralf Jung
724cf41eb1
use checked arithmetic in intrptrcast
2019-07-23 23:43:37 +02:00
Ralf Jung
068517ae66
make sure we always have an RNG
2019-07-23 21:38:53 +02:00
Ralf Jung
a2541aacd6
bump rust
2019-07-21 11:56:10 +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
f8c6eb5e8c
thread creation error for Windows
2019-07-11 18:59:11 +02:00
Ralf Jung
e7b39e382a
reenable all tests on Windows
2019-07-11 18:41:53 +02:00
Ralf Jung
11686f4be2
we do this these days
2019-07-10 14:38:49 +02:00
Ralf Jung
70a5bb7dbb
force pointers before reborrowing; fixes cargo miri test suite
2019-07-10 14:36:56 +02:00
Ralf Jung
f79f31dfa1
adjust for rustc changes; normalize mplace before doing freeze-sensitive visit
2019-07-10 14:36:56 +02:00
Lzu Tao
3ea62d3527
Remove SliceConcatExt import
2019-07-10 09:56:35 +07:00
bors
e4a98ea8d8
Auto merge of #826 - RalfJung:uninit, r=RalfJung
...
uninit intrinsic is gone
Finally. :D
However, to land this we'll need to fix the intptrcast issues that block https://github.com/rust-lang/miri/pull/803 .
2019-07-06 09:40:51 +00:00
Ralf Jung
47bfc62b5b
use Memory::read_c_str, avoid a few to_ptr
2019-07-06 11:01:07 +02:00
Ralf Jung
9e130c6c6f
fix for changd machine trait signatures
2019-07-06 10:07:22 +02:00
Ralf Jung
4fa243be78
adjust for get_fn signature change
2019-07-06 10:07:22 +02:00
Ralf Jung
3ca934f07d
gen_random: use check_ptr_access
2019-07-06 10:07:22 +02:00
Ralf Jung
8093a59ffb
move gen_random to helpers
2019-07-06 10:07:21 +02:00
Ralf Jung
4f6a56f54f
better error message when the program tries to spawn a thread
2019-07-06 10:07:21 +02:00
Ralf Jung
2ca1b94e6d
update to FnVal changes; implement basic Dlsym support and use it for getentropy
2019-07-06 10:07:21 +02:00
Ralf Jung
fa290f1a48
uninit intrinsic is gone
2019-07-06 10:06:45 +02:00
Ralf Jung
5e022773f3
fix unused variable warning
2019-07-06 09:32:35 +02:00
Ralf Jung
b324cbf282
Merge remote-tracking branch 'origin/master' into rustup
2019-07-06 09:29:17 +02:00
Ralf Jung
1729965808
rename InterpretCx -> InterpCx
2019-07-05 23:48:51 +02:00
Ralf Jung
f23b782101
align small malloc-allocations even less, and test that we do
2019-07-05 23:48:48 +02:00
Ralf Jung
89696a4ab9
Merge remote-tracking branch 'origin/master'
2019-07-05 22:46:11 +02:00
Ralf Jung
4d76dd1f09
temporarily disable validation on Windows
2019-07-05 21:26:58 +02:00
Ralf Jung
aad5fde703
fix deallocating/reallocating with integer pointers
2019-07-05 19:21:21 +02:00
Ralf Jung
698b311a59
fix NULL in TLS dtors
2019-07-05 10:08:57 +02:00
Ralf Jung
07d5e9917c
avoid Scalar::is_null_ptr, it is going away
2019-07-05 09:56:42 +02:00
bors
3525943794
Auto merge of #822 - RalfJung:tls, r=RalfJung
...
move tls.rs into shims module
2019-07-04 08:51:19 +00:00
Ralf Jung
93c62a4912
move tls.rs into shims module
2019-07-03 23:12:44 +02:00
Ralf Jung
b29cb7d551
avoid catching errors
2019-07-03 10:56:25 +02:00
Ralf Jung
eb4128fb42
don't call Stacked Borrows hooks at all when validation is disabled
2019-07-03 10:47:28 +02:00
Ralf Jung
c8450bda4f
support integers that can be cast to pointers in in-bounds offset operation
2019-07-03 10:47:28 +02:00
Ralf Jung
c3da843ca0
we don't need zero-sized freeze-sensitive visiting
2019-07-03 10:47:28 +02:00
Ralf Jung
12b8d4366c
avoid integer overflow in ptr-to-int cast
2019-07-03 10:47:28 +02:00
Ralf Jung
c6e4f760a2
allow dangling ptr-to-int casts; use force_bits for ptr comparison
2019-07-03 10:47:28 +02:00
Ralf Jung
457c823765
only treat integer operations as such
2019-07-03 10:47:28 +02:00
bors
93f5892962
Auto merge of #815 - RalfJung:memory-audit, r=RalfJung
...
don't call Memory::get without checking the pointer first
Also avoid Memory::get if we just need to know align/size.
I audited all uses of `alloc_id`; the rest should be fine (and we can kill a bunch of them once https://github.com/rust-lang/rust/pull/62257 lands).
2019-07-01 20:59:17 +00:00
Ralf Jung
e82693fa23
Merge branch 'master' into rustup
2019-07-01 13:01:28 +02:00
Ralf Jung
7b702b9258
move find_fn (which is not specific to foreign items) out of foreign_items
2019-07-01 00:28:31 +02:00
Ralf Jung
4135441137
don't call Memory::get without checking the pointer first; avoid Memory::get if we just need to know align/size
2019-07-01 00:24:56 +02:00
Ralf Jung
cb6d4f0c9a
test even more size-alignment combinations. found a bug in libstd!
2019-06-30 21:23:48 +02:00
Ralf Jung
709b474859
fix minimal alignment for system allocation functions
2019-06-30 21:10:47 +02:00
Ralf Jung
e960270662
add some tracing to intptrcast
2019-06-30 21:10:47 +02:00
Ralf Jung
b8879f3d8c
move shims (foreign items and intrinsics) into submodule
2019-06-30 15:35:28 +02:00
Ralf Jung
11457a4ad9
fix comparing function pointers with intptrcast
2019-06-30 11:21:31 +02:00
bors
1ec279f290
Auto merge of #801 - RalfJung:num_cpus, r=RalfJung
...
support num_cpus crate and test that
Also make some magic numbers into proper global constants.
2019-06-30 08:42:25 +00:00
Ralf Jung
ba47d73041
Merge branch 'master' into rustup
2019-06-29 16:19:27 +02:00
Ralf Jung
019ad4bab4
move constants to machine.rs
2019-06-29 14:37:41 +02:00
Ralf Jung
c7bf9064f7
comment on STACK_ADDR
2019-06-29 14:34:08 +02:00
Ralf Jung
0fac868685
support num_cpus and test that
2019-06-29 14:34:08 +02:00
Ralf Jung
c1645f6c65
don't compute residue twice
2019-06-29 14:31:54 +02:00
Ralf Jung
9b66527075
more sensible slack
2019-06-29 14:31:54 +02:00
Ralf Jung
c0b44ca98c
tweak inttoptr allocation behavior
...
- Make `align_addr` not offset by `align` for no reason.
- Add some random slack between allocations to give them the chance to not be aligned.
2019-06-29 14:31:54 +02:00
Ralf Jung
aa5a9bc152
some module comments
2019-06-29 14:15:05 +02:00
Ralf Jung
857305ff67
Merge remote-tracking branch 'ralf/machine' into rustup
2019-06-29 14:04:50 +02:00
Ralf Jung
67d3779b0c
move most of the stuff from lib.rs into machine.rs, and initialization + main loop into eval.rs
2019-06-29 13:48:59 +02:00
Ralf Jung
6886864862
ptr-to-int alignment sanity check
2019-06-28 09:12:11 +02:00
Christian Poveda
373a4ee1e9
Remove default derive for MemoryExtra
2019-06-26 13:55:56 -05:00
Christian Poveda
413a351552
Initialize MemoryExtra with StdRng
2019-06-26 13:09:50 -05:00
Christian Poveda
7fbf8e53a2
Fix alignment of base addresses
2019-06-26 09:08:28 -05:00
Christian Poveda
792d665a1f
Fix merge conflicts
2019-06-25 00:57:33 -05:00
Christian Poveda
84cfbb01b7
Reorganize MemoryExtra and AllocExtra structures
2019-06-24 17:18:25 -05:00
Christian Poveda
2861ceb2fa
Rename new fields and move rng to MemoryExtra
2019-06-24 10:03:16 -05:00
Ralf Jung
7e7b5d42ba
Apply suggestions from code review
...
Co-Authored-By: Oliver Scherer <github35764891676564198441@oli-obk.de>
2019-06-24 14:50:27 +02:00
Ralf Jung
69e8318b60
de-obfuscate ptr comparison a bit
2019-06-23 20:30:33 +02:00
Ralf Jung
4dc188a60e
adjust for refactored memory pointer checks
2019-06-23 20:19:26 +02:00
Christian Poveda
dd732e5862
Force intptrcast for binary operations
2019-06-22 09:25:16 -05:00
Ralf Jung
72c269eebe
fix compilation with latest rustc
2019-06-22 11:05:12 +02:00
Christian Poveda
fd3a291db4
Implement intptrcast methods
2019-06-21 14:55:37 -05:00
Oliver Scherer
5edb9c915f
Merge branch 'master' into master
2019-06-21 12:37:13 +02:00
Christian Poveda
17dbecfa32
Merge branch 'master' into master
2019-06-20 21:38:10 -05:00
Christian Poveda
4211d7e1a0
Update tag methods to match Machine changes
2019-06-20 16:58:57 -05:00
Ralf Jung
86868b6946
Merge branch 'master' into rustup
2019-06-20 21:37:12 +02: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
Ralf Jung
04fa38dd1b
allow some inequality comparisons between pointers and integers
2019-06-20 16:38:55 +02:00
Ralf Jung
7ce36226e6
implement and test unchecked_{add,sub,mul} intrinsics
2019-06-16 11:10:33 +02:00
Ralf Jung
fc90124489
test exact_div UB detection
2019-06-16 11:10:33 +02:00
Ralf Jung
32a2cf046f
Merge branch 'master' into foreign_math_functions
2019-06-16 10:11:32 +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
Oliver Scherer
4db0eea010
Fix indentation
2019-06-14 10:44:08 +02:00
Kenny Goodin
46b6a3fb7f
Add more missing math functions
...
Add missing functions for atan2, cosh, sinh, and tan.
Also add f32 calls and tests for cbrt and hypot.
2019-06-13 22:28:22 -04:00
Ralf Jung
ad0c941547
rustup for lifetime refactorings
2019-06-13 09:18:03 +02:00
Kenny Goodin
535914e3dc
Implement cbrt and hypot function calls
...
Test cases are added to `tests/run-pass/intrinsics-math.rs`
2019-06-12 15:44:30 -04:00
Ralf Jung
a37953752d
use apfloat's FMA primitive
2019-06-11 19:41:43 +02:00
Ralf Jung
5e07ac335f
implement min and max floating point intrinsics
2019-06-11 19:41:43 +02:00
Ralf Jung
6eab94a459
fix from to/from f32/f64 changes
2019-06-11 19:41:43 +02:00
Ralf Jung
81debbd652
Merge branch 'master' into sysroot
2019-06-11 09:48:05 +02:00
Ralf Jung
446478cce2
fix for rustc rename mir -> body
2019-06-10 13:01:55 +02:00