-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
Side-effect-free Yul interpreter #15464
base: develop
Are you sure you want to change the base?
Side-effect-free Yul interpreter #15464
Conversation
Thank you for your contribution to the Solidity compiler! A team member will follow up shortly. If you haven't read our contributing guidelines and our review checklist before, please do it now, this makes the reviewing process and accepting your contribution smoother. If you have any questions or need our help, feel free to post them in the PR or talk to us directly on the #solidity-dev channel on Matrix. |
This interpreter implementation is following this specification from #15435 , and is intended to use in #15358 .
This PR has followed spec for the implementation.
For testing, the existing
YulInterpreterTest
was not used. This is because this pure interpreter has no memory/storage access, it can not use the same trace as the current interpreter from 'test/libyul/tools'. But to keep it minimal, theYulInterpreterTest
test suit was copied and applied minimal changes. The new test suit now uses the function call trace and the outter most variable values for snapshot comparison. Most of the existing test from theYulInterpreterTest
was ported to the new test suit. New tests were also added to test all return status, as well as to test all evm instructions.