Oliver Schneider
893f16389e
run drop on array elements
2016-11-04 17:34:33 +01:00
Oliver Schneider
5ef7924aa9
call drop for all elements of an owned slice
2016-11-04 16:51:43 +01:00
Oliver Schneider
c4c8764f53
generate a drop method pointer in the vtable and process it
2016-11-04 16:38:04 +01:00
Oliver Schneider
bd6e52d831
fix the drop_in_place
intrinsic for fat pointers
2016-11-04 16:37:12 +01:00
Oliver Schneider
0420c27c8e
fix drop ordering and forward fat pointer extras to fields
...
this doesn't yet use the fat pointer extras
2016-11-04 15:55:05 +01:00
Oliver Schneider
859b7049c8
add method to ensure that a Value::ByRef is now a Value::ByVal*
2016-11-04 15:49:51 +01:00
Oliver Schneider
8003c570d8
don't panic on pointer to value comparison in primvals
2016-11-04 15:49:14 +01:00
Oliver Schneider
b12e7224af
move method to function so it can be used in map iterators without borrowing self
2016-11-04 15:48:45 +01:00
Oliver Schneider
73d7f1d41b
implement drop for NonZero optimized enums
2016-11-04 09:34:54 +01:00
Oliver Schneider
ff95efc525
Revert "Fix tests broken by std::vec::SetLenOnDrop."
...
This reverts commit 366c793306
.
2016-11-04 09:15:59 +01:00
Oliver Schneider
bd25230882
nit: move if let into match
2016-11-04 09:15:31 +01:00
Oliver Schneider
2a35b3e322
call user defined drop impls
2016-11-03 17:32:37 +01:00
Oliver Schneider
1e0d5b817d
implement a bunch of intrinsics
2016-11-03 17:32:06 +01:00
Oliver Schneider
e406099348
sanity check that boxes of zsts don't deallocate the zst allocation
2016-11-03 16:01:14 +01:00
Oliver Schneider
50fd0765b5
call drop "glue" for enums
2016-11-03 15:55:09 +01:00
Oliver Schneider
b90cc77bac
basic struct and tuple drop "glue"
2016-11-03 15:22:39 +01:00
Oliver Schneider
feefb66ebd
recursively drop Box<Box<...Box<T>...>>
2016-11-03 13:30:54 +01:00
Oliver Schneider
a1acd9405d
don't allocate on drop
calls
2016-11-03 13:27:35 +01:00
Oliver Schneider
a9b984d21e
don't always allocate for the uninit
intrinsic
2016-11-03 13:13:47 +01:00
Oliver Schneider
92f6874ead
enable code sharing between global and local access
2016-11-03 12:52:13 +01:00
Oliver Schneider
bf73e7581e
don't always allocate during init
intrinsic processing
2016-11-03 12:31:04 +01:00
Oliver Schneider
b3bf730513
don't panic on invalid primval types, report an error instead
2016-11-03 12:30:41 +01:00
Oliver Schneider
19c44dab05
rustup to rustc 1.14.0-nightly ( 7c69b0d5a
2016-11-01)
2016-11-03 10:38:08 +01:00
Scott Olson
c50c6e52da
Merge pull request #72 from bluss/rustup
...
rustup to rustc 1.14.0-nightly (3f4408347
2016-10-27)
2016-11-01 15:59:24 -07:00
bluss
277a1ee869
rustup to rustc 1.14.0-nightly ( 3f4408347
2016-10-27)
2016-11-01 23:26:04 +01:00
Scott Olson
5f1120299c
Merge pull request #70 from plietar/patch-1
...
README.md: Fix logging environment variable name
2016-10-31 17:02:06 -07:00
Paul Lietar
9ffc43e639
README.md: Fix logging environment variable name
2016-10-31 16:37:54 +00:00
Scott Olson
c148d887e3
Merge pull request #69 from oli-obk/master
...
don't force allocations for most casts
2016-10-21 11:06:19 -06:00
Oliver Schneider
073f91654c
don't force allocate for most Unsize casts
...
only Arc<T> -> Arc<Trait> unsize casts are left
2016-10-21 15:18:12 +02:00
Oliver Schneider
9af5a0a420
don't force allocate for UnsafeFnPointer casts
2016-10-21 14:55:49 +02:00
Oliver Schneider
eb08a2e646
don't force allocate for ReifyFnPointer casts
2016-10-21 14:54:37 +02:00
Oliver Schneider
512f344a3b
don't force allocate for Misc casts
2016-10-21 13:56:38 +02:00
Scott Olson
7f3cb7fdb8
Merge pull request #68 from oli-obk/master
...
priroda requirements + static impl
2016-10-21 04:08:20 -06:00
Oliver Schneider
edc6b93b85
adjust some comments referencing locals
2016-10-21 12:03:34 +02:00
Oliver Schneider
9d0b903d9d
remove GlobalKind
2016-10-21 11:54:38 +02:00
Oliver Schneider
e82e6132ec
preemptively change some assertions into errors
2016-10-21 11:51:24 +02:00
Oliver Schneider
2f81729e76
rename more [Ss]tatic* to [Gg]lobal*
2016-10-21 11:48:56 +02:00
Oliver Schneider
d3b3c56b07
rename statics/Constant/ConstantId/ConstantKind to [gG]lobal*
2016-10-21 11:39:39 +02:00
Oliver Schneider
f6bbea0f08
choose better function and argument names
2016-10-21 11:24:10 +02:00
Oliver Schneider
9e9586da95
constant ids are Copy
now
2016-10-21 11:21:52 +02:00
Scott Olson
e7bcf35f8a
Simplify PrimValKind and remove a horrible hack.
...
This takes the `AllocId` out of PrimValKind, replacing it with a
`relocation` field on `PrimVal`, which is closer to an earlier design
for `PrimVal` I discussed with @eddyb.
This commit prepares the code for removing the `PrimValKind` from
`PrimVal` and making them more pure bitbags. The only code dealing with
`PrimValKind` will be code making decisions like "what kind of operation
do I need to do on these bits", like operators and casting. Transmutes
of `PrimVal`s will become true no-ops, not even adjusting a `kind`
field.
This commit also removes my horrible `value_to_primval` hack that made
an allocation for every `ByVal` passed in, so it could use `read_value`
to get a `PrimVal` with the right kind. Now I just compute the
`PrimValKind` from the `Ty` and re-tag the `PrimVal`.
The code got slightly messier in some areas here, but I think a _lot_ of
code will simplify in obvious ways once I remove the `kind` field from
`PrimVal`.
Gosh, if my commit messages aren't turning into essays these days.
2016-10-21 03:17:53 -06:00
Oliver Schneider
f81c4ac91b
more priroda requirements
2016-10-21 10:45:01 +02:00
Oliver Schneider
b8842b25e8
yield a miri error instead of panicking on uninitialized statics
2016-10-21 10:44:48 +02:00
Oliver Schneider
a75e7f7686
don't allocate statics unless a reference to them is created
2016-10-21 10:32:27 +02:00
Oliver Schneider
bef879083e
split eval_and_read_lvalue into two functions
2016-10-21 10:31:13 +02:00
Oliver Schneider
24be49f7dd
add a 'tcx lifetime to Lvalue in preparation for statics
2016-10-21 10:29:56 +02:00
Oliver Schneider
ed679c3d23
make some pieces public that are required by priroda
2016-10-20 13:10:22 +02:00
Scott Olson
330be7766f
Represent PrimVals as "bitbags".
...
Now instead of holding a native type based on the tag, all PrimVals
store a u64 (the `bits`), along with a `kind` corresponding to the
variant as it would be in the old PrimVal representation.
This commit makes no major optimizations and attempts to not change any
behaviour. There will be commits to follow that make use of this
representation to eliminate unnecessary allocation hacks like in
`value_to_primval`.
A number of places could be even more cleaned up after this commit,
particularly in `cast.rs`.
2016-10-20 04:42:19 -06:00
Scott Olson
d6b4e1aba6
Expand on "uninit" FIXME.
2016-10-19 20:27:35 -06:00
Scott Olson
e807f0c405
Fix local dump check.
2016-10-18 23:24:30 -06:00