Skip to content

evmone 0.10.0

Compare
Choose a tag to compare
@chfast chfast released this 08 May 21:49
· 637 commits to master since this release
v0.10.0
409f71d

The highlights of this release are support for Shanghai execution specification upgrade and implementation of EOF "v1.0". There are also big enhancements to the EVM testing tools and infrastructure. In particular, we added the t8n command-line utility.

As it is tradition, the EVM performance has been improved as well. Comparing with the previous release using the "main" benchmark suite, the Baseline interpreter is now:

  • 10–45% (mean 25%) faster for GCC builds,
  • 0–19% (mean 11%) faster for Clang builds.

Added

Changed

  • C++20 is now required to build evmone. #502
  • Minimal tested/supported compilers versions: #535
    • GCC 11
    • Clang 13
    • XCode 13.4
    • Visual Studio 2022
    • CMake 3.16
  • EVMC has been upgraded to version 10.1.0. #623
  • intx has been upgraded to version 0.10.0. #622
  • ethash has been upgraded to version 1.0.0. #540
  • Ethereum Execution Tests has been upgraded to version 12.2. #625
  • Baseline interpreter optimizations:
    • Better stack overflow/underflow checks. #518
    • SWAP instructions optimization for Clang. #527
    • Pass gas counter to memory grow/check helpers by value. #598
    • Pass gas counter to instructions by value. #600
  • Changes to EVM tracing:
    • Instruction trace prints "gas" and "gasUsed" as hex numbers to match geth. #592
    • C++ tracing API has separated the gas parameter. #599
  • Improvements to the JSON State Test execution tool evmone-statetest:
    • Ability to load tests from multiple dirs/files. #512
    • Validate deployed EOF code before state test execution. #593 #601
    • Added --trace command-line flag to enable EVM execution tracing. #543
    • Other improvements. #556 #603
  • Benchmarks (invocable by evmone-bench) have been migrated to external evm-benchmarks which use JSON State Test format. #513 #530
  • Removed dependency on evmc::instructions. #533 #534 #537

Fixed

  • Fixed calling Tracer.notify_execution_start. #531
  • Fixed instruction tracing of EOF code. #536

New Contributors