EWasm eth interface https://github.com/ewasm/design/blob/master/eth_interface.md
Glosarry:
- pwasm - Parity Wasm
- ewasm - Ethereum Wasm
Notable differences:
failures: | |
---- test_header_contents stdout ---- | |
thread 'test_header_contents' panicked at 'assertion failed: `(left == right)` | |
left: `"/* automatically generated by rust-bindgen */\n\nextern \"C\" {\n pub fn foo(a: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;\n}\n"`, | |
right: `"/* automatically generated by rust-bindgen */\n\nextern \"C\" {\n #[link_name = \"\\u{1}_foo\"]\n pub fn foo(a: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;\n}\n"`', tests/tests.rs:319:4 | |
stack backtrace: | |
0: 0x10948f213 - std::sys::imp::backtrace::tracing::imp::unwind_backtrace::h5d6b821bcccc8af3 | |
1: 0x10949321a - std::panicking::default_hook::{{closure}}::haca53f8b96e15b81 |
failures: | |
---- test_header_contents stdout ---- | |
thread 'test_header_contents' panicked at 'assertion failed: `(left == right)` | |
left: `"/* automatically generated by rust-bindgen */\n\nextern \"C\" {\n pub fn foo(a: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;\n}\n"`, | |
right: `"/* automatically generated by rust-bindgen */\n\nextern \"C\" {\n #[link_name = \"\\u{1}_foo\"]\n pub fn foo(a: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;\n}\n"`', tests/tests.rs:319:4 | |
stack backtrace: | |
0: 0x10948f213 - std::sys::imp::backtrace::tracing::imp::unwind_backtrace::h5d6b821bcccc8af3 | |
1: 0x10949321a - std::panicking::default_hook::{{closure}}::haca53f8b96e15b81 |
FROM trzeci/emscripten:sdk-incoming-64bit | |
ENV RUSTUP_HOME=/usr/local/rustup \ | |
CARGO_HOME=/usr/local/cargo \ | |
PATH=/usr/local/cargo/bin:$PATH | |
RUN set -eux; \ | |
url="https://static.rust-lang.org/rustup/archive/1.6.0/x86_64-unknown-linux-gnu/rustup-init"; \ | |
wget "$url"; \ | |
chmod +x rustup-init; \ |
(module | |
(type $FUNCSIG$vii (func (param i32 i32))) | |
(type $FUNCSIG$ii (func (param i32) (result i32))) | |
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) | |
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) | |
(type $FUNCSIG$vi (func (param i32))) | |
(type $FUNCSIG$jj (func (param i64) (result i64))) | |
(type $FUNCSIG$v (func)) | |
(import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32)) | |
(import "env" "STACK_MAX" (global $STACK_MAX$asm2wasm$import i32)) |
-rw-r--r-- 2 pepyakin staff 2.3K Nov 14 00:01 target/wasm32-unknown-emscripten/release/call_code.wasm | |
-rw-r--r-- 2 pepyakin staff 2.3K Nov 14 00:01 target/wasm32-unknown-emscripten/release/call_static.wasm | |
-rw-r--r-- 2 pepyakin staff 1.9K Nov 14 00:01 target/wasm32-unknown-emscripten/release/creator.wasm | |
-rw-r--r-- 2 pepyakin staff 1.7K Nov 14 00:01 target/wasm32-unknown-emscripten/release/dispersion.wasm | |
-rw-r--r-- 2 pepyakin staff 1.1K Nov 14 00:01 target/wasm32-unknown-emscripten/release/empty.wasm | |
-rw-r--r-- 2 pepyakin staff 4.7K Nov 14 00:01 target/wasm32-unknown-emscripten/release/events.wasm | |
-rw-r--r-- 2 pepyakin staff 3.2K Nov 14 00:01 target/wasm32-unknown-emscripten/release/externs.wasm | |
-rw-r--r-- 2 pepyakin staff 1.2K Nov 14 00:01 target/wasm32-unknown-emscripten/release/identity.wasm | |
-rw-r--r-- 2 pepyakin staff 3.8K Nov 14 00:01 target/wasm32-unknown-emscripten/release/keccak.wasm | |
-rw-r--r-- 2 pepyakin staff 2.4K Nov 14 00:01 target/wasm32-unknown-emscripten |
EWasm eth interface https://github.com/ewasm/design/blob/master/eth_interface.md
Glosarry:
Notable differences:
; ModuleID = 'suicidal0-c5be23406fd320ed2cb4254d08f783fa.rs' | |
source_filename = "suicidal0-c5be23406fd320ed2cb4254d08f783fa.rs" | |
target datalayout = "e-p:32:32-i64:64-v128:32:128-n32-S128" | |
target triple = "asmjs-unknown-emscripten" | |
%str_slice = type { i8*, i32 } | |
%"core::fmt::Write::write_fmt::Adapter<string::String>" = type { %"alloc::string::String"*, [0 x i8] } | |
%"alloc::string::String" = type { %"alloc::vec::Vec<u8>", [0 x i8] } | |
%"alloc::vec::Vec<u8>" = type { %"alloc::raw_vec::RawVec<u8, alloc::heap::Heap>", [0 x i8], i32, [0 x i8] } | |
%"alloc::raw_vec::RawVec<u8, alloc::heap::Heap>" = type { %"core::ptr::Unique<u8>", [0 x i8], i32, [0 x i8], %"alloc::heap::Heap", [0 x i8] } |
; ModuleID = 'suicidal.cgu-0.rs' | |
source_filename = "suicidal.cgu-0.rs" | |
target datalayout = "e-p:32:32-i64:64-v128:32:128-n32-S128" | |
target triple = "asmjs-unknown-emscripten" | |
%str_slice = type { i8*, i32 } | |
%"core::fmt::Write::write_fmt::Adapter<string::String>" = type { %"alloc::string::String"*, [0 x i8] } | |
%"alloc::string::String" = type { %"alloc::vec::Vec<u8>", [0 x i8] } | |
%"alloc::vec::Vec<u8>" = type { %"alloc::raw_vec::RawVec<u8, alloc::heap::Heap>", [0 x i8], i32, [0 x i8] } | |
%"alloc::raw_vec::RawVec<u8, alloc::heap::Heap>" = type { %"core::ptr::Unique<u8>", [0 x i8], i32, [0 x i8], %"alloc::heap::Heap", [0 x i8] } |
extern crate parity_wasm; | |
use std::rc::Rc; | |
use parity_wasm::elements::Module; | |
use parity_wasm::interpreter::{ | |
ModuleInstance, HostModule, HostModuleBuilder, Error | |
}; | |
mod tictactoe { | |
use std::collections::HashMap; |
extern crate parity_wasm; | |
use std::env; | |
use std::fmt; | |
use std::rc::Rc; | |
use parity_wasm::elements::Module; | |
use parity_wasm::interpreter::{Error as InterpreterError, HostModule, HostModuleBuilder, | |
ModuleInstance, UserError}; | |
#[derive(Debug)] |