-
-
Notifications
You must be signed in to change notification settings - Fork 806
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
Monday 7th Janurary 2019 #1179
Comments
AST output:
|
Also, formalize the grammar (maybe in K?) |
Great, you mean updating this work? |
Yes! +10 Brownie points if we somehow pull that as a submodule and have a nightly CI test against it |
Cool. Through FVyper project I thought formal verification of Vyper compiler is as important as verifying Vyper contracts so I verified This verification is working in CircleCI, with other verification including ERC20. AFAIK https://github.com/kframework/vyper-semantics is another compiler based on K. |
Just a note, there is a Python semantics in K. |
I would say if you want to do the work, the K setup gives you a template for how the larger build can work. One big note that came out of the meeting today is that we need to get better at documenting and testing against our grammar. A good side effect is that can do formal verification of the compiler like this. Another good side effect is it makes refactoring WAY easier if we have test cases to run against our grammar (and we would like to do that). We found a LOT of very deep bugs from having this exercise performed by the Runtime Verification folks (creators of K) back in the springtime of last year. |
An ultimate goal that was being planned for the work with K is to have a mode that could do a triangular verification of the sourcecode and the bytecode of a program, proving semantic equivalence of a program in K after it has been compiled (since there is formal semantics for EVM execution). |
hey @fubuloubu -- i am helping Slither add support for Vyper, and i am proficient with compilers and ASTs. I understand what needs to be done here. Do you think i could help? |
@mihairaulea the biggest problem with getting this feature out at the moment is that we use the Unless you are keen to do this conversion as well, o'course :) |
@mihairaulea first step in my book is to define the grammar in an executable format (like K) that we can refactor our front end against. |
@jacqueswww @fubuloubu would it make sense if we go ahead and create a From my (small) understanding of the vyper codebase, we could follow something similar to https://github.com/ethereum/vyper/blob/c558ce3d5e40ddeb95d583f6037c80ca9e40f94d/vyper/parser/parser.py#L205-L239 Would that make sense and be helpful for your team? |
@montyly yes that would be roughly what needs to be done, additionally a local context gets produced with each |
Start: Monday 7th Janurary 2019, 15:00 UTC (https://time.is/UTC)
Hangouts: https://meet.google.com/czc-kuep-jda
Agenda:
create_with_code_of()
#1176 (@GNSPS)create_with_code_of()
name is somewhat misleading #1177 (@GNSPS)The text was updated successfully, but these errors were encountered: