rand-nth follows the reference shape; refresh doc counts and the corpus floor
rand-nth vec'd its argument, so (rand-nth nil) hit index-out-of-bounds through the empty vector where the reference's (nth coll (rand-int (count coll))) returns nil (and a set throws) — the last genuinely-fixable row in the suite baseline; rand-nth is fully clean now. Corpus/README counts updated to the current ~3570 rows, the run-corpus regression floor raised from 2730 to 3390 to match current parity, and the stale traceability line dropped.
This commit is contained in:
parent
ab10e68218
commit
a67dbdb93d
7 changed files with 3578 additions and 3578 deletions
|
|
@ -7,7 +7,7 @@ test` from the repo root.
|
|||
|
||||
## The spec corpus
|
||||
|
||||
`corpus.edn` is the contract: ~2920 rows `{:suite :label :expected :actual}`, with
|
||||
`corpus.edn` is the contract: ~3570 rows `{:suite :label :expected :actual :portability}`, with
|
||||
`:expected` sourced from reference JVM Clojure by `test/conformance/regen-corpus.clj`.
|
||||
It is frozen (the canonical source) — add or change cases here, then re-source the
|
||||
answers with `regen-corpus.clj` and re-certify with `test/conformance/certify.clj`.
|
||||
|
|
@ -22,7 +22,7 @@ answers with `regen-corpus.clj` and re-certify with `test/conformance/certify.cl
|
|||
|
||||
chez --script host/chez/run-corpus.ss
|
||||
JOLT_CORPUS_LIMIT=200 … # every-Nth stride, fast iteration
|
||||
JOLT_CHEZ_ZJ_FLOOR=N … # override the floor (default 2678)
|
||||
JOLT_CHEZ_ZJ_FLOOR=N … # override the floor (see run-corpus.ss)
|
||||
|
||||
- `run-unit.ss` — host-specific unit cases (`test/chez/unit.edn`) that aren't in the
|
||||
JVM-portable corpus: dot-forms, java statics, io, reader, walk, vars/namespaces,
|
||||
|
|
|
|||
7131
test/chez/corpus.edn
7131
test/chez/corpus.edn
File diff suppressed because it is too large
Load diff
|
|
@ -23,7 +23,6 @@ clojure.core-test.plus 11 0
|
|||
clojure.core-test.plus-squote 11 0
|
||||
clojure.core-test.pos-int-qmark 1 0
|
||||
clojure.core-test.quot 25 0
|
||||
clojure.core-test.rand-nth 0 1
|
||||
clojure.core-test.realized-qmark 1 0
|
||||
clojure.core-test.rem 16 0
|
||||
clojure.core-test.remove-watch 0 1
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ read one data file, run each case, compare, report.
|
|||
|
||||
| File | Role | Generated by |
|
||||
|------|------|--------------|
|
||||
| `test/chez/corpus.edn` | **The spec.** ~2900 cases of `{:suite :label :expected :actual}`, `:expected` **sourced from reference JVM Clojure**. | `test/conformance/regen-corpus.clj` |
|
||||
| `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. | — |
|
||||
|
|
@ -54,8 +54,8 @@ the canonical, frozen contract**: it is what every runtime consumes, what
|
|||
Historically every `:expected` was hand-written. `certify.clj` removes that
|
||||
weakness: it evaluates every `:actual` (and `:expected`) on **JVM Clojure** in a
|
||||
fresh `user` namespace and checks jolt's `:expected` against what real Clojure
|
||||
produces. Of ~2740 vanilla-certifiable rows, **>2730 match reference Clojure
|
||||
exactly**. The rest are classified (see below) — none are silently wrong.
|
||||
produces. Of ~3400 vanilla-certifiable rows, **all but ~26 allowlisted rows
|
||||
match reference Clojure exactly**. The rest are classified (see below) — none are silently wrong.
|
||||
|
||||
```sh
|
||||
clojure -M test/conformance/certify.clj # gate
|
||||
|
|
@ -243,8 +243,7 @@ documented model divergence — nothing in the baseline is an unexplained bug:
|
|||
- **vec of an array copies**: the reference ADOPTS an Object array (mutating
|
||||
the array mutates the vector); jolt copies — immutable semantics win over
|
||||
the implementation leak (`vec` namespace, one row).
|
||||
- **eval of JVM shapes** (`rand-nth`/`eval` residue): rows needing JVM-only
|
||||
evaluation shapes (e.g. evaluating a Java array literal).
|
||||
|
||||
|
||||
A future change that makes any of these rows pass will fail the cts gate as
|
||||
STALE, forcing this section and the baseline to be updated together.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue