-
Notifications
You must be signed in to change notification settings - Fork 63
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
Cryptol support for crux-mir-comp #1313
Merged
Merged
Changes from 30 commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
0061ee7
crux-mir-comp: use HasModel instead of Model personality
spernsteiner 7bf9d60
[wip] initial cryptol::load implementation
spernsteiner a73e14e
crux-mir-comp: refactor: move termToExpr etc from Override to Convert
spernsteiner d0248b8
add support for cryptol functions returning tuples
spernsteiner 7000cd3
refactor conversion of RegValue arguments to SAW.Term
spernsteiner fef9ac3
add support for tuples as arguments
spernsteiner 19b2079
support array arguments
spernsteiner 697bfdc
add support for array arguments
spernsteiner da32a42
handle [bool; N] return values, which may appear as bitvectors
spernsteiner bd21a28
check cryptol and rust function signatures in cryptol::load
spernsteiner 9036372
update tests for libcrucible line number changes
spernsteiner 953aa7c
move orOverride helper into Mir.Language module
spernsteiner 0e01a72
crux-mir-comp: add cryptol test cases
spernsteiner bdf4fac
use new cryptol! macro in cryptol/basic_add test
spernsteiner debebf9
bump crucible for rotate_left/right intrinsics
spernsteiner 4bc25de
new cryptol! macro implementation with no global variables
spernsteiner bf529c9
bump crucible for new crux-mir intrinsics
spernsteiner 83a9329
crux-mir refactor: add Collection argument to tyToRepr
spernsteiner 9045db5
repr(transparent) support
spernsteiner c18d4f1
test updates for cryptol path->module change
spernsteiner a78568c
avoid unnecessary w4->sawcore conversion
spernsteiner 988f23b
refactor: move exprToTerm from Mir.Cryptol to Mir.Compositional.Conve…
spernsteiner e972fb5
crux-mir-comp: avoid unnecessary recursive W4.Expr->SAW.Term conversion
spernsteiner d692362
crux-mir-comp: convert postcondition equalities into substitutions fo…
spernsteiner b15d9e6
crux-mir-comp: handle slice arguments in MethodSpecs
spernsteiner eaaf151
add cryptol::munge override
spernsteiner ebab5d7
crux-mir-cryptol: adjust slice repr to avoid clobbering &[_]
spernsteiner 8218d94
tiny cleanup
spernsteiner 6866f25
bump crucible for crucible::dump_what4 debug function
spernsteiner b620b40
fix warnings
spernsteiner 6d023f8
update crucible submodule
spernsteiner 701edb5
update Test.hs for crux changes
spernsteiner 05741e5
update golden test files for crux output format changes
spernsteiner eee2cc5
Merge remote-tracking branch 'origin/master' into sp/crux-mir-cryptol
spernsteiner c035eab
update for TypedTerm ttSchema changes
spernsteiner 717bb1a
Merge remote-tracking branch 'origin/master' into sp/crux-mir-cryptol
spernsteiner File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,11 @@ | ||
{-# LANGUAGE GADTs #-} | ||
{-# LANGUAGE RankNTypes #-} | ||
module Main(main) where | ||
|
||
import qualified Mir.Language as Mir | ||
import qualified Mir.Compositional as Mir | ||
import Mir.Compositional (compositionalOverrides) | ||
import Mir.Cryptol (cryptolOverrides) | ||
|
||
main :: IO () | ||
main = Mir.mainWithExtraOverrides Mir.compositionalOverrides | ||
main = Mir.mainWithExtraOverrides $ | ||
compositionalOverrides `Mir.orOverride` cryptolOverrides |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's perhaps interesting to note that the first version of SAWScript separated equality assertions from other assertions in the MethodSpec datatype (by having different user-visible primitives for stating them) for performance reasons. I wonder whether we should return to that.