This repository was archived by the owner on Apr 8, 2026. It is now read-only.
EVMC 6.3.0
Added
- Experimental support for Precompiles - EVMC modules containing implementations of Ethereum precompiled contracts. To learn more read the EVMC Precompiles feature description. [#267]
- The
vm::get_capabilities()method has been added in C++ API. [#301] - A CMake helper for running evmc-vmtester. [#303]
- The loader module introduces standardized EVMC module configuration string which contains path to the module and additional options. E.g.
./modules/vm.so,engine=compiler,trace,verbosity=2. A VM can be loaded, created and configured atomically with newevmc_load_and_configure()function. [#313] - Full support for 32-bit architectures has been added. [#327]
- The C/C++ API for creating execution results in VMs has been extended to handle common usage cases. [#333]
- Support for moving
evmc::vmobjects in C++ API. [#341] - The basic types
addressandbytes32have received their C++ wrappers to assure they are always initialized. They also have convenient overloaded operators for comparison and usage as keys in standard containers. [#357] - The C++ EVMC basic types
addressandbytes32have user defined literals. [#359]auto a = 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359_address; auto b = 0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3_bytes32;
- CMake option
EVMC_INSTALL(ONby default) to disable installing EVMC targets. This may be useful when EVMC is included in other project as git submodule or subtree. [#360] - The
evmc-vmtestertool received support for EVMC module configuration. E.g.evmc-vmtester ./my_vm,mode=interpreter. [#366] - In
evmc-vmRust crate,ExecutionResultnow hassuccess,failureandreverthelpers. [#297, #368] - Introduction of
evmc-declareRust crate with a procedural macro for easy VM declaration. [#262, #316] - Introduction of
ExecutionMessagewrapper in theevmc-vmRust crate. [#324] - Added type aliases and traits on basic types in the
evmc-vmRust crate. [#342, #343]
Changed
- A lot of documentation fixes, improvements and cleanups. [#271, #272, #276, #280, #345]
- In C++ API
evmc::result::raw()renamed toevmc::result::release_raw(). [#293] - In
evmc_load_and_create()theerror_codeis optional (can beNULL). [#311]
Deprecated
- The usage of
evmc/helpers.hpphas been deprecated. Useevmc/evmc.hppwhich provides the same features. [#358] - The tracing API has been deprecated as there have been some design flaws discovered. New API is expected to be introduced in future. [#376]