• Gav Wood's avatar
    Introduce first groundwork for Wasm executor (#27) · b38b6336
    Gav Wood authored and asynchronous rob's avatar asynchronous rob committed
    * Introduce first groundwork for Wasm executor.
    
    * Remove old Rust-runtime code.
    
    * Avoid commiting compled files.
    
    * Add runtime precompile.
    
    * Rename so module makes more sense.
    
    * Further renaming.
    
    * Ensure tests work.
    
    * Allow bringing in of externalities.
    
    - Add util functions/macros.
    - Add uncompacted runtime.
    - Add some external crates from pwasm-std for managing allocs/memory
    stuff.
    
    * Nice macros for imports.
    
    * Allow passing in of data through allocators.
    
    Make memcpy and malloc work.
    Basic allocator.
    
    * Can now pass in bytes to WasmExecutor.
    
    * Additional cleanup.
    
    * Switch usages of `OutData` to `u64`
    
    No need to be able to return bytes anymore.
    
    * convert to safe but extremely verbose type conversion.
    
    @rphmeier any more concise way of doing this?
    
    * Remove StaticExternalities distinction.
    
    * Remove another unused use.
    
    * Refactor wasm utils out
    
    * Remove extraneous copies that weren't really testing anything.
    
    * Try to use wasm 0.15
    
    * Make it work!
    
    * Call-time externalities working.
    
    * Add basic externalities.
    
    * Fix grumbles and note unwraps to be sorted.
    
    * Test storage externality.
    
    Unforunately had to change signatures of externalities to avoid
    immutable function returning a reference. Not sure what to do about
    this...
    
    * Fix nits.
    
    * Compile collation logic.
    
    * Move back to refs. Yey.
    
    * Remove "object" id for storage access.
    
    * Fix test.
    
    * Fix up rest of tests.
    
    * remove unwrap.
    
    * Expose set/get code in externalities
    
    Also improve tests and add nice wrappers in rust-wasm.
    
    * Add validator set.
    
    * Introduce validator set into externalities and test.
    
    * Add another external function.
    
    * Remove code and validators; use storage for everything.
    
    * Introduce validators function.
    
    * Tests (and a fix) for the validators getter.
    
    * Allow calls into runtime to return data.
    
    * Remove unneeded trace.
    
    * Make runtime printing a bit nicer.
    
    * Create separate runtimes for testing and polkadot.
    
    * Remove commented code.
    
    * Use new path.
    
    * Refactor into shared support module.
    
    * Fix warning.
    
    * Remove unwraps.
    
    * Make macro a little less unhygenic.
    
    * Add wasm files.
    b38b6336