evmc: Drop evmc_result optional storage#1529
Merged
Merged
Conversation
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.
There was a problem hiding this comment.
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) fromevmc/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.
| @@ -474,19 +474,6 @@ struct evmc_result | |||
| * In all other cases the address MUST be null bytes. | |||
| */ | |||
| evmc_address create_address; | |||
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.