-
-
Notifications
You must be signed in to change notification settings - Fork 813
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
[WIP] EOF support #3457
base: master
Are you sure you want to change the base?
[WIP] EOF support #3457
Conversation
…resent the new functionality environment
* store pc for all instructions * calculate offsets for RJUMP and emit bytecode
* add JUMPF and CALLF output * throw exception when unknown opcode encountered to avoid the cryptic "KeyError" exception
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3457 +/- ##
==========================================
- Coverage 91.37% 86.96% -4.41%
==========================================
Files 109 86 -23
Lines 15606 11151 -4455
Branches 3432 2554 -878
==========================================
- Hits 14260 9698 -4562
- Misses 916 1036 +120
+ Partials 430 417 -13 ☔ View full report in Codecov by Sentry. |
i think the failures are coming from default evm version being eof, but we already can't test cancun since py-evm does not support yet (cf. notes in #3373) |
# if "source_map_runtime" in data: | ||
# evm["sourceMap"] = data["source_map_runtime"] |
Check notice
Code scanning / CodeQL
Commented-out code Note
function_sizes.append(symbol_map.get("_sym_runtime_begin2", pc) - last_offset) | ||
|
||
max_stack_heights = [] | ||
offset = len(header) |
Check failure
Code scanning / CodeQL
Potentially uninitialized local variable Error
!!!This is WIP!!!
!!! After rebasing to vyperlang/vyper master, tests fail, needs some fixes !!!
What I did
RJUMP
,RJUMPI
,JUMPF
,CALLF
,RETF
JUMPF
PC
CALLF
, andRETF
operate on the new execution stack automaticallyCALLF
What is next
label
,goto
,exit_to
and possibly add acall
andreturn
node to make it for cleaner, more understandable code.