diff --git a/substrate/build.sh b/substrate/build.sh index 9a2aaac4630932536638f9145f9e37b43bdf1ac7..dd47753730759e5593947729f470b5481c3679f1 100755 --- a/substrate/build.sh +++ b/substrate/build.sh @@ -10,3 +10,4 @@ cd demo/runtime/wasm && ./build.sh && cd ../../.. cd substrate/executor/wasm && ./build.sh && cd ../../.. cd substrate/test-runtime/wasm && ./build.sh && cd ../../.. cd polkadot/runtime/wasm && ./build.sh && cd ../../.. +cd polkadot/parachain/test-chains && ./build.sh && cd ../../.. diff --git a/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml b/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml index afc9e9f13103d8948fedd0531dbac56d1bcfa3c1..dd0fc4050d925fc6e0293c307bded727861a4b80 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml +++ b/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml @@ -9,7 +9,7 @@ crate-type = ["cdylib"] [dependencies] polkadot-parachain = { path = "../../", default-features = false } -wee_alloc = "0.2.0" +wee_alloc = "0.4.0" tiny-keccak = "1.4" pwasm-libc = "0.2" diff --git a/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs b/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs index 3f877b16d1bcb9ae8a7d23c2e0d7c16e1c441439..be21a8dec8caa1aab4f054adfde8b6ff73174778 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs +++ b/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs @@ -17,7 +17,7 @@ //! Basic parachain that adds a number as part of its state. #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(not(feature = "std"), feature(alloc, core_intrinsics, global_allocator, lang_items))] +#![cfg_attr(not(feature = "std"), feature(alloc, core_intrinsics, global_allocator, lang_items, panic_implementation))] #[cfg(not(feature = "std"))] extern crate alloc; diff --git a/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs b/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs index fa1bf64f43cea23e3259eccc9bd72121bc205b75..3af2dd39a9722c58df3a3f5c060bbb3e693febe4 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs +++ b/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs @@ -16,19 +16,23 @@ //! Defines WASM module logic. +use core::intrinsics; + use parachain::{self, ValidationResult}; use parachain::codec::Slicable; use super::{HeadData, BlockData}; -#[lang = "panic_fmt"] +#[panic_implementation] +#[no_mangle] +pub fn rust_begin_panic(_info: &::core::panic::PanicInfo) -> ! { + unsafe { + intrinsics::abort() + } +} + +#[lang = "oom"] #[no_mangle] -pub extern fn panic_fmt( - _args: ::core::fmt::Arguments, - _file: &'static str, - _line: u32, - _col: u32, -) -> ! { - use core::intrinsics; +pub fn oom() -> ! { unsafe { intrinsics::abort(); } diff --git a/substrate/polkadot/parachain/test-chains/build.sh b/substrate/polkadot/parachain/test-chains/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..2b876634e88c7c1e1437c5ee21b8d6a6fdeb1730 --- /dev/null +++ b/substrate/polkadot/parachain/test-chains/build.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -e + +rm -rf ./target +for i in */ +do + i=${i%/} + cd $i + + RUSTFLAGS="-C link-arg=--import-memory" cargo +nightly build --target=wasm32-unknown-unknown --release --no-default-features + wasm-gc target/wasm32-unknown-unknown/release/$i.wasm ../../tests/res/$i.wasm + cd .. +done diff --git a/substrate/polkadot/parachain/test-chains/build_test_chains.sh b/substrate/polkadot/parachain/test-chains/build_test_chains.sh deleted file mode 100755 index 6523e46f14e7e5410cc6d9586def9169007c791a..0000000000000000000000000000000000000000 --- a/substrate/polkadot/parachain/test-chains/build_test_chains.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -set -e - -rm -rf ./target -for i in */ -do - i=${i%/} - cd $i - - # TODO: stop using exact nightly when wee-alloc works on normal nightly. - RUSTFLAGS="-C link-arg=--import-memory" cargo +nightly-2018-03-07 build --target=wasm32-unknown-unknown --release --no-default-features - wasm-gc target/wasm32-unknown-unknown/release/$i.wasm ../../tests/res/$i.wasm - cd .. -done diff --git a/substrate/polkadot/parachain/tests/res/basic_add.wasm b/substrate/polkadot/parachain/tests/res/basic_add.wasm index 83f52db817f81cf088221070e7db06d3a9ea8765..709c111d278c720417615f10e3f7dd08538ed76f 100755 Binary files a/substrate/polkadot/parachain/tests/res/basic_add.wasm and b/substrate/polkadot/parachain/tests/res/basic_add.wasm differ diff --git a/substrate/publish-wasm.sh b/substrate/publish-wasm.sh index 7ac79a99bf54827fa412d3f6ea5cb77cf73548c7..2a42504eef6b9f4ad292125fb36580926ebe6586 100755 --- a/substrate/publish-wasm.sh +++ b/substrate/publish-wasm.sh @@ -4,7 +4,7 @@ set -e REPO="github.com/paritytech/polkadot-wasm-bin.git" REPO_AUTH="${GH_TOKEN}:@${REPO}" -SRCS=( "polkadot/runtime/wasm" "substrate/executor/wasm" "demo/runtime/wasm" "substrate/test-runtime/wasm" ) +SRCS=( "polkadot/runtime/wasm" "substrate/executor/wasm" "demo/runtime/wasm" "substrate/test-runtime/wasm" "polkadot/parachain/test-chains" ) DST=".wasm-binaries" TARGET="wasm32-unknown-unknown" UTCDATE=`date -u "+%Y%m%d.%H%M%S.0"`