Skip to content

Implement EIP-8024 in legacy codegen#16424

Draft
frangio wants to merge 4 commits intoargotorg:developfrom
frangio:eip-8024
Draft

Implement EIP-8024 in legacy codegen#16424
frangio wants to merge 4 commits intoargotorg:developfrom
frangio:eip-8024

Conversation

@frangio
Copy link
Copy Markdown
Contributor

@frangio frangio commented Jan 27, 2026

Evmone doesn't implement this EIP yet, but I was able to run the semantic test in this PR against a fork. (I don't feel confident in that implementation to push it upstream.)

@github-actions
Copy link
Copy Markdown

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.

@chfast
Copy link
Copy Markdown
Contributor

chfast commented Jan 30, 2026

Feel free to open a draft PR in evmone (at least for visibility)

@cameel cameel requested review from matheusaaguiar and r0qs February 2, 2026 14:21
Comment thread libsolidity/codegen/CompilerContext.cpp Outdated
Copy link
Copy Markdown
Member

@r0qs r0qs left a comment

Choose a reason for hiding this comment

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

Hi @frangio, thank you for the contribution! I've taken a first look and it looks good overall. Could you also add the EXCHANGE opcode?

Since we're reusing part of the EOF work, it would be great to also add an implementation for via-IR.

Also, as a note for the future in case this EIP is accepted: @clonker, we may need to adjust

static size_t constexpr reachableStackDepth = 16;
for the SSA-CFG pipeline.

As we briefly discussed during the call, we still need to wait for evmone support before we can properly test this.

@cameel cameel added the has dependencies The PR depends on other PRs that must be merged first label Feb 16, 2026
@frangio
Copy link
Copy Markdown
Contributor Author

frangio commented Mar 24, 2026

Still blocked on evmone.

I've rebased on top of develop, updated to match the spec changes in devnet-3, and added disassembly.

There's still work to do. It'd be good to have a list of to-do's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

experimental external contribution ⭐ has dependencies The PR depends on other PRs that must be merged first

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants