Scott Olson
6d1c47b6ef
Update for changes in rustc.
2016-12-21 17:23:28 -08:00
Scott Olson
9093188a5c
Clean up useless pub use
.
2016-12-21 17:15:03 -08:00
Scott Olson
2a5029ed6d
Update MIR passes to match rustc.
2016-12-18 23:31:23 -08:00
Scott Olson
b233ada529
Change Option<Value> to Value, using ByVal(Undef).
...
This job isn't quite finished because it caused me to discover bugs
related to reading `ByVal(Undef)` when a `ByValPair` is expected, e.g.
for a fat pointer. This wasn't a problem with the `None` of
`Option<Value>`, but I realized an equivalent bug existed even then,
since you could transmute a `u64` like `ByVal(Bytes(42))` to a fat
pointer type on 32-bit targets.
Likewise, you could transmute a fat pointer to `u64` and get panics
related to expecting `ByVal` but finding `ByValPair`, so the problem
goes both ways.
2016-12-18 20:59:01 -08:00
Scott Olson
459a27d6bd
Reading undef local/globals gets PrimVal::Undef.
...
This fixes #95 .
2016-12-17 03:36:22 -08:00
Scott Olson
6b7c68bec2
Rename bits to bytes for consistency.
2016-12-17 03:19:32 -08:00
Scott Olson
4fe41ad8d5
Refactor PrimVal::bits() out of existence.
2016-12-17 03:09:57 -08:00
Scott Olson
d63ab5f8c3
Refactor PrimVal::relocation out of existence.
2016-12-17 01:47:24 -08:00
Scott Olson
29e690fe14
Handle writing undefined PrimVals and mask properly.
2016-12-17 01:36:02 -08: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
3bad50e114
Rename PrimVal::from_{u,}int to from_{u,i}64.
2016-12-16 22:11:44 -08:00
Scott Olson
f83c45e367
Turn invalid panics into Results and rename fns.
2016-12-16 22:08:40 -08:00
Scott Olson
33f97feafb
Shorten PrimVal::Undefined to PrimVal::Undef.
2016-12-16 22:03:34 -08:00
Scott Olson
e615f671ce
Remove potentially wrong PartialEq from PrimVal.
2016-12-16 22:03:34 -08:00
Scott Olson
67e1627a55
Rename PrimVal::Pointer to PrimVal::Ptr.
...
Also fill out the PrimVal doc comments.
2016-12-16 22:03:34 -08:00
Scott Olson
b36a83171b
Turn PrimVal into an enum including Undefined.
...
This is step 1 of a refactoring to fix #95 . The `Undefined` variant is
so far unused and the old `bits` and `relocation` fields are emulated
with two new temporary methods. There should be no functional change due
to this commit.
2016-12-16 22:03:34 -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
0a79304fcb
improve variable name
2016-12-15 09:58:57 +01:00
Oliver Schneider
fd0c21eeee
check that the null terminator is defined and not part of a pointer
2016-12-15 09:58:41 +01: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
Oliver Schneider
69fa3ebff6
rustup to rustc 1.15.0-dev ( ace092f56
2016-12-13) (always_encode_mir)
2016-12-14 17:06:23 +01:00
Scott Olson
ee0dc452aa
Move binop functions to operator module.
2016-12-10 17:03:12 -08:00
Scott Olson
e0013b2ae4
Clean up vtable imports.
2016-12-10 16:58:13 -08:00
Scott Olson
636b476eda
Rename intrinsics to intrinsic for consistency.
2016-12-10 16:27:45 -08:00
Scott Olson
1af63171f8
Split primval into operator and value.
2016-12-10 16:23:07 -08:00
Scott Olson
bc5bd71922
Add support for untagged unions.
2016-12-07 23:25:47 -08:00
Scott Olson
a64d30b2c1
Replace some stray try!
s with ?
.
2016-12-07 22:56:28 -08:00
Scott Olson
829d97bde2
Move lvalue-related methods to lvalue mod.
2016-12-07 22:01:11 -08:00
Scott Olson
5ce6514f23
Dump allocations within PrimVal pointers.
2016-12-07 22:00:46 -08:00
Scott Olson
fe19a014ff
Move lvalue data structures out of eval_context.
2016-12-07 20:58:48 -08:00
Scott Olson
4702d97093
Flatten 'interpreter' mod tree into the root.
2016-12-07 20:30:37 -08:00
Oliver Schneider
5dd01c309f
fix documentation
2016-12-07 09:52:22 +01:00
Oliver Schneider
3065273601
simplify the interpreter locals, since they always must be backed by an allocation
2016-12-07 09:19:14 +01:00
Oliver Schneider
bfe1efcbf8
stop leaking memory on closure calls
2016-12-06 18:13:11 +01:00
Oliver Schneider
360ef490f4
supply a real "caller" span to drop calls
2016-12-06 16:16:22 +01:00
Oliver Schneider
c303ac001d
rustup
2016-12-06 15:41:28 +01:00
Scott Olson
b96202b3cd
Update for changes in rustc.
2016-12-02 19:44:59 -08:00
Scott Olson
244ae8eac7
Introduce try_read_value to avoid allocations.
...
Attempt reading a primitive value out of any source lvalue and write
that into the destination without making an allocation if possible.
2016-11-28 20:22:21 -08:00
Scott Olson
e4910e437b
Remove useless map.
2016-11-27 19:08:06 -08:00
Scott Olson
71cc1226c7
s/init/zero/
2016-11-27 13:46:34 -08:00
Scott Olson
fd02285788
Remove unnecessary transmute_primval function.
2016-11-26 23:42:17 -08:00
Scott Olson
0929201d60
Remove useless binding.
2016-11-26 23:37:40 -08:00
Scott Olson
f7cd07a615
Produce PrimValKinds for small, simple layout ADTs.
2016-11-26 23:21:25 -08:00
Scott Olson
49f784a3e4
Remove PrimValKind field from PrimVal.
2016-11-26 23:21:20 -08:00
Scott Olson
16f3b590e4
Remove unnecessary qualification.
2016-11-26 19:18:39 -08:00
Scott Olson
78b29b360a
Dump return value when returning.
2016-11-26 19:13:22 -08:00
Scott Olson
020f0b782b
Refactor passing of resource limits.
2016-11-26 17:54:19 -08:00