diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..319e6db --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,18 @@ +[target.wasm32-unknown-emscripten] +rustflags = [ + "-Clink-arg=-sEXPORTED_FUNCTIONS=_main,_free,_malloc", + "-Clink-arg=-sNO_INVOKE_RUN=1", + "-Clink-arg=-sEXIT_RUNTIME=1", + "-Clink-arg=-sALLOW_MEMORY_GROWTH=1", + "-Clink-arg=-sEXPORTED_RUNTIME_METHODS=FS,callMain,stringToNewUTF8", + "-Clink-arg=-sMODULARIZE=1", + "-Clink-arg=-sEXPORT_NAME=createRevive", + "-Clink-arg=-sWASM_ASYNC_COMPILATION=0", + "-Clink-arg=-sDYNAMIC_EXECUTION=0", + "-Clink-arg=-sALLOW_TABLE_GROWTH=1", + "-Clink-arg=--js-library=js/embed/soljson_interface.js", + "-Clink-arg=--pre-js=js/embed/pre.js", + "-Clink-arg=-sNODEJS_CATCH_EXIT=0", + "-Clink-arg=-sDISABLE_EXCEPTION_CATCHING=0", + "-Copt-level=3" +] diff --git a/Makefile b/Makefile index 02907e1..4275250 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,24 @@ -.PHONY: install format test test-solidity test-cli test-integration test-workspace test-wasm clean install-llvm install-llvm-builder machete - -RUSTFLAGS_EMSCRIPTEN := \ - -C link-arg=-sEXPORTED_FUNCTIONS=_main,_free,_malloc \ - -C link-arg=-sNO_INVOKE_RUN=1 \ - -C link-arg=-sEXIT_RUNTIME=1 \ - -C link-arg=-sALLOW_MEMORY_GROWTH=1 \ - -C link-arg=-sEXPORTED_RUNTIME_METHODS=FS,callMain,stringToNewUTF8 \ - -C link-arg=-sMODULARIZE=1 \ - -C link-arg=-sEXPORT_NAME=createRevive \ - -C link-arg=-sWASM_ASYNC_COMPILATION=0 \ - -C link-arg=-sDYNAMIC_EXECUTION=0 \ - -C link-arg=-sALLOW_TABLE_GROWTH=1 \ - -C link-arg=--js-library=js/embed/soljson_interface.js \ - -C link-arg=--pre-js=js/embed/pre.js \ - -C link-arg=-sNODEJS_CATCH_EXIT=0 \ - -C link-arg=-sDISABLE_EXCEPTION_CATCHING=0 \ - -C opt-level=3 +.PHONY: \ + install \ + install-bin \ + install-npm \ + install-wasm \ + install-llvm-builder \ + install-llvm \ + format \ + clippy \ + machete \ + test \ + test-integration \ + test-solidity \ + test-workspace \ + test-cli \ + test-wasm \ + test-llvm-builder + bench \ + bench-pvm \ + bench-evm \ + clean install: install-bin install-npm @@ -26,7 +29,7 @@ install-npm: npm install && npm fund install-wasm: install-npm - RUSTFLAGS='$(RUSTFLAGS_EMSCRIPTEN)' cargo build --target wasm32-unknown-emscripten -p revive-solidity --release --no-default-features + cargo build --target wasm32-unknown-emscripten -p revive-solidity --release --no-default-features install-llvm-builder: cargo install --path crates/llvm-builder @@ -35,9 +38,6 @@ install-llvm: install-llvm-builder revive-llvm clone revive-llvm build -test-wasm: install-wasm - npm run test:wasm - format: cargo fmt --all --check @@ -62,10 +62,17 @@ test-workspace: install test-cli: install npm run test:cli +test-wasm: install-wasm + npm run test:wasm + test-llvm-builder: @echo "warning: the llvm-builder tests will take many hours" cargo test --package revive-llvm-builder -- --test-threads=1 +bench: install-bin + cargo criterion --all --all-features --message-format=json \ + | criterion-table > crates/benchmarks/BENCHMARKS.md + bench-pvm: install-bin cargo criterion --bench execute --features bench-pvm-interpreter --message-format=json \ | criterion-table > crates/benchmarks/PVM.md @@ -74,10 +81,6 @@ bench-evm: install-bin cargo criterion --bench execute --features bench-evm --message-format=json \ | criterion-table > crates/benchmarks/EVM.md -bench: install-bin - cargo criterion --all --all-features --message-format=json \ - | criterion-table > crates/benchmarks/BENCHMARKS.md - clean: cargo clean ; \ revive-llvm clean ; \