#!/bin/bash
# Runs the driver in a temporary copy, with the module compiled to a shared
# object first by sprite-make, and a second copy of the same module.
set -euo pipefail
cd "$(dirname "$0")"
: "${SPRITE_HOME:=$(cd ../../../.. && pwd)/install}"
export SPRITE_HOME
export SPRITE_INTERPRETER_FLAGS="${SPRITE_INTERPRETER_FLAGS:-backend:cxx}"
export SPRITE_ROTATION="${SPRITE_ROTATION:-steps:65536}"
export LC_ALL=C.UTF-8 PYTHONIOENCODING=utf-8
unset CURRYPATH
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT
mkdir "$work/second"
cp go.py Obj.curry Other.curry "$work"
cp Obj.curry "$work/second"
cd "$work"
echo '% sprite-make --so Obj.curry'
"$SPRITE_HOME/bin/sprite-make" --so Obj.curry
echo '% sprite-make --so second/Obj.curry'
"$SPRITE_HOME/bin/sprite-make" --so second/Obj.curry
echo '% python go.py'
"$SPRITE_HOME/bin/python" go.py
echo "exit status $?"
