Oliver Schneider
|
4c7aae73bc
|
adjust all pointer_size checks to use the method
|
2016-06-23 10:02:39 +02:00 |
|
Oliver Schneider
|
d13153c424
|
add a pointer_size method to Memory for easy access
|
2016-06-23 09:59:16 +02:00 |
|
Oliver Schneider
|
205a988c1b
|
improve rustdoc rendering
|
2016-06-23 09:40:01 +02:00 |
|
Oliver Schneider
|
055b6a8d38
|
store full TargetDataLayout in Memory instead of just pointer size
|
2016-06-23 09:36:37 +02:00 |
|
Scott Olson
|
0c720f6e6b
|
Split terminator evaluation into a new module.
|
2016-06-23 01:03:58 -06:00 |
|
Scott Olson
|
d80cf91ef2
|
Rename stepper module to step .
|
2016-06-23 00:04:10 -06:00 |
|
Scott Olson
|
7bda9f24d6
|
Make step an EvalContext method and remove Stepper .
|
2016-06-23 00:02:47 -06:00 |
|
Oliver Schneider
|
b10fc7a99f
|
make sure miri never switches over an invalid char value
|
2016-06-21 09:44:01 +02:00 |
|
Oliver Schneider
|
7a9272c8e1
|
no need to cast chars as u32 before casting to u64
|
2016-06-21 09:43:45 +02:00 |
|
Oliver Schneider
|
422e5edd28
|
error message improvements
|
2016-06-21 09:43:27 +02:00 |
|
Oliver Schneider
|
2dbd30fa51
|
implement char handling
|
2016-06-21 09:35:20 +02:00 |
|
Oliver Schneider
|
65de5dd2d0
|
simplify even more
|
2016-06-20 18:15:33 +02:00 |
|
Oliver Schneider
|
c7039dbb2b
|
simplify the masked rhs computation
|
2016-06-20 18:01:35 +02:00 |
|
Oliver Schneider
|
001ae69212
|
remove the bad rhs value error and panic instead. the typechecker prevent this
|
2016-06-20 17:52:36 +02:00 |
|
Oliver Schneider
|
a088f105aa
|
add a comment explaining the magic numbers
|
2016-06-20 17:52:14 +02:00 |
|
Oliver Schneider
|
3e3aeab0ed
|
implement bit masks as the compiler would translate them
|
2016-06-20 17:16:45 +02:00 |
|
Oliver Schneider
|
0821a15476
|
no need for EvalContext::eval_binop
|
2016-06-20 16:57:36 +02:00 |
|
Oliver Schneider
|
68469be89b
|
rename function cache member
|
2016-06-20 16:52:53 +02:00 |
|
Oliver Schneider
|
b9ac85d2a9
|
rustc does overflow checking for us, don't duplicate it.
|
2016-06-20 16:52:43 +02:00 |
|
Oliver Schneider
|
a1082b9b1a
|
Merge remote-tracking branch 'origin/master' into oflo
|
2016-06-20 12:33:09 +02:00 |
|
Oliver Schneider
|
e90ee1674a
|
fix comparing of function pointers
|
2016-06-20 10:35:15 +02:00 |
|
Oliver Schneider
|
874d683bfa
|
improve method names and add documentation
|
2016-06-20 10:34:34 +02: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 |
|
Oliver Schneider
|
00eb198a82
|
implement fn -> unsafe fn pointer casts
|
2016-06-17 16:49:06 +02:00 |
|
Oliver Schneider
|
e3a2bf84e2
|
clippy
|
2016-06-17 16:03:11 +02:00 |
|
Oliver Schneider
|
3ba4f6db04
|
remove code repetition and fix overflowing intrinsics
|
2016-06-17 15:16:41 +02:00 |
|
Oliver Schneider
|
58b4fac1ce
|
implement overflowing ops
|
2016-06-17 13:09:20 +02: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 |
|
Scott Olson
|
b24edd6a23
|
Merge pull request #24 from oli-obk/typesafe_fn_calls
Typesafe fn calls
|
2016-06-15 05:05:50 -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
|
c36dcff005
|
forbid calling functions through pointers of a different type
|
2016-06-14 10:34:54 +02:00 |
|
Oliver Schneider
|
55fd060cd8
|
don't use #[miri_run] anymore, but execute the main function
|
2016-06-13 15:33:05 +02:00 |
|
Oliver Schneider
|
fe9b455006
|
comment nit
|
2016-06-13 15:32:08 +02:00 |
|
Oliver Schneider
|
4d090fa693
|
report better errors when using a fn ptr as memory and vice versa
|
2016-06-13 11:39:15 +02:00 |
|
Oliver Schneider
|
3aa585e421
|
Merge remote-tracking branch 'origin/master' into function_pointers2
|
2016-06-13 11:24:01 +02:00 |
|
Scott Olson
|
024b3d2b45
|
Merge remote-tracking branch 'oli/function_pointers2' into fixup-function_pointers2
|
2016-06-11 16:46:01 -06:00 |
|
Scott Olson
|
1c58b7c2ed
|
Add hacky stub version of CheckedBinaryOp.
|
2016-06-11 13:10:42 -06: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
|
384623daa7
|
function pointers
|
2016-06-10 18:06:36 +02:00 |
|
Oliver Schneider
|
67211218f0
|
display the full path to the function if no MIR is found
|
2016-06-10 18:04:12 +02:00 |
|
Oliver Schneider
|
9780729104
|
we already have the constant's type, no need to recompute from the def_id
|
2016-06-10 18:04:12 +02: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
|
4fa328ef5f
|
remove unused method
|
2016-06-10 16:20:25 +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
|
3b804942fd
|
simplify the stepper interface
|
2016-06-10 12:34:15 +02:00 |
|
Oliver Schneider
|
8c3a066d8d
|
get rid of the constants cache in the stepper
this is possible due to the removal of `FnEvalContext`
|
2016-06-09 17:24:42 +02:00 |
|
Oliver Schneider
|
336206cec2
|
the type_size method's substs argument allows computing the locals before pushing the stack frame
|
2016-06-09 17:23:58 +02:00 |
|
Oliver Schneider
|
2dbd82d296
|
inline the call method into interpret_start_points
|
2016-06-09 16:49:40 +02:00 |
|
Oliver Schneider
|
fc935c10f8
|
print errors in one central location
|
2016-06-09 16:13:42 +02:00 |
|
Oliver Schneider
|
ba9e25b2eb
|
No more terminators
|
2016-06-09 16:08:34 +02:00 |
|
Oliver Schneider
|
8fec1a7aa7
|
merge FnEvalContext into GlobalEvalContext
|
2016-06-09 16:01:53 +02:00 |
|
Oliver Schneider
|
05eaa522a5
|
rename static_item to global_item
|
2016-06-09 11:27:12 +02:00 |
|
Oliver Schneider
|
040a501a68
|
make sure globals that yield function pointers aren't treated like functions
|
2016-06-09 11:27:02 +02:00 |
|
Oliver Schneider
|
225a6a272d
|
we already have the constant's type, no need to recompute from the def_id
|
2016-06-09 11:16:09 +02:00 |
|
Oliver Schneider
|
59d858a0b1
|
refactor away the closures and Event enum
|
2016-06-09 10:56:23 +02:00 |
|
Oliver Schneider
|
cbbf58bbaa
|
the statement/terminator has already been computed, don't do it again
|
2016-06-08 12:47:24 +02:00 |
|
Oliver Schneider
|
2178961262
|
improve the docs of ConstantId
|
2016-06-08 12:35:15 +02:00 |
|
Oliver Schneider
|
240f0c0dd6
|
improve fn argument naming
|
2016-06-08 12:30:25 +02:00 |
|
Oliver Schneider
|
3868a62713
|
put ConstantId 's common fields into a struct
|
2016-06-08 11:46:37 +02:00 |
|
Oliver Schneider
|
3de30e33f5
|
no more function pointers
|
2016-06-08 11:34:56 +02:00 |
|
Oliver Schneider
|
8b25bc8a9a
|
directly push stackframes for constants when they are encountered
|
2016-06-08 11:11:33 +02:00 |
|
Oliver Schneider
|
6b939bbd79
|
rebase leftovers
|
2016-06-08 11:11:08 +02:00 |
|
Oliver Schneider
|
1f27d3f7b3
|
don't cache the MIR in the Stepper
|
2016-06-08 10:26:48 +02:00 |
|
Oliver Schneider
|
c881cf10d8
|
clippy nits
|
2016-06-08 09:41:28 +02:00 |
|
Oliver Schneider
|
f42be6db54
|
move load_mir to the global eval context
|
2016-06-08 09:41:25 +02:00 |
|
Oliver Schneider
|
4d44a970a3
|
move some methods from FnEvalContext to GlobalEvalContext
|
2016-06-08 09:38:59 +02:00 |
|
Oliver Schneider
|
4c833a54d2
|
globally cache statics and promoteds
|
2016-06-03 17:41:36 +02:00 |
|
Oliver Schneider
|
4743842821
|
move constants stack to stackframe
|
2016-06-03 17:08:51 +02:00 |
|
Oliver Schneider
|
02eed64cc0
|
update documentation
|
2016-06-03 17:04:08 +02:00 |
|
Oliver Schneider
|
346560b318
|
factor out the statement index into the stackframe
|
2016-06-03 16:57:47 +02:00 |
|
Oliver Schneider
|
f995db9ffb
|
store the current block in the frame
|
2016-06-03 16:51:51 +02:00 |
|
Oliver Schneider
|
cc1ca73f57
|
jit interpretation of constants
|
2016-06-03 15:48:56 +02:00 |
|
Oliver Schneider
|
05f829cc9f
|
merge the three stacks in the interpreter
|
2016-06-02 18:21:32 +02:00 |
|
Oliver Schneider
|
38ae3526e5
|
remove a debug message that snuck into the commit
|
2016-06-02 18:03:22 +02:00 |
|
Oliver Schneider
|
6ac64f19af
|
also step through promoteds, constants and statics
|
2016-06-02 17:05:17 +02:00 |
|
Oliver Schneider
|
5211178377
|
note that not all literal items are function pointers
|
2016-06-01 19:20:23 +02:00 |
|
Oliver Schneider
|
0c269a500c
|
rename iterator module to stepper
|
2016-06-01 19:17:18 +02:00 |
|
Oliver Schneider
|
77e1ec2b49
|
style: spaces between functions
|
2016-06-01 19:01:40 +02:00 |
|
Oliver Schneider
|
2405c81c65
|
stepwise interpretation
|
2016-06-01 18:50:20 +02:00 |
|
Oliver Schneider
|
5a8b0ab579
|
don't clone the MIR Rc in every iteration
|
2016-06-01 18:50:20 +02:00 |
|
Oliver Schneider
|
8398781132
|
remove one layer of indirection when interpreting const/static/main functions
|
2016-06-01 18:50:20 +02:00 |
|
Oliver Schneider
|
e73fa7733d
|
can't evaluate failed assertions yet
|
2016-06-01 18:50:20 +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 |
|