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

Mutability translation with mutable cells #164

Closed
wants to merge 54 commits into from
Closed

Conversation

yannbolliger
Copy link
Collaborator

@yannbolliger yannbolliger commented Jun 25, 2021

This PR introduces the Mutability Translation presented in my thesis.

Closes #157. Closes #140. Closes #99.

Summary
The PR contains roughly these features/changes and all the refactoring/fixing that goes along:

  • Mutability is modelled with a mutable cell case class for all ADT fields and local variables:
    case class MutCell[@mutable T](var t: T)
  • var and mutable flags are thus removed from the user-interface.
  • Mutable references are extracted and verified by means of the mutable cells.

This PR supersedes the two former mutability-related PRs #158 #159.
It contains the grand majority of their changes though.

Two tests currently fail in the test suite, trait_bounds::verification and type_class::verification, due to the solver timing out, documented in this Stainless issue: epfl-lara/stainless#1093.

@yannbolliger yannbolliger requested a review from romac June 25, 2021 13:26
@yannbolliger yannbolliger force-pushed the mutable-cells branch 2 times, most recently from 9093815 to efcdb65 Compare June 25, 2021 15:23
@yannbolliger yannbolliger requested a review from gsps July 16, 2021 06:55
@yannbolliger yannbolliger force-pushed the mutable-cells branch 4 times, most recently from 67e4839 to cc8d0d4 Compare July 22, 2021 12:32
@yannbolliger
Copy link
Collaborator Author

Closing this as an archival action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mutable fields with generics Mutable references Infer if fields are mutated
1 participant