-
Notifications
You must be signed in to change notification settings - Fork 143
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
Typed exceptions #167
Typed exceptions #167
Conversation
92d476c
to
b9ac563
Compare
rule ETC:EthereumCommand ETS:EthereumSimulation => ETC ~> ETS | ||
rule <k> .EthereumSimulation => . ... </k> | ||
rule <k> ETC ETS:EthereumSimulation => ETC ~> ETS ... </k> | ||
rule <k> ETC1:EthereumCommand ~> ETC2 ETS:EthereumSimulation => ETC1 ~> ETC2 ~> ETS ... </k> | ||
|
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.
@dwightguth I'm particularly interested in whether you have a better solution to this problem. I need __
to simplify out in the second position here as well.
More changes coming, will let you know when ready to review. |
b9ac563
to
542dc88
Compare
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.
I think it would be better if all exceptions had metadata instead of trying to duplicate every rule where we match on an exception, given that this information isn't /really/ part of the language. Also, I think you're missing some.
@dwightguth I'll remove the non-metadata exceptions. I was thinking a similar thing. |
04ebd6f
to
2bf0a7b
Compare
@daejunpark can you look at this PR and make a branch of the proofs repo which uses the typed exceptions instead? |
2bf0a7b
to
745e71c
Compare
Jenkins: test this please |
@daejunpark as mentioned in runtimeverification/verified-smart-contracts#10 Can you provide insight into why the Vyper proofs are passing? My impression was that Vyper does not generate If it's not the case, please clarify. Also inspect the new proofs and approve this PR only if everything looks good on that repo. |
Have updated to remove non-typed exceptions.
Jenkins: test this please |
0fd630b
to
4390f0f
Compare
@pepyakin I've removed the |
4390f0f
to
3944cb6
Compare
3944cb6
to
22c7020
Compare
@dwightguth please re-review. |
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.
I only see one minor issue, please fix it before you merge, but it otherwise looks good so I'm going to approve.
evm.md
Outdated
@@ -408,13 +412,13 @@ The `#next` operator executes a single step by: | |||
</k> | |||
``` | |||
|
|||
- `#invalid?` checks if it's the designated invalid opcode. | |||
- `#invalid?` checks if it's the designated invalid opcode, and throws `#exception ASSERT_FAILURE` if it is. |
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.
seems to be an out of date comment
22c7020
to
2f9f091
Compare
…throughout semantics
- VMTESTS run on DEFAULT schedule - output of interactive tests is updated
Closing until I have a chance to fix #177 |
This attaches metadata to the thrown exceptions so that it's easier to write bug-checking tools.