Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows #1485

Merged
merged 5 commits into from
Jul 25, 2020

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Jul 23, 2020

This is the Miri side of rust-lang/rust#74681.

Fixes #1302
Fixes #1318

@oli-obk
Copy link
Contributor

oli-obk commented Jul 23, 2020

Not sure where the best place to document these is, but we should definitely document them. I think somewhere near the stacked borrows debugging command line flags.

@RalfJung
Copy link
Member Author

I just started writing a README section :)

@RalfJung
Copy link
Member Author

@oli-obk what about this?

Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Jul 24, 2020
 Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows

This PR realizes an idea that @oli-obk has been suggesting for a while: to use Miri-specific `extern` functions to provide some extra capabilities to the program. Initially, we have two of these methods, which libstd itself needs:
* `miri_start_panic`, which replaces the intrinsic of the same name (mostly for consistency, to avoid having multiple mechanisms for Miri-specific functionality).
* `miri_static_root`, which adds an allocation to a list of static "roots" that Miri considers as not having leaked (including all memory reachable through them). This is needed for rust-lang/miri#1302.

We use `extern` functions instead of intrinsics for this so that user code can more easily call these Miri hoolks -- e.g. `miri_static_root` should be useful for rust-lang/miri#1318.

The Miri side of this is at rust-lang/miri#1485.

r? @oli-obk
bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 24, 2020
 Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows

This PR realizes an idea that @oli-obk has been suggesting for a while: to use Miri-specific `extern` functions to provide some extra capabilities to the program. Initially, we have two of these methods, which libstd itself needs:
* `miri_start_panic`, which replaces the intrinsic of the same name (mostly for consistency, to avoid having multiple mechanisms for Miri-specific functionality).
* `miri_static_root`, which adds an allocation to a list of static "roots" that Miri considers as not having leaked (including all memory reachable through them). This is needed for rust-lang/miri#1302.

We use `extern` functions instead of intrinsics for this so that user code can more easily call these Miri hoolks -- e.g. `miri_static_root` should be useful for rust-lang/miri#1318.

The Miri side of this is at rust-lang/miri#1485.

r? @oli-obk
@RalfJung
Copy link
Member Author

@bors r=oli-obk

@bors
Copy link
Contributor

bors commented Jul 25, 2020

📌 Commit c641fbd has been approved by oli-obk

@bors
Copy link
Contributor

bors commented Jul 25, 2020

⌛ Testing commit c641fbd with merge 91b58c9...

@bors
Copy link
Contributor

bors commented Jul 25, 2020

☀️ Test successful - checks-travis, status-appveyor
Approved by: oli-obk
Pushing 91b58c9 to master...

@bors bors merged commit 91b58c9 into rust-lang:master Jul 25, 2020
@RalfJung RalfJung deleted the miri-extern-fn branch July 28, 2020 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Leak checker misses pointers cast to integer Enable leak checker on Windows
3 participants