-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows #74681
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
Conversation
I like how this change can be done without any boostrapping problems. r=me with the nit |
@bors r=oli-obk |
📌 Commit e715b0efabf0a0eae8bae52260a886f2a169aea9 has been approved by |
Fixed a typo. |
📌 Commit 45abbe01a2162da3998889426bba7a00af0a6e24 has been approved by |
@bors r=oli-obk |
📌 Commit 67b4f3b has been approved by |
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
☀️ Test successful - checks-actions, checks-azure |
Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows This is the Miri side of rust-lang/rust#74681. Fixes #1302 Fixes #1318
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 Enable leak checker on Windows 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