diff --git a/.cargo/config.toml b/.cargo/config.toml index 95c72bd7..a5aa7c9e 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,3 +1,12 @@ +[target.wasm32-wasip1] +rustflags = [ + "-C", + "target-feature=+atomics,+bulk-memory,+mutable-globals,+simd128", + "-C", + "link-arg=--max-memory=4294967296", +] +runner = "scripts/wasm-runner.sh" + [target.wasm32-wasip1-threads] rustflags = [ "-C", @@ -5,4 +14,4 @@ rustflags = [ "-C", "link-arg=--max-memory=4294967296", ] -runner = "wasmtime --wasi threads" +runner = "scripts/wasm-runner.sh" diff --git a/scripts/wasm-runner.sh b/scripts/wasm-runner.sh new file mode 100755 index 00000000..9ece7ff6 --- /dev/null +++ b/scripts/wasm-runner.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [ -z "${WASM_HARNESS_ENV_RAYON_NUM_THREADS:-}" ]; then + if command -v nproc >/dev/null 2>&1; then + cores=$(nproc) + elif command -v sysctl >/dev/null 2>&1; then + cores=$(sysctl -n hw.ncpu) + else + cores=1 + fi + export WASM_HARNESS_ENV_RAYON_NUM_THREADS=$cores +fi + +exec wasm-harness "$@"