Skip to content

Conversation

@RyanGlScott
Copy link
Contributor

This patch:

This brings in changes from Cryptol's constraint guards and FFI patches, which
require some light code changes on SAW's end. These changes are mostly taken
from #1751.

Co-authored-by: Iavor Diatchki <iavor.diatchki@gmail.com>
@RyanGlScott RyanGlScott requested review from chameco and yav January 30, 2023 22:41
@RyanGlScott
Copy link
Contributor Author

I'm including @yav as a reviewer, since I had to selectively cherry-pick some changes from #1751 in order to bump the cryptol submodule. I think I did this the right way, but please double-check me.

@RyanGlScott
Copy link
Contributor Author

When the CI invokes mypy, it fails with a rather baffling error that I cannot reproduce locally:

saw_client/connection.py:55: error: Assignment expressions are only supported in Python 3.8 and greater  [syntax]

The thing that baffles me is that right before this step, I specifically install Python 3.11, so I have no idea why mypy thinks it is using Python 3.8...

@kquick
Copy link
Member

kquick commented Jan 31, 2023

This patch:

* Bumps the `mypy` lower bounds to avoid incurring a dependency on `typed-ast`,
  which is being EOL'd soon. See python/typed_ast#179.
* Bumps the `argo` submodule to bring in the changes from
  GaloisInc/argo#195, which makes corresponding changes on the `argo` side.
* Bumps the `cryptol` submodule to bring in the changes from
  GaloisInc/cryptol#1493, which makes the corresponding changes on the `cryptol`
  side.
@RyanGlScott
Copy link
Contributor Author

You are exactly right, @kquick. I've pushed a new version of the patch which changes mypy.ini accordingly.

Somewhat distressingly, the mypy.ini files for both argo-client and cryptol make this same mistake, but they were not caught by CI. I suppose we should update those as well...

Copy link
Member

@yav yav left a comment

Choose a reason for hiding this comment

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

I think not handling DForeign and DProp in SAW for the moment is OK.

I just wonder if error is the right way to report these as I am not sure what's SAW's error reporting mechanism. We should make sure that if people use these features in a Cryptol spec and then try to use in SAW they get a normal error, rather than crashing.

@RyanGlScott
Copy link
Contributor Author

Hah, I simply copied the error calls over from #1751 :)

Looking at the code, the existing convention appears to be that error is used for user-reachable code, e.g.,

-- functions
TV.TVFun _aty _bty ->
pure $ V.VFun mempty (error "exportValue: TODO functions")

And panic is used for code that is not intended to be reachable, e.g.,

| otherwise = panic "importFirstOrderValue" ["Unexpected field name while importing finite value:", show nm]

I could be wrong in this assessment, so please speak up if I am wrong here.

@chameco
Copy link
Contributor

chameco commented Feb 1, 2023

That error-handling convention is what I'd expect (at least for existing code that isn't in MonadThrow).

@RyanGlScott RyanGlScott added the PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run label Feb 1, 2023
@mergify mergify bot merged commit ea968c9 into master Feb 1, 2023
@mergify mergify bot deleted the cryptol-T1491 branch February 1, 2023 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants