chore(giga): remove evmone from codebase - #4117
Conversation
The Giga executor's production path already runs on go-ethereum's native interpreter (NewGethExecutor); the evmc/evmone path (NewEvmoneExecutor, the HostContext/EVMInterpreter bridge, the per-platform evmone shared libraries, and the best-effort VM init in app.go/test_helpers.go) was dead code that nothing called. - Delete giga/executor/lib (evmc loader, checksum verification, bundled libevmone binaries, download generator) - Delete the evmc-based HostContext/EVMInterpreter in giga/executor/internal - Drop NewEvmoneExecutor and the EvmoneVM keeper field - Drop the libevmone install step from the Dockerfile - Drop the now-unused evmc/v12 dependency
PR SummaryMedium Risk Overview Build and packaging: the Dockerfile no longer installs Reviewed by Cursor Bugbot for commit f2cd9d4. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
There was a problem hiding this comment.
A clean, near-pure deletion of the dead evmc/evmone path (2107 lines removed, 9 added): no remaining references to InitEvmoneVM, NewEvmoneExecutor, EvmoneVM, NewHostContext, giga/executor/lib, the SEI_EVMONE_LIB_DIR knob, or evmc/v12 survive anywhere in the tree, and the Dockerfile's /go/lib copy step for the other native libs is untouched. Two non-blocking cleanup gaps remain.
Findings: 0 blocking | 2 non-blocking | 0 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- [suggestion]
giga/tests/giga_test.gostill carriesTestGiga_SstoreGasDeltaCalculation(~lines 1374-1428), which this PR left behind while cleaning the other evmone references in the same file. Its godoc calls it "a unit test for the HostContext gas adjustment logic" and its inline comment reads "Calculate delta the same way NewHostContext does" — both name a type deleted by this PR. The test body reimplements themax(0, seiSstoreGas - 20000)arithmetic locally and asserts it against hardcoded expectations, so it exercises no production code at all now; the real coverage lives inTestGigaVsGeth_GasComparisonandTestGiga_SstoreGasHonoredByChainConfig. Deleting it fits the scope of this cleanup better than leaving a test anchored to a removed function. - [suggestion] No
CHANGELOG.mdentry was added under## Unreleased. The repo's changelog header asks for an entry per PR, and every prior evmone-related change followed that (#3411, #3443, #3624, #3668). This one is operator-visible beyond a pure refactor: release images no longer shiplibevmone.*.soin/usr/lib, and theSEI_EVMONE_LIB_DIRoverride is gone.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4117 +/- ##
==========================================
- Coverage 60.94% 59.97% -0.98%
==========================================
Files 2192 2087 -105
Lines 192187 179499 -12688
==========================================
- Hits 117131 107652 -9479
+ Misses 63684 61565 -2119
+ Partials 11372 10282 -1090
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
- Delete TestGiga_SstoreGasDeltaCalculation: it re-implemented the deleted HostContext's gas-delta arithmetic locally and asserted against itself, exercising no production code. Coverage remains in TestGigaVsGeth_GasComparison and TestGiga_SstoreGasHonoredByChainConfig. - Add a CHANGELOG.md entry noting release images no longer ship libevmone.*.so/.dylib and that SEI_EVMONE_LIB_DIR is removed.
Summary
NewGethExecutor); the evmc/evmone path (NewEvmoneExecutor, theHostContext/EVMInterpreterbridge, the per-platform evmone shared libraries, and the best-effort VM init inapp.go/test_helpers.go) was dead code that nothing called.giga/executor/lib(evmc loader, checksum verification, bundledlibevmonebinaries, download generator) and the evmc-basedHostContext/EVMInterpreteringiga/executor/internal.libevmoneinstall step from theDockerfileand the now-unusedevmc/v12dependency fromgo.mod/go.sum.giga/tests/giga_test.gocomments.Testing performed to validate your change
go build ./...,go vet ./...— cleanmake fmtcheckandgolangci-lint run ./giga/... ./app/...— cleanscripts/ramtest.sh ./giga/...targeted runs (TestAllModes_NonConflicting,TestGigaVsGeth_GasComparison,TestGiga_CREATE_CodePath,TestGiga_GasAccounting) — all pass, gas parity between Geth (V2) and Giga unchanged