Skip to content

tools: Remove external EVMC support in evmone-bench#1503

Merged
chfast merged 1 commit into
masterfrom
tools/bench_no_external
Apr 9, 2026
Merged

tools: Remove external EVMC support in evmone-bench#1503
chfast merged 1 commit into
masterfrom
tools/bench_no_external

Conversation

@chfast

@chfast chfast commented Apr 9, 2026

Copy link
Copy Markdown
Member

Drop the EVMC loader dependency and the 3-argument CLI mode that loaded an external EVMC VM. The benchmarks now only use the built-in VMs.

@codecov

codecov Bot commented Apr 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.74%. Comparing base (3dd21f1) to head (973d047).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1503   +/-   ##
=======================================
  Coverage   96.74%   96.74%           
=======================================
  Files         155      155           
  Lines       14001    14001           
  Branches     3273     3273           
=======================================
  Hits        13545    13545           
  Misses        313      313           
  Partials      143      143           
Flag Coverage Δ
eest-develop 92.76% <ø> (ø)
eest-develop-gmp 27.93% <ø> (ø)
eest-legacy 15.22% <ø> (ø)
eest-libsecp256k1 29.65% <ø> (ø)
evmone-unittests 91.48% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
core 95.94% <ø> (ø)
tooling 85.01% <ø> (ø)
tests 99.77% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR removes support for loading an external EVMC VM in evmone-bench, simplifying the benchmark tool to only use built-in evmone VMs.

Changes:

  • Drop evmc::loader linkage from the benchmark target.
  • Remove the “EVMC config + benchmarks dir” CLI mode and associated loader code.
  • Simplify CLI parsing to only support: synthetic-only, load benchmarks from a dir, or run a single custom benchmark.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
test/bench/CMakeLists.txt Removes evmc::loader from evmone-bench link dependencies.
test/bench/bench.cpp Deletes EVMC loader include/logic and updates CLI modes accordingly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/bench/bench.cpp

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/bench/bench.cpp Outdated
Drop the EVMC loader dependency and the 3-argument CLI mode that loaded
an external EVMC VM. The benchmarks now only use the built-in VMs.
@chfast chfast force-pushed the tools/bench_no_external branch from 3f77e97 to 973d047 Compare April 9, 2026 15:57
@chfast chfast merged commit d6f2539 into master Apr 9, 2026
23 checks passed
@chfast chfast deleted the tools/bench_no_external branch April 9, 2026 19:45
somnergy pushed a commit to erigontech/zvm1 that referenced this pull request May 23, 2026
Merges upstream evmone (ipsilon/evmone) master through commit ff942e2
into zevmone main. Brings in the post-EVMC-vendoring upstream commits:

  - evmone 0.20.0 and 0.21.0 releases
  - EVMC vendoring follow-ups: remove loader library and old evmc tool
    (ipsilon#1504), drop external EVMC support in evmone-bench (ipsilon#1503), add
    standalone evmone CLI tool (ipsilon#1502), bump CMake to 3.22 (ipsilon#1501),
    remove redundant build configuration (ipsilon#1505)
  - Add Amsterdam EVM revision (ipsilon#1508)
  - Implement DUPN/SWAPN/EXCHANGE EIP-8024 (ipsilon#1429)
  - Extract SWAP instruction helper (ipsilon#1509)
  - Restrict conjugate() to degree-2 extension fields (ipsilon#1485)
  - Add missing inline keyword to always_inline functions (ipsilon#1510)
  - CI updates: run EEST develop (ipsilon#1507), drop legacy state tests
    (ipsilon#1512), set LLVM_PROFILE_FILE per run (ipsilon#1513)

Conflict resolution (matches the existing merge-upstream branch):
  - Adopt upstream's parameterized run_execution_spec_tests command and
    upstream-style call sites (release/fixtures_suffix/filter); drop the
    duplicate non-parameterized definition merged in from HEAD
  - circle.yml gcc-min job: rename CMAKE_OPTIONS=-DEVMC_TOOLS=OFF to
    -DEVMONE_TOOLS=OFF (option moved to evmone scope after vendoring)
  - .bumpversion.cfg, CHANGELOG.md, CMakeLists.txt: take upstream
  - evmc/* (add/add): take upstream's vendored EVMC tree
  - lib/evmone_precompiles/ecc.hpp: keep test_bit() helper (not yet in
    upstream intx)
  - lib/evmone_precompiles/modexp.cpp: keep SP1 modexp_sp1() function
    and its dispatch alongside upstream's bump-allocator refactor
  - test/integration/CMakeLists.txt: take upstream
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants