Pure-Chez test gates (no Janet)
Add a Janet-free gate so correctness can be judged with only Chez + Clojure: - host/chez/run-corpus.ss: corpus.edn vs JVM expecteds, lifting the per-case ns isolation from the old Janet driver; reads corpus.edn via the jolt reader. - host/chez/run-unit.ss + test/chez/unit.edn: the host-specific unit cases, evaluated in-process and compared to baked expecteds. - host/chez/selfcheck.sh: self-host fixpoint (bootstrap.ss rebuild == checked-in seed). - host/chez/smoke.sh: real bin/joltc CLI smoke. - host/chez/remint.sh: re-mint the seed to a byte-fixpoint after a source change. - Makefile: 'make test' runs the lot; 'make remint' rebuilds the seed. Numbers match the Janet gate: corpus 2679/2757 0 new div, unit 450/450, certify 0 new/0 stale. jolt-cf1q.6
This commit is contained in:
parent
9a273e71cd
commit
5c1fdfc336
7 changed files with 888 additions and 0 deletions
30
host/chez/remint.sh
Executable file
30
host/chez/remint.sh
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
# Re-mint the checked-in Chez seed. Run after changing a seed source — the reader
|
||||
# (host/chez/reader.ss), the analyzer/IR/backend (jolt-core/jolt/*.clj), or the
|
||||
# clojure.core overlay (jolt-core/clojure/core/*.clj). Iterates bootstrap.ss from the
|
||||
# current seed to a byte-fixpoint and overwrites host/chez/seed/.
|
||||
set -e
|
||||
root="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)"
|
||||
cd "$root"
|
||||
tmp="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp"' EXIT
|
||||
|
||||
cp host/chez/seed/prelude.ss "$tmp/cur-p.ss"
|
||||
cp host/chez/seed/image.ss "$tmp/cur-i.ss"
|
||||
i=0
|
||||
while [ "$i" -lt 8 ]; do
|
||||
i=$((i + 1))
|
||||
chez --script host/chez/bootstrap.ss \
|
||||
"$tmp/cur-p.ss" "$tmp/cur-i.ss" "$tmp/new-p.ss" "$tmp/new-i.ss" >/dev/null
|
||||
if diff -q "$tmp/cur-p.ss" "$tmp/new-p.ss" >/dev/null \
|
||||
&& diff -q "$tmp/cur-i.ss" "$tmp/new-i.ss" >/dev/null; then
|
||||
cp "$tmp/new-p.ss" host/chez/seed/prelude.ss
|
||||
cp "$tmp/new-i.ss" host/chez/seed/image.ss
|
||||
echo "re-minted seed (converged after $i pass(es))"
|
||||
exit 0
|
||||
fi
|
||||
cp "$tmp/new-p.ss" "$tmp/cur-p.ss"
|
||||
cp "$tmp/new-i.ss" "$tmp/cur-i.ss"
|
||||
done
|
||||
echo "re-mint did not converge in 8 passes" >&2
|
||||
exit 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue