Skip to content

What to do with EOF implementation? #1239

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

Open
chfast opened this issue May 20, 2025 · 3 comments
Open

What to do with EOF implementation? #1239

chfast opened this issue May 20, 2025 · 3 comments
Assignees
Labels
question Further information is requested

Comments

@chfast
Copy link
Member

chfast commented May 20, 2025

Options:

  1. Move to some future EVM revision (e.g. EVMC_EOF).
  2. Remove.
@chfast chfast added the question Further information is requested label May 20, 2025
@chfast chfast self-assigned this May 20, 2025
@pdobacz
Copy link
Contributor

pdobacz commented May 20, 2025

Depends.

  1. if we want evmone to be more tooling/experimentation/benchmark oriented and if it's not terribly hard to maintain.
  2. if we want to evolve evmone into a more prod-oriented implementation

Ideally we could have an EVMC_EXPERIMENTAL fork always after the last mainnet fork and control what that is via a feature flag system, EOF being only one of the choices there. But then I suppose there's a problem with opcode tables (and potentially performance, if feature flag checks are in runtime end up on a hot path)?

@pdobacz
Copy link
Contributor

pdobacz commented May 28, 2025

It might actually be useful to have the EOF implementation around to make comparison benchmarks against non-EOF workarounds for requested EVM features (like SWAPN/DUPN etc). Not a must-have probably, because an EOF instruction can be hacked good enough for the sake of a comparable benchmark without the entire EOF support, but still a nice-to-have.

Anybody else has thoughts on this?

@chfast
Copy link
Member Author

chfast commented May 28, 2025

I already introduced a bug in EOF and it was only caught by EEST/EOF tests. After moving to Osaka we will loose compatibility with these tests. I'm rather for removing these. If you want some comparison, you can likely check out some older version of evmone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

5 participants
@chfast @gumb0 @pdobacz @rodiazet and others