• Jim Posen's avatar
    Integrate Wasmtime for runtime execution (#3869) · c2975363
    Jim Posen authored
    * executor: Use non wasmi-specific execution in tests.
    
    * executor: Move all runtime execution tests into tests file.
    
    * executor: Use test_case macro to easily execute tests with different
    Wasm execution methods.
    
    * executor: Convert errors to strings with Display, not Debug.
    
    * node-executor: Rewrite benchmarks with criterion.
    
    They were not passing compilation before and criterion seems to be more
    widely used in Substrate.
    
    * executor: Begin implementation of Wasm runtime.
    
    The implementation demonstrates the outline of the execution, but does
    not link against the external host functions.
    
    * executor: Define and implement basic FunctionExecutor.
    
    The SandboxCapabilities::invoke is still left unimplemented.
    
    * executor: Implement host function trampoline generation.
    
    * executor: Instantiate and link runtime module to env module.
    
    * executor: Provide input data during wasmtime execution.
    
    * executor: Implement SandboxCapabilites::invoke for wasmtime executor.
    
    * executor: Integrate and test wasmtime execution method.
    
    * executor: Improve FunctionExecution error messages.
    
    * Scope the unsafe blocks to be smaller.
    
    * Rename TrampolineState to EnvState.
    
    * Let EnvState own its own compiler instead of unsafe lifetime cast.
    
    * Refactor out some common wasmi/wasmtime logic.
    
    * Typos and cosmetic changes.
    
    * More trampoline comments.
    
    * Cargo.lock update.
    
    * cli: CLI option for running Substrate with compiled Wasm execution.
    
    * executor: Switch dependency from fork to official wasmtime repo.
    
    * Quiet down cranelift logs.
    
    * Explicitly catch panics during host calls.
    
    We do this to ensure that panics do not cross language boundaries.
    
    * Additional checks and clarifications in make_trampoline.
    
    * Fixes after merge from master and panic safety for wasmtime
    instantiation.
    c2975363
This project manages its dependencies using Cargo. Learn more