Skip to content

build: upgrade REVM to v33#1219

Merged
Wodann merged 2 commits intomainfrom
build/revm-33
Dec 10, 2025
Merged

build: upgrade REVM to v33#1219
Wodann merged 2 commits intomainfrom
build/revm-33

Conversation

@Wodann
Copy link
Member

@Wodann Wodann commented Dec 5, 2025

Upgrades REVM to v33. The Foundry upgrade mimics foundry-rs/foundry#12538

This is a prerequisite for using the DebugInspector from revm-inspectors.

@Wodann Wodann requested a review from Copilot December 5, 2025 21:50
@Wodann Wodann self-assigned this Dec 5, 2025
@Wodann Wodann added the no changeset needed This PR doesn't require a changeset label Dec 5, 2025
@changeset-bot
Copy link

changeset-bot bot commented Dec 5, 2025

⚠️ No Changeset found

Latest commit: a22188d

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@Wodann Wodann temporarily deployed to github-action-benchmark December 5, 2025 21:50 — with GitHub Actions Inactive
Copy link
Contributor

Copilot AI left a comment

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 upgrades REVM from v31 to v33 to enable use of the DebugInspector from revm-inspectors. The changes update REVM-related dependencies in Cargo.toml and adapt the codebase to handle API changes, specifically the renaming of the log inspector method to log_full and the addition of new fields (was_precompile_called and precompile_call_logs) to the CallOutcome struct.

Key changes:

  • Updated REVM and related crate versions across the dependency tree
  • Renamed log method implementations to log_full to match new REVM API
  • Added required was_precompile_called and precompile_call_logs fields to CallOutcome instantiations

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Cargo.toml Updated REVM and related dependency versions from v31/v12 to v33/v14
crates/foundry/evm/evm/src/inspectors/stack.rs Renamed log method to log_full and added new CallOutcome fields
crates/foundry/evm/evm/src/inspectors/logs.rs Renamed log method to log_full and added new CallOutcome fields
crates/foundry/cheatcodes/src/inspector.rs Renamed log method to log_full and added new CallOutcome fields with appropriate boolean values
crates/edr_runtime/src/inspector.rs Added new log method and renamed existing method to log_full

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

@Wodann Wodann temporarily deployed to github-action-benchmark December 5, 2025 21:55 — with GitHub Actions Inactive
@Wodann Wodann temporarily deployed to github-action-benchmark December 5, 2025 21:55 — with GitHub Actions Inactive
@codecov
Copy link

codecov bot commented Dec 5, 2025

Codecov Report

❌ Patch coverage is 68.00000% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.11%. Comparing base (25b2b2d) to head (a22188d).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
crates/edr_runtime/src/inspector.rs 42.85% 4 Missing ⚠️
crates/foundry/cheatcodes/src/inspector.rs 77.77% 2 Missing ⚠️
crates/foundry/evm/evm/src/inspectors/logs.rs 33.33% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1219      +/-   ##
==========================================
+ Coverage   72.85%   73.11%   +0.25%     
==========================================
  Files         438      438              
  Lines       73764    73781      +17     
  Branches    73764    73781      +17     
==========================================
+ Hits        53744    53945     +201     
+ Misses      18039    17848     -191     
- Partials     1981     1988       +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Wodann Wodann requested a review from a team December 5, 2025 22:38
@Wodann Wodann marked this pull request as ready for review December 5, 2025 22:38
Copy link
Contributor

@anaPerezGhiglia anaPerezGhiglia left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@Wodann Wodann temporarily deployed to github-action-benchmark December 9, 2025 15:24 — with GitHub Actions Inactive
@Wodann Wodann had a problem deploying to github-action-benchmark December 9, 2025 15:29 — with GitHub Actions Failure
@Wodann Wodann temporarily deployed to github-action-benchmark December 9, 2025 15:29 — with GitHub Actions Inactive
@Wodann Wodann had a problem deploying to github-action-benchmark December 9, 2025 17:10 — with GitHub Actions Failure
@Wodann Wodann had a problem deploying to github-action-benchmark December 9, 2025 18:35 — with GitHub Actions Failure
@Wodann
Copy link
Member Author

Wodann commented Dec 10, 2025

@agostbiro are these benchmark numbers comparable to what you saw in your performance profiling of Foundry + REVM v33?

Benchmark suite Current: a22188d Previous: 25b2b2d Ratio
Total 37497576 us 33428289 us 1.12
StdMathTest 9412 us 7516 us 1.25
StdStorageTest 37351902 us 33334883 us 1.12

@agostbiro
Copy link
Contributor

agostbiro commented Dec 10, 2025

@agostbiro are these benchmark numbers comparable to what you saw in your performance profiling of Foundry + REVM v33?

Benchmark suite Current: a22188d Previous: 25b2b2d Ratio
Total 37497576 us 33428289 us 1.12
StdMathTest 9412 us 7516 us 1.25
StdStorageTest 37351902 us 33334883 us 1.12

I reran the Forge 1.5 (which also has REVM 33) comparison benchmark using the latest commit from this branch and the results look ok to me.

I'm adding performance comparisons with Forge 1.5 below. First the baseline with a recent EDR version using REVM 31 and then EDR with REVM 33. Lower is better for EDR.

EDR@4a24a54 (REVM 31) vs Forge 1.5.0

repo successful_tests failed_tests total_ratio unit_ratio fuzz_ratio invariant_ratio
forge-std 177 0 0.99 0.46 0.99 0
morpho-blue 145 0 0.73 0.95 0.62 0.84
prb-math 314 0 0.56 0.92 0.55 0
solady 1557 0 0.5 0.95 0.5 0.01
v4-core 598 0 0.73 0.99 0.66 0

EDR@a22188d9d (REVM 33) vs Forge 1.5.0

repo successful_tests failed_tests total_ratio unit_ratio fuzz_ratio invariant_ratio
forge-std 177 0 1.02 0.51 1.03 0
morpho-blue 145 0 0.74 0.98 0.65 0.82
prb-math 314 0 0.57 0.96 0.56 0
solady 1557 0 0.5 0.97 0.5 0.01
v4-core 598 0 0.75 0.99 0.69 0

The raw results are here.

@Wodann
Copy link
Member Author

Wodann commented Dec 10, 2025

I reran the Forge 1.5 (which also has REVM 33) comparison benchmark using the latest commit from this branch and the results look ok to me.

@agostbiro, thank you for taking a deeper dive and validating the performance! 🙏

@Wodann Wodann added this pull request to the merge queue Dec 10, 2025
Merged via the queue into main with commit ad4dc27 Dec 10, 2025
66 of 72 checks passed
@Wodann Wodann deleted the build/revm-33 branch December 10, 2025 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no changeset needed This PR doesn't require a changeset

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants