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

refactoring: have the cargo creusot why3 {replay,prove} subcommands be handled by cargo-creusot #1016

Open
Armael opened this issue Jun 3, 2024 · 3 comments
Labels
cargo-creusot Issue is related to the `cargo-creusot` and more generally the porcelain around creusot

Comments

@Armael
Copy link
Contributor

Armael commented Jun 3, 2024

This is a follow-up on #943 which performed this refactoring for the why3 ide subcommand.
The same refactoring also makes sense for the replay and prove subcommands, and would make the code more consistent.

@laurentder
Copy link
Collaborator

We plan to stop using why3 prove and replace it with calls to why3find. Before doing so, we'd like to know if anyone else is using why3 prove. If you do, please let us know here.
For why3 replay, a PR is currently underway to integrate it into cargo-creusot.

@xldenis
Copy link
Collaborator

xldenis commented Jun 7, 2024

I think the only user was @dewert99

@dewert99
Copy link
Collaborator

dewert99 commented Jun 7, 2024

From @xldenis in #943:

Hmm I think cargo-creusot should be the one to run why3 ide, I would like creusot-rustc to have no particular knowledge of the ide or anything. Its responsibility is generating a text file, that's it. The workflow we want to build should be encapsulated by cargo creusot instead.

Do you think that would be possible?

I think running why3 ide in cargo creusot seems reasonable, but I still think running why3 prove (or why3find if it works similarly) in creusot-rustc has some benefits. This allows creusot to reuse rustcs error reporting to report verification errors, including reusing the rustc Spans to avoid dealing with paths and more properly handle verification errors inside macros. If we decide work on counter examples having the translation context may be useful from mapping why3's counter examples to Rust.

@xldenis xldenis added the cargo-creusot Issue is related to the `cargo-creusot` and more generally the porcelain around creusot label Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cargo-creusot Issue is related to the `cargo-creusot` and more generally the porcelain around creusot
Projects
None yet
Development

No branches or pull requests

4 participants