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

Compositional crux-mir support #659

Merged
merged 19 commits into from
Apr 21, 2021
Merged

Compositional crux-mir support #659

merged 19 commits into from
Apr 21, 2021

Conversation

spernsteiner
Copy link
Contributor

This is the crucible/crux-mir component of GaloisInc/saw-script#1117. This branch adds various infrastructure needed to support the main compositional crux-mir implementation in the saw-script repo.

Specifically, this branch adds new Crucible intrinsic types MethodSpec and MethodSpecBuilder, and adds functions for manipulating them to the crucible Rust library. However, the intrinsics are defined as existential types, using typeclasses to provide the operations for each type, and no implementations of those typeclasses or overrides for the Rust API functions are included in crux-mir. Instead, saw-script/crux-mir-comp defines concrete implementation types and extends crux-mir with the necessary overrides, so that these implementations can use saw-script's MethodSpec and related SAW types.

This branch also adds some additional functions for manipulating MirReferences, which are used in crux-mir-comp's handling of memory.

Copy link
Contributor

@atomb atomb left a comment

Choose a reason for hiding this comment

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

Looks great. I added one comment about eventually generalizing some of this stuff, but that's not something we need to do now.



--------------------------------------------------------------------------------
-- ** MethodSpec and MethodSpecBuilder
Copy link
Contributor

Choose a reason for hiding this comment

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

My hope is that someday we can eventually, generalize the stuff from here down, move it to the crux package, and use it for other languages, too.

@spernsteiner spernsteiner merged commit 97be912 into master Apr 21, 2021
@spernsteiner spernsteiner deleted the sp/crux-mir-comp branch April 21, 2021 20:11
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.

2 participants