Skip to content

evmone 0.9.0

Compare
Choose a tag to compare
@chfast chfast released this 30 Aug 15:31
· 855 commits to master since this release
v0.9.0
f4c04ee

In this release we have been focused on improving performance of the Baseline interpreter. The end result is that the Baseline is 26% faster than in previous version 0.8.0 and 18% faster than the current Advanced interpreter while having over 8x smaller code analysis cost. The Baseline is now the default interpreter because it is simpler and has become better than the Advanced.

The Advanced also has got 4% faster than in the previous version.

All numbers are from running the "main" benchmark suite on 4.0 GHz Intel Haswell CPU, using the Clang 15 compiler.

Moreover, evmone now calculates gas refund and reports it back using EVMC 10 API.

Finally, the options O=2 and O=0 have been replaced by advanced. See below for details.

Added

  • Calculation of EVM gas refunds. #493
  • PUSH0 instruction implementation (EIP-3855), enabled in Shanghai. #448 #432
  • Experimental EOF validation and execution (EIP-3540), enabled in Shanghai. #334 #366 #471
  • In progress State Transition execution tool for testing purposes. So far we've merged:
    • RLP encoding, #463
    • Merkle Patricia Trie root hash computing, #477 #478
    • JSON State Transition Test loader. #479

Changed

  • EVMC options O=0 (use Baseline) and O=2 (use Advanced) have been replaced with single option advanced to use the non-default Advanced interpreter. #500
  • Baseline has replaced Advanced as the default interpreter. The later can still be selected with the advanced option. Reasons are explained in the introduction. #500
  • A lot of changes related to the optimization of the Baseline interpreter, including refactoring and optimization of instructions' implementations.
  • The Baseline interpreter now uses "computed goto" dispatch if supported by C++ compiler. The "switch" dispatch can be forced with the cgoto=no option. #495
  • Improvements to basic block metadata placement in the Advanced interpreter. #457 #474
  • EVMC has been upgraded to version 10.0.0. #499
  • intx has been upgrade to version 0.8.0. #446

Removed

  • evmone-fuzzer has removed aleth-interpreter as it is not maintained and lacks the latest EVM features. #453