Skip to content

Simple Format Virtual Machine sfvm#151

Closed
simonlechner wants to merge 7 commits into
mainfrom
simon/sfvm
Closed

Simple Format Virtual Machine sfvm#151
simonlechner wants to merge 7 commits into
mainfrom
simon/sfvm

Conversation

@simonlechner

@simonlechner simonlechner commented Nov 12, 2025

Copy link
Copy Markdown
Collaborator

This PR adds a new interpreter to tosca, the sfvm build on top of the lfvm and simplifies it significantly. No more super instructions, logging, statistics and most importantly no more long format.

To ensure correctness before merging into main:

  • unit tests
  • tosca integration tests
  • CT full mode run

This PR is structured into multiple commits, which should be reviewed one by one.

@simonlechner
simonlechner force-pushed the simon/sfvm branch 2 times, most recently from a36c819 to c2dfb7b Compare November 13, 2025 09:46
@simonlechner

Copy link
Copy Markdown
Collaborator Author
Micro Benchmarks

The micro benchmarks including the new push data benchmark look promising.

@HerbertJordan HerbertJordan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@simonlechner Before reviewing it, a conceptional question we should discuss: Do we need/want to duplicate the implementation of instructions, stacks, memory, keccak, and other common tools or would it be fine to reuse those?

@codecov

codecov Bot commented Nov 28, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
go/integration_test/interpreter/test_config.go 85.71% <ø> (ø)
go/integration_test/interpreter/test_evm.go 88.78% <ø> (ø)
go/interpreter/sfvm/analysis.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/ct.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/gas.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/hash_cache.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/instructions.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/interpreter.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/keccak.go 100.00% <100.00%> (ø)
go/interpreter/sfvm/memory.go 100.00% <100.00%> (ø)
... and 3 more

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@HerbertJordan HerbertJordan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

As discussed offline, this PR should be split into multiple, easier to review steps.

@simonlechner

Copy link
Copy Markdown
Collaborator Author

This PR has been split into several smaller ones, now merged into main.

@simonlechner
simonlechner deleted the simon/sfvm branch January 30, 2026 09:59
@simonlechner
simonlechner restored the simon/sfvm branch February 11, 2026 12:46
@simonlechner
simonlechner deleted the simon/sfvm branch February 11, 2026 12:47
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