#!/usr/bin/env bash # thunk07.sh — does the recorded PROCESS FAILURE ("build failed with 'undeclared # identifier __thunk_noargs'") correspond to any COMMITTED state? cd /tmp/rerun-v1-07 || exit 1 echo "== 1. does the literal string __thunk_noargs appear in any committed source, anywhere in the range? ==" found=0 for c in $(git rev-list 5718943^..c04d68f); do if git grep -q -- "__thunk_noargs" "$c" 2>/dev/null; then echo " HIT $(git rev-parse --short=9 "$c")"; found=1 fi done [ "$found" = 0 ] && echo " NONE — the literal never appears in any committed file in 5718943^..c04d68f" echo echo "== 2. __thunk_noargs is a NAME THE COMPILER GENERATES, not source text. Where does it come from? ==" git grep -n '"__thunk_" ' bc2f26d -- lang/el-compiler/src/codegen.el git grep -n '__thunk_' bc2f26d -- lang/el-compiler/src/codegen.el echo echo "== 3. in the C emitted at bc2f26d for a zero-param fn, is __thunk_noargs DECLARED before use? ==" W=$(mktemp -d) printf 'fn noargs() -> Int {\n return 3\n}\nfn main() {\n println(int_to_str(noargs()))\n}\n' > "$W/n07.el" /tmp/elc07b "$W/n07.el" > "$W/n07.c" grep -n "__thunk_noargs" "$W/n07.c" echo echo "-- compile that C standalone, strict C11, no GNU extensions --" cd /tmp/rerun-v1-07/lang || exit 1 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" cc $CF -o "$W/n07" "$W/n07.c" $SRCS $LF 2>&1 | grep -i "thunk\|error" || echo " (no error mentioning thunk)" "$W/n07"; echo " program exit=$? (printed value above)" echo echo "-- and the same emitted C under -pedantic-errors, which rejects the GNU empty-struct extension --" cc -pedantic-errors $CF -fsyntax-only "$W/n07.c" 2>&1 | head -20 || true echo " syntax-only rc above (empty output = clean)" rm -rf "$W" echo echo "== 4. does tests/integration/seam_caller.sh exist at ANY commit in the range? ==" found=0 for c in $(git rev-list 5718943^..c04d68f); do if git ls-tree -r --name-only "$c" -- lang/tests/integration/ 2>/dev/null | grep -q seam_caller; then echo " HIT $(git rev-parse --short=9 "$c")"; found=1 fi done [ "$found" = 0 ] && echo " NONE — seam_caller.sh does not exist at any commit in 5718943^..c04d68f" echo echo " integration harnesses present at bc2f26d:" git ls-tree -r --name-only bc2f26d -- lang/tests/integration/ echo echo "== 5. does any committed file anywhere in the range assert 21 or 111 for the wrap seam? ==" git grep -n -- "thrice" bc2f26d || echo " (thrice appears nowhere at bc2f26d... )" echo " --- grep for '21' / '111' as expected values in seam_binding.sh at bc2f26d ---" git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n '"21"\|"111"\|21$\|111$' || echo " NONE — no assertion on 21 or 111"