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
39
Makefile
Normal file
39
Makefile
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# jolt — Clojure on Chez Scheme. Single substrate, no Janet.
|
||||
#
|
||||
# bin/joltc runs jolt directly off the checked-in seed (host/chez/seed/); there is no
|
||||
# build step. `make test` is the full gate. `make remint` rebuilds the seed after a
|
||||
# source change.
|
||||
|
||||
.PHONY: test corpus unit smoke selfhost certify remint
|
||||
|
||||
# Full gate. Each step exits non-zero on failure, failing the target.
|
||||
test: selfhost corpus unit smoke certify
|
||||
@echo "OK: all gates passed"
|
||||
|
||||
# Self-host fixpoint: bootstrap.ss rebuild == checked-in seed.
|
||||
selfhost:
|
||||
@sh host/chez/selfcheck.sh
|
||||
|
||||
# Corpus conformance vs JVM-sourced expecteds (allowlist + floor).
|
||||
corpus:
|
||||
@chez --script host/chez/run-corpus.ss
|
||||
|
||||
# Host-specific unit cases.
|
||||
unit:
|
||||
@chez --script host/chez/run-unit.ss
|
||||
|
||||
# Real-CLI smoke over bin/joltc.
|
||||
smoke:
|
||||
@sh host/chez/smoke.sh
|
||||
|
||||
# JVM oracle: certify the corpus against reference Clojure. Skips if clojure absent.
|
||||
certify:
|
||||
@if command -v clojure >/dev/null 2>&1; then \
|
||||
clojure -M test/conformance/certify.clj; \
|
||||
else \
|
||||
echo "certify: clojure not on PATH — skipped"; \
|
||||
fi
|
||||
|
||||
# Re-mint the seed after changing a seed source (reader/analyzer/backend/core).
|
||||
remint:
|
||||
@sh host/chez/remint.sh
|
||||
Loading…
Add table
Add a link
Reference in a new issue