-
Notifications
You must be signed in to change notification settings - Fork 36
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
Allow running MIRI #100
Comments
We're going to have a very hard time of this, because Miri doesn't yet support arbitrary FFI calls. I've locally made changes that enable
but given the sheer quantity of FFI calls we have, I don't think we can reasonably expect to mock them all out for Miri. |
It doesn't *successfully* run the tests because Miri doesn't yet support FFI, but these changes enable the following command to actually start: MIRI_NO_STD=1 cargo miri test --target thumbv7em-none-eabihf Part of #100.
Aha, I missed the |
It doesn't *successfully* run the tests because Miri doesn't yet support FFI, but these changes enable the following command to actually start: MIRI_NO_STD=1 cargo miri test --target thumbv7em-none-eabihf Part of #100.
It doesn't *successfully* run the tests because Miri doesn't yet support FFI, but these changes enable the following command to actually start: MIRI_NO_STD=1 cargo miri test --target thumbv7em-none-eabihf Part of #100.
It doesn't *successfully* run the tests because Miri doesn't yet support FFI, but these changes enable the following command to actually start: MIRI_NO_STD=1 cargo miri test --target thumbv7em-none-eabihf Part of #100.
It doesn't *successfully* run the tests because Miri doesn't yet support FFI, but these changes enable the following command to actually start: MIRI_NO_STD=1 cargo miri test --target thumbv7em-none-eabihf Part of #100.
Introduction
While some Flipper abstractions are easy to port to Rust, some have complicated lifecycles and are tricky to be wrapped in safe abstractions. Current work done in #29 is an illustration of this point.
The most common problems appearing are
Aliasing
Arguably, the most complicated and still volatile part of Unsafe Rust especially painful when ahving to work with APIs which originally provide shared access (first of all, callbacks).
This is also especially tricky artound
Box
-based allocations for which there are uniquness guarantees at some point.Concurrency & mmulti-threading
When and where do we have to insert synchronizations for soundness?
This is specifically important for callback-based APIs.
Extern type trickery
See rust-lang/rfcs#1861 for what we may need ideally.
We may want to create formally unsized wrapper-types of form
which would only be usable via pointers (and their derivatives, i.e. references) safely transmutable to/from raw pointers.
In order to facilitate the creation of such abstractions, more tools could be used.
Description
We should try allowing the usage of MIRI in the way similar to how the tests are run currently.
This would give us a chance to catch some errors inm wrapper implementations.
The text was updated successfully, but these errors were encountered: