-
Notifications
You must be signed in to change notification settings - Fork 56
Instrument the Rust standard library with safety contracts #126
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
Comments
This issue is intended for status updates only. For general questions or comments, please contact the owner(s) directly. |
Update: So far we have integrated Kani into our repository and we have successfully instrumented and verified 22 functions in the standard library. We have also published 11 challenges. We are currently investigating the integration of other tools, such as Gillian Rust and Verus. |
Key developments: We have welcome the help of students from the CMU Practicum Project. They have started writing functions contracts that include the safety conditions for some unsafe functions in the core library, as well as verifying that safe abstractions respect those pre-conditions and are indeed safe. |
Key developments: A new partnership between the Rust Foundation and AWS will help fund this effort [ref]. The verification challenges in the verify-rust-std fork now have financial rewards for those completing them. |
Key developments: We have written and verified around 220 safety contracts in the verify-rust-std fork. 3 out of 14 challenges have been solved. We have successfully integrated Kani in the repository CI, and we are working on the integration of 2 other verification tools: VeriFast and Goto-transcoder (ESBMC) |
This is a continuing project goal, and the updates below this comment will be for the new period 2025h1 |
We have been able to merge the initial support for contracts in the Rust compiler under the |
We fixed issue rust-lang/rust#136925 that was blocking contract annotations on constant functions, which unblocks the initial PR to add some contract annotations in the standard library (rust-lang/rust#136578). The PR currently triggers a CI failure which we are investigating. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Finish the implementation of the contract attributes proposed in the compiler [MCP-759],
and port safety contracts from the [verify-rust-std] fork to the Rust standard library.
Tasks and status
Experimental Contract attributes
Standard Library Contracts
The text was updated successfully, but these errors were encountered: