Docs + CI for the Chez-only substrate
Rewrite the README, CLAUDE.md build/architecture sections, test/chez/README, and conformance SPEC for the Janet-free world: bin/joltc + make test, the self-hosting bootstrap, the frozen JVM-sourced corpus. CI installs Chez + JDK/ Clojure and runs 'make test' (was Janet/jpm). jolt-cf1q.6
This commit is contained in:
parent
58d03d67be
commit
750ce05716
5 changed files with 169 additions and 386 deletions
|
|
@ -17,10 +17,9 @@ read one data file, run each case, compare, report.
|
|||
| `test/conformance/certify.clj` | Certifies `:expected` against reference **JVM Clojure**; gates on new/stale divergences; emits the profile. | — |
|
||||
|
||||
`corpus.edn` is **JVM-sourced**: `regen-corpus.clj` evaluates each case's `:actual`
|
||||
on reference JVM Clojure and writes the JVM value as `:expected`. The case *list*
|
||||
(the `:actual` strings) comes from `test/spec/*-spec.janet` via `extract-corpus.janet`,
|
||||
but the *answers* are the JVM's. **`corpus.edn` is the canonical contract**: it is
|
||||
what every runtime consumes and what `certify.clj` certifies.
|
||||
on reference JVM Clojure and writes the JVM value as `:expected`. **`corpus.edn` is
|
||||
the canonical, frozen contract**: it is what every runtime consumes, what
|
||||
`certify.clj` certifies, and where new cases are authored directly.
|
||||
|
||||
## Row schema
|
||||
|
||||
|
|
@ -101,17 +100,16 @@ implements. Current profile (≈2670 portable, ≈249 non-portable):
|
|||
3. Run it. Your **conformance level** is the set of feature families with no
|
||||
failures. Portable-only is the floor; each feature you implement raises it.
|
||||
|
||||
The two reference harnesses already do exactly this on Chez:
|
||||
`test/chez/run-corpus-prelude.janet` (Janet analyzer → Chez runtime) and
|
||||
`test/chez/run-corpus-zero-janet.janet` (Chez analyzer → Chez runtime), both with a
|
||||
regression floor.
|
||||
The reference harness does exactly this on Chez: `host/chez/run-corpus.ss` (the
|
||||
analyzer runs on Chez → Chez runtime), with a regression floor. Run it via `make
|
||||
corpus`.
|
||||
|
||||
## Maintaining the spec
|
||||
|
||||
- **Add/change cases**: edit `test/spec/*-spec.janet` or `conformance-test.janet`,
|
||||
then `janet test/chez/extract-corpus.janet` to regenerate `corpus.edn`.
|
||||
- **Add/change cases**: edit `test/chez/corpus.edn` directly, then re-source the
|
||||
answers with `regen-corpus.clj`.
|
||||
- **Re-certify**: `clojure -M test/conformance/certify.clj`. A new divergence is
|
||||
either a real bug (file it, mark the allowlist entry `:bug` + `:bead`) or a
|
||||
deliberate delta (classify it in `known-divergences.edn`).
|
||||
- **Refresh the profile**: re-run with `--profile test/conformance/profile.edn`.
|
||||
- **Re-floor the runtime gates** when parity rises (`run-corpus-*.janet`).
|
||||
- **Re-floor the runtime gate** when parity rises (`host/chez/run-corpus.ss`).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue