# The jolt conformance spec This directory defines jolt's behavior as a **host-neutral, executable language specification**: a data file of cases, certified against reference Clojure, with a feature profile that lets any runtime declare a conformance *level*. The goal is to make hosting jolt on a new runtime (and proving it correct) a mechanical exercise: read one data file, run each case, compare, report. ## The artifacts | File | Role | Generated by | |------|------|--------------| | `test/chez/corpus.edn` | **The spec.** ~3570 cases of `{:suite :label :expected :actual :portability}`, `:expected` **sourced from reference JVM Clojure**. | `test/conformance/regen-corpus.clj` | | `test/conformance/profile.edn` | Per-case **feature classification** — which non-portable cases need which host capability. | `certify.clj --profile` | | `test/conformance/known-divergences.edn` | The few rows whose JVM value is an opaque host object that can't round-trip to readable source (Java arrays/transients/atoms/beans/proxies print as `#object[..@addr]`), so the corpus keeps jolt's value. | `regen-corpus.clj` leftovers, hand-checked | | `test/conformance/regen-corpus.clj` | Sources every `:expected` from reference **JVM Clojure** in one process. | — | | `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`. **`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 ```edn {:suite "numbers / arithmetic" ; grouping; " ::