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

RFC: Loop Contracts #3167

Merged
merged 9 commits into from
Sep 4, 2024
Merged

Conversation

qinheping
Copy link
Contributor

RFC for loop contracts in Kani.

Rendered version available here.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@qinheping qinheping requested a review from a team as a code owner April 30, 2024 06:14
@feliperodri feliperodri added the T-RFC Label RFC PRs and Issues label Jun 11, 2024
@tautschnig tautschnig added the Z-Contracts Issue related to code contracts label Aug 1, 2024
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
@qinheping
Copy link
Contributor Author

@celinval
I remove implementation detail as it was too much for RFC; and add more open questions.

Copy link
Contributor

@celinval celinval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @qinheping! It's looking pretty good.

rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Outdated Show resolved Hide resolved
Copy link
Contributor

@feliperodri feliperodri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for addressing all the comments. LGTM!

Copy link
Contributor

@celinval celinval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only have one last question about feature opt-in / opt-out. Like contracts, I am not convinced that a user always wants the loop to be abstracted.

rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
Copy link
Contributor Author

@qinheping qinheping left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@celinval Thank you!

rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
rfc/src/rfcs/0012-loop-contracts.md Show resolved Hide resolved
Copy link
Contributor

@celinval celinval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @qinheping

@qinheping qinheping added this pull request to the merge queue Sep 4, 2024
Merged via the queue into model-checking:main with commit 701f6fb Sep 4, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-RFC Label RFC PRs and Issues Z-Contracts Issue related to code contracts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants