Allow imports in individual files

main
Ashelyn Dawn 12 months ago
parent c9661a5858
commit 397eaa13db

1
.gitignore vendored

@ -1,2 +1,3 @@
intermediate.wat
output.wasmu
src

@ -3,25 +3,32 @@ INTERMEDIATE=intermediate.wat
read -r -d '' PREAMBLE <<'EOF'
(module $main
(import "wasi_unstable" "proc_exit" (func $proc_exit (param i32)))
(memory (export "memory") 10)
EOF
read -r -d '' EPILOGUE <<'EOF'
(memory $memory (export "memory") 10)
)
EOF
# clear file
> $INTERMEDIATE
# remove file when done
trap "err=$?; rm $INTERMEDIATE; exit $err" EXIT
# load all sources
find ./src | grep -e '\.wat$' | xargs cat > $INTERMEDIATE
# Separate out imports (must be defined first)
IMPORT_REGEX='^\(import .*$'
IMPORTS="$(cat $INTERMEDIATE | grep -E "$IMPORT_REGEX")"
NONIMPORTS="$(cat $INTERMEDIATE | grep -vE "$IMPORT_REGEX")"
# generate file
echo "$PREAMBLE" >> $INTERMEDIATE
find ./src | grep -e '\.wat$' | xargs cat | sed 's/^./ &/'>> $INTERMEDIATE
echo "$PREAMBLE" > $INTERMEDIATE
echo "" >> $INTERMEDIATE
echo "$IMPORTS" >> $INTERMEDIATE
echo "" >> $INTERMEDIATE
echo "$NONIMPORTS" >> $INTERMEDIATE
echo "$EPILOGUE" >> $INTERMEDIATE
# test file
wasmer inspect $INTERMEDIATE
wasmer compile -o ./output.wasmu $INTERMEDIATE

@ -3,11 +3,15 @@
i32.const 4
call $test
i32.load $memory i32.const 0
call $proc_exit
unreachable
)
(import "wasi_unstable" "proc_exit" (func $proc_exit (param i32)))
(func $test (param $a i32) (param $b i32) (result i32)
local.get $a
local.get $b

Loading…
Cancel
Save