#!/bin/sh
# Compile two packages once and execute them with two private state graphs.
set -eu
emulator=${RAD_EMULATOR:-emulator}
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT HUP INT TERM
"$emulator" -memory-size=385024 -data-size=348160 -stack-size=1024 \
    -run bin/radiance.rv64.dev \
    -pkg support -mod test/shared/support.rad \
    -pkg app -mod test/shared/app.rad -entry app -ril "$work"
"$emulator" -run bin/shared.build.rv64 -- "$work/support.ril" "$work/app.ril" "$work/native.rv64"
"$emulator" -machine -run "$work/native.rv64"
printf 'shared packages: calls, callbacks, private pointers, and independent state passed\n'
