Ralf Jung
284067cc15
rustup
2020-03-23 23:48:24 +01:00
Ralf Jung
6e302b830a
link to some websites for UB explanations
2020-03-22 23:32:19 +01:00
Ralf Jung
92a28f8d8f
HashMap -> FxHashMap
2020-03-02 22:36:15 +01:00
Ralf Jung
8ef303cd32
port from find_foreign_static to canonical_alloc_id
2020-03-02 09:03:08 +01:00
Ralf Jung
cc1ebd0af6
some formatting
2020-03-01 10:29:05 +01:00
Ralf Jung
274ae0438f
add an option to disable Stacked Borrows
2020-02-24 16:22:02 +01:00
Oliver Scherer
bfc7a7effd
Remove trailing newline
2020-01-09 12:38:58 +01:00
Oliver Scherer
c69ebaaed2
Use names that actually represent what's going on
2020-01-08 13:43:23 +01:00
Oliver Scherer
90a8f2f6a3
Make the non-halting diagnostic scheme independent of InterpError
2020-01-08 13:02:55 +01:00
Oliver Scherer
c0a7fd5602
Remove debugging hint until we can actuall use note:
2020-01-08 12:50:15 +01:00
Oliver Scherer
aec175e0de
Process delayed errors on every step
2020-01-08 12:49:46 +01:00
Oliver Scherer
bb58e42da2
Tell the user about stacked borrow debugging flags
2020-01-08 12:37:25 +01:00
Oliver Scherer
96d6efdf32
Emit errors without halting interpretation
2020-01-08 12:37:25 +01:00
Yuki Okushi
86ee705cd5
Rustup
2020-01-07 05:13:18 +09:00
Oliver Scherer
4aef81eb85
Remove to_ptr
uses
2019-12-27 14:26:05 +01:00
Oliver Scherer
bac261573f
Rustup to rustc 1.42.0-nightly ( 005cf38f7
2019-12-22)
2019-12-23 23:02:36 +01:00
Oliver Scherer
7ead530841
Rustfmt all the things
2019-12-23 12:56:23 +01:00
Oliver Scherer
817f4159a2
Use the machine stop error instead of abusing other error kinds
2019-12-09 14:29:28 +01:00
Oliver Scherer
eab2538317
Rename track-id to track-pointer-tag
2019-12-08 12:20:51 +01:00
Oliver Scherer
67417945d4
Detect all variants of stack removals
2019-12-08 12:20:51 +01:00
Oliver Scherer
d363a47fcb
Add a scheme to find the place where an id was destroyed
2019-12-08 12:20:51 +01:00
Ralf Jung
d43e394c46
fix init_allocation_extra
2019-12-02 16:04:31 +01:00
Ralf Jung
1b3434c67d
adjust for init_allocation_extra
2019-12-02 16:04:31 +01:00
Aaron Hill
08d3fbc76b
Support unwinding after a panic
...
Fixes #658
This commit adds support for unwinding after a panic. It requires a
companion rustc PR to be merged, in order for the necessary hooks to
work properly.
Currently implemented:
* Selecting between unwind/abort mode based on the rustc Session
* Properly popping off stack frames, unwinding back the caller
* Running 'unwind' blocks in Mir terminators
Not yet implemented:
* 'Abort' terminators
This PR was getting fairly large, so I decided to open it for review without
implementing 'Abort' terminator support. This could either be added on
to this PR, or merged separately.
2019-11-17 08:34:25 -05:00
Ralf Jung
64244e9a18
do full deref-check before reborrowing
2019-11-14 10:24:02 +01:00
Ralf Jung
2c55a508e9
rustup
2019-11-11 21:25:57 +01:00
Ralf Jung
37b1190def
rustup
2019-11-08 22:07:52 +01:00
Ralf Jung
90634121b3
fix typo
2019-10-30 15:05:44 +01:00
Ralf Jung
88c88530ec
use expect_none and unwrap_none where it makes sense
2019-10-20 12:20:48 +02:00
Yuki Okushi
a353e90eed
Use memory field instead of memory()
2019-10-18 11:11:50 +09:00
Oliver Scherer
9fdb347ad7
Rustup to sty
-> kind
changes
2019-09-26 11:41:11 +02:00
Ralf Jung
d26917a9d6
fix for latest rustc
2019-08-05 10:45:48 +02:00
Ralf Jung
f65e7cd2d1
adjust for rustc changes
2019-08-03 20:31:33 +02:00
Ralf Jung
8071034b93
fix for error refactoring
2019-08-03 10:25:55 +02:00
Ralf Jung
30fb027f33
comment
2019-08-02 08:38:22 +02:00
Ralf Jung
c4c2716f4e
make reborrow shallow, and fix tests for that
2019-08-02 08:09:22 +02:00
Lzu Tao
e6a677fe63
build: Warn if not use 2018 idioms
2019-07-24 21:24:26 +07:00
Ralf Jung
70a5bb7dbb
force pointers before reborrowing; fixes cargo miri test suite
2019-07-10 14:36:56 +02:00
Ralf Jung
b324cbf282
Merge remote-tracking branch 'origin/master' into rustup
2019-07-06 09:29:17 +02:00
Ralf Jung
eb4128fb42
don't call Stacked Borrows hooks at all when validation is disabled
2019-07-03 10:47:28 +02:00
Ralf Jung
aa5a9bc152
some module comments
2019-06-29 14:15:05 +02:00
Christian Poveda
792d665a1f
Fix merge conflicts
2019-06-25 00:57:33 -05:00
Christian Poveda
84cfbb01b7
Reorganize MemoryExtra and AllocExtra structures
2019-06-24 17:18:25 -05:00
Ralf Jung
4dc188a60e
adjust for refactored memory pointer checks
2019-06-23 20:19:26 +02:00
Christian Poveda
fd3a291db4
Implement intptrcast methods
2019-06-21 14:55:37 -05:00
Ralf Jung
ad0c941547
rustup for lifetime refactorings
2019-06-13 09:18:03 +02:00
Ralf Jung
d6bcfc58e3
rustup for EvalResult rename
2019-06-08 22:14:47 +02:00
Ralf Jung
03b74c12c8
Merge branch 'master' into debug
2019-06-03 11:02:17 +02:00
Ralf Jung
0c704151f7
use new rustc infrastructure to tag the base pointer of static allocations
2019-06-02 22:16:02 +02:00
Ralf Jung
96444c11ee
remove too expensive debug assertion
2019-05-31 16:34:22 +02:00
Ralf Jung
8b219a1329
fix for latest rustc
2019-05-27 18:50:32 +02:00
Ralf Jung
21fb14dba1
avoid printing the tag twice
2019-05-24 13:09:29 +02:00
Ralf Jung
5569fffe7d
avoid having both Debug and Display for a type and using the wrong one
2019-05-24 10:09:23 +02:00
Ralf Jung
1d92791965
use prettier printing
2019-05-23 15:54:50 +02:00
Ralf Jung
3e33e54b5b
hopefully improve error message a bit
2019-05-23 11:03:08 +02:00
Ralf Jung
5c54a58c06
typo
2019-05-19 14:04:59 +02:00
Oliver Scherer
3fde45233b
Prefer drain
over manual implementation of drain
2019-05-19 12:40:59 +02:00
Ralf Jung
6b4164e0df
nits
2019-05-17 19:42:35 +02:00
Ralf Jung
9c161b80d0
reading does not remove Unique, it just invalidates them
2019-05-17 15:29:02 +02:00
Ralf Jung
4b9e1544c2
give up on two-phase borrows
2019-05-17 15:02:31 +02:00
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