Skip to content

evmc: Drop evmc_result optional storage#1529

Merged
chfast merged 1 commit into
masterfrom
evmc/drop_optional_storage
May 18, 2026
Merged

evmc: Drop evmc_result optional storage#1529
chfast merged 1 commit into
masterfrom
evmc/drop_optional_storage

Conversation

@chfast

@chfast chfast commented May 18, 2026

Copy link
Copy Markdown
Member

Remove the API for evmc_result optional storage feature. EVM could use this to pass a handle to internal objects from internal calls, but this is currently unused by evmone.

Remove the API for evmc_result optional storage feature. EVM could
use this to pass a handle to internal objects from internal calls,
but this is currently unused by evmone.

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 the EVMC evmc_result “optional storage” feature from the public headers, reflecting that the mechanism is currently unused by evmone and simplifying the EVMC API surface.

Changes:

  • Removes the optional-storage helper union/accessors from evmc/include/evmc/helpers.h.
  • Drops the evmc_result::padding[4] field (previously part of the optional-storage mechanism) from evmc/include/evmc/evmc.h.

Reviewed changes

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

File Description
evmc/include/evmc/helpers.h Deletes the helper API and Doxygen group for evmc_result optional storage.
evmc/include/evmc/evmc.h Removes the reserved padding[4] member tied to optional storage from struct evmc_result.

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

Comment thread evmc/include/evmc/evmc.h
@@ -474,19 +474,6 @@ struct evmc_result
* In all other cases the address MUST be null bytes.
*/
evmc_address create_address;
@codecov

codecov Bot commented May 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.88%. Comparing base (7461494) to head (4d7deea).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1529   +/-   ##
=======================================
  Coverage   96.88%   96.88%           
=======================================
  Files         158      158           
  Lines       14264    14264           
  Branches     3348     3348           
=======================================
  Hits        13820    13820           
  Misses        308      308           
  Partials      136      136           
Flag Coverage Δ
eest-develop 91.97% <ø> (ø)
eest-develop-gmp 27.44% <ø> (ø)
eest-legacy 17.68% <ø> (ø)
eest-libsecp256k1 29.13% <ø> (ø)
eest-stable 91.89% <ø> (ø)
evmone-unittests 92.43% <ø> (ø)

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

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

@chfast chfast merged commit 677a179 into master May 18, 2026
27 checks passed
@chfast chfast deleted the evmc/drop_optional_storage branch May 18, 2026 08:58
chfast added a commit that referenced this pull request Jun 13, 2026
The ABI changed incompatibly since EVMC 12 (evmone 0.21.0) while the
version number stayed at 12, so a host built against ABI-12 headers
would load the new VM cleanly and then read structs at wrong offsets:

- evmc_tx_context layout changed: the TXCREATE initcodes fields were
removed (#1514) and block_slot_number was added for EIP-7843 (#1517).
- evmc_result lost the reserved optional-data storage (#1529).
- EVMC_EOFCREATE was removed from evmc_call_kind, freeing value 5 for
future reuse (#1515).
- The EVMC_AMSTERDAM revision was added (#1508).

This is the first ABI bump since EVMC was merged into evmone, so the
version no longer tracks the standalone EVMC project's major version;
the doc comment is updated accordingly.
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