bash -c cd lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-shared; ./dist/platform/elc elc-cli.el > $W/g1.c 2>/dev/null; cc $CF -o $W/elc1 $W/g1.c $SRCS $LF 2>/dev/null; $W/elc1 elc-cli.el > $W/g2.c 2>/dev/null; cc $CF -o $W/elc2 $W/g2.c $SRCS $LF 2>/dev/null; $W/elc2 elc-cli.el > $W/g3.c 2>/dev/null; printf "gen1 sha256 = %s\ngen2 sha256 = %s\ngen3 sha256 = %s\n" "$(shasum -a 256 $W/g1.c | cut -d\ -f1)" "$(shasum -a 256 $W/g2.c | cut -d\ -f1)" "$(shasum -a 256 $W/g3.c | cut -d\ -f1)"; if cmp -s $W/g2.c $W/g3.c; then echo "FIXPOINT gen2 == gen3 OK"; else echo "FIXPOINT gen2 != gen3 FAILED"; fi; if cmp -s $W/g1.c $W/g2.c; then echo "note: gen1 == gen2 (codegen output unchanged this cycle)"; else echo "note: gen1 != gen2, as expected whenever codegen output changes"; fi