core: migrate repeatedly to Clojure + fix char-not-callable / take count validation
Resolves the deferred repeatedly port (jolt-8qx). The blockers were two jolt leniencies vs Clojure, now fixed (and correct beyond repeatedly): - A char (a :jolt/type-tagged struct) fell into the struct-as-map branch of both jolt-call (compile path) and the interpreter's apply dispatch, so (\a) returned nil instead of throwing. Now only an UNtagged struct (a map literal) — or a record — is callable as a key lookup; tagged structs fall through to "Cannot call … as a function". Symbols are still handled (keyword-style get). - core-take didn't validate its count, letting Janet's >= silently compare an int to a char/string. It now rejects a non-number n like Clojure. With those, the canonical CLJ repeatedly matches: (first (repeatedly non-fn)) and (repeatedly non-number f) throw. Moved repeatedly to core/40-lazy.clj; removed core-repeatedly + its binding from the seed. These correctness fixes help broadly: repeatedly.cljc goes clean (19/10 -> 29/0), and the suite rises 4004 -> 4034 pass / 66 -> 67 clean. Baseline raised. Gate: conformance 262x3, lazy-infinite 44/44, clojure-test-suite 4034/67, fixpoint, self-host, sci, fallback-zero, specs+unit green.
This commit is contained in:
parent
cab1a75b75
commit
0fa55cd670
4 changed files with 19 additions and 18 deletions
|
|
@ -40,9 +40,9 @@
|
|||
# many cross-dialect files). Stable across runs.
|
||||
# Raised 3981 -> 4004 migrating 7 lazy seq fns to the Clojure overlay (40-lazy
|
||||
# tier): the canonical CLJ versions add coverage (e.g. distinct value-equality).
|
||||
(def baseline-pass 4004)
|
||||
(def baseline-pass 4034)
|
||||
# A file is "clean" when it ran with zero failures AND zero errors.
|
||||
(def baseline-clean-files 66)
|
||||
(def baseline-clean-files 67)
|
||||
# Per-file wall-clock budget (seconds). Normal files finish in well under 1s, so
|
||||
# this normally only fires on genuinely-infinite-sequence hangs. It's an env var
|
||||
# (JOLT_SUITE_TIMEOUT) so CI — whose runners are slower than a dev machine — can
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue