Conformance inc3: promote the corpus to a documented portable spec
Makes the host-neutral corpus a first-class language specification with conformance levels, not just a regression suite. - [suite label] is now a unique, stable case id (extract-corpus disambiguates duplicate labels with ' (N)' — one collision existed). - certify.clj --profile emits test/conformance/profile.edn: every non-portable case classified by the host feature it requires (numerics/double-only, concurrency/snapshot, host/jvm-interop, host/arrays, host/janet, async/core-async, runtime/eval, reader/jolt, printer/jolt, strictness/jolt, impl/representation, bug). 2670 of 2919 cases are portable (pass on any faithful Clojure); 249 are feature-gated. - SPEC.md documents the contract: row schema, the JVM oracle, conformance levels, the feature vocabulary, and a worked new-runtime harness — so hosting jolt elsewhere and proving it correct is read-one-file mechanical. Janet gate 155 files 0 failed; certify + zero-janet gates green.
This commit is contained in:
parent
635bbbcc27
commit
f54e99cc08
6 changed files with 1223 additions and 3 deletions
|
|
@ -1,5 +1,10 @@
|
|||
# Conformance: certifying the corpus against reference Clojure
|
||||
|
||||
> **See [SPEC.md](SPEC.md)** for the full host-neutral language-spec contract: the
|
||||
> corpus schema, conformance levels, the feature profile, and how to host jolt on a
|
||||
> new runtime. This README covers the certification tooling specifically.
|
||||
|
||||
|
||||
The corpus (`test/chez/corpus.edn`) is jolt's host-neutral behavioral suite — one
|
||||
row per case: `{:suite :label :expected :actual}`, where `:actual` is a Clojure
|
||||
source expression and `:expected` its result (or `:throws`). Runtime harnesses
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue