Ralf Jung
|
1447242bf9
|
refactor to simplify
|
2019-05-15 18:12:58 +02:00 |
|
Ralf Jung
|
f676f2265b
|
make writes act stack-like
|
2019-05-15 18:12:58 +02:00 |
|
Ralf Jung
|
a9e66928d6
|
Update src/stacked_borrows.rs
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
|
2019-05-11 12:07:25 +02:00 |
|
Ralf Jung
|
8530080d03
|
rename per-location part of reborowing to 'granting'
|
2019-05-11 12:06:59 +02:00 |
|
bjorn3
|
17643af868
|
Apply suggestions from code review
Co-Authored-By: RalfJung <post@ralfj.de>
|
2019-04-30 15:31:53 +02:00 |
|
Ralf Jung
|
59985157d3
|
SharedReadOnly reborrows are never weak
|
2019-04-30 13:55:04 +02:00 |
|
Ralf Jung
|
0a5e541272
|
two-phase-borrow comment
|
2019-04-19 08:36:05 +02:00 |
|
Ralf Jung
|
39ecd05c46
|
embrace find_map and some whitespace changes
|
2019-04-17 16:25:38 +02:00 |
|
Oliver Scherer
|
abe8959339
|
Apply suggestions from code review
Co-Authored-By: RalfJung <post@ralfj.de>
|
2019-04-17 16:22:33 +02:00 |
|
Ralf Jung
|
46d5fd8487
|
barriers are dead, long live protectors -- this enables overlapping two-phase borrows!
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
14e701f7d8
|
abstract mapping over all the stacks in some memory range
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
7b7fef1b53
|
let the permission of a new pointer depend on the type only
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
924624f810
|
some failures are impossible
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
a6d377ca0b
|
more comments
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
966d638760
|
make run-pass tests pass. tweak how we remove barriers.
|
2019-04-17 16:02:57 +02:00 |
|
Ralf Jung
|
3f0a2a2941
|
rewrite Stacked Borrows Core. this passes stacked-borrows.rs!
|
2019-04-17 16:02:57 +02:00 |
|
Oliver Scherer
|
9a0eaf6ebd
|
Update to rustc nightly
|
2019-04-03 10:48:11 +02:00 |
|
Alexander Regueiro
|
12d3ecbaff
|
Various cosmetic improvements.
|
2019-02-26 18:37:46 +00:00 |
|
Ralf Jung
|
fd6bd5ba4b
|
rename things away from 'Shr' that are used for much more than just shared references
|
2019-02-12 10:58:18 +01:00 |
|
Ralf Jung
|
3c652032c0
|
be more clear which stack we are talking about
|
2019-02-12 10:51:03 +01:00 |
|
Ralf Jung
|
4f9c14c256
|
deduplicate RangeMap elements in iter_mut
This cuts down execution time of the benchmark in the OP of https://github.com/solson/miri/issues/593 by another 25%, and it cuts max-RSS by 90% (!)
|
2019-01-07 15:10:22 +01:00 |
|
Ralf Jung
|
7e9098ff69
|
treat ref-to-raw cast like a reborrow: do a special kind of retag
|
2018-12-12 11:11:20 +01:00 |
|
Ralf Jung
|
383d215386
|
make some functions private to StackedBorrows
|
2018-12-11 14:18:51 +01:00 |
|
Ralf Jung
|
9de605b32f
|
avoid repeating signatures in EvalContext extension traits
|
2018-12-11 14:16:58 +01:00 |
|
Ralf Jung
|
61f20761d3
|
Merge branch 'master' into stacked-borrows-2-phase
|
2018-12-03 11:11:32 +01:00 |
|
Ralf Jung
|
d11a6766ad
|
use assert
|
2018-12-03 10:26:39 +01:00 |
|
Ralf Jung
|
0e44876a2d
|
fix mutability gap: do not allow shared mutation when creating frozen reference
|
2018-12-03 09:15:18 +01:00 |
|
Ralf Jung
|
b2305da8d0
|
assert some sense
|
2018-12-02 13:30:09 +01:00 |
|
Ralf Jung
|
479eb3bd2b
|
support for basic (non-overlapping) 2-phase borrows
|
2018-12-02 13:30:09 +01:00 |
|
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
|
26fe778c55
|
Typo
Co-Authored-By: RalfJung <post@ralfj.de>
|
2018-11-28 09:58:23 +01:00 |
|
Ralf Jung
|
97e010f5b9
|
barriers prevent deallocation
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
194710e112
|
no barriers for boxes
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
dd94930ee3
|
implement function barriers
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
215ec38624
|
track call IDs
|
2018-11-27 14:25:20 +01:00 |
|
Ralf Jung
|
e9370d2b74
|
adjust for memory_allocated hook, make RangeMap preallocated with a fixed size
|
2018-11-27 14:25:20 +01:00 |
|
Oliver Scherer
|
32e93ed776
|
Update to Memory -> Allocation method move
|
2018-11-23 17:00:31 +01:00 |
|
Ralf Jung
|
694d2490f1
|
slightly more verbose error msg
|
2018-11-21 16:02:38 +01:00 |
|
Ralf Jung
|
41f89beb3f
|
if let
|
2018-11-21 16:01:39 +01:00 |
|
Ralf Jung
|
ec8cc029c1
|
on a deref, check that we are not using a mutable ref with a frozen tag
|
2018-11-21 15:44:47 +01:00 |
|
Ralf Jung
|
6085865975
|
adjust for InboundsCheck parameter of memory bounds check
|
2018-11-20 08:45:25 +01:00 |
|
Ralf Jung
|
19f8a9db7d
|
Boxes can also use the fast path
|
2018-11-17 12:35:58 +01:00 |
|
Ralf Jung
|
c847071355
|
add comment about not using builtin_deref
|
2018-11-17 12:33:44 +01:00 |
|
Ralf Jung
|
880229d4c3
|
escape-on-cast, now ptr-deref does not change the tag at all, ever
|
2018-11-17 10:05:40 +01:00 |
|
Ralf Jung
|
b7dbb5e2a7
|
also consider boxes like unique references
|
2018-11-17 10:05:40 +01:00 |
|
Ralf Jung
|
36b97cd76c
|
Factor out common top-level code from escape-to-raw and retag
|
2018-11-16 11:24:01 +01:00 |
|
Ralf Jung
|
a1f895d6f2
|
retagging: descent into values, type-driven
|
2018-11-16 11:09:33 +01:00 |
|
Ralf Jung
|
60e26af323
|
add a sanity assertion
|
2018-11-16 08:40:00 +01:00 |
|
Ralf Jung
|
cf1746222e
|
we no longer even try pushing to a frozen location
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
f521fd5e0f
|
let's call this a redundant reborrow
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
c234009fdd
|
generalize reborrow-to-raw exception to a general redundancy check
|
2018-11-15 09:35:40 +01:00 |
|