You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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]
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 new evmc_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::vm objects in C++ API. [#341]
The basic types address and bytes32 have 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 address and bytes32 have user defined literals. [#359]
auto a = 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359_address;
auto b = 0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3_bytes32;
CMake option EVMC_INSTALL (ON by 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-vmtester tool received support for EVMC module configuration. E.g. evmc-vmtester ./my_vm,mode=interpreter. [#366]
In evmc-vm Rust crate, ExecutionResult now has success, failure and revert helpers. [#297, #368]
Introduction of evmc-declare Rust crate with a procedural macro for easy VM declaration. [#262, #316]
Introduction of ExecutionMessage wrapper in the evmc-vm Rust crate. [#324]
Added type aliases and traits on basic types in the evmc-vm Rust crate. [#342, #343]
Changed
A lot of documentation fixes, improvements and cleanups. [#271, #272, #276, #280, #345]
In C++ API evmc::result::raw() renamed to evmc::result::release_raw(). [#293]
In evmc_load_and_create() the error_code is optional (can be NULL). [#311]
Deprecated
The usage of evmc/helpers.hpp has been deprecated. Use evmc/evmc.hpp which 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]
Fixed
The vmtester tool now builds with MSVC with /std:c++17. [#261, #263]
The evmc_release_result() helper has been fixed. [#266, #279]
The missing include guard in evmc.hpp has been fixed. [#300]
A loaded VM with incompatible ABI version is now properly destroyed. [#305, #306]