Commit Graph

45 Commits

Author SHA1 Message Date
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
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
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
Oliver Schneider
c36dcff005
forbid calling functions through pointers of a different type 2016-06-14 10:34:54 +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
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
cea2a8ae9e
adjust lifetimes and bindings to the GlobalEvalContext -> EvalContext rename 2016-06-10 16:56:04 +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
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
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
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
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
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
2405c81c65
stepwise interpretation 2016-06-01 18:50:20 +02:00