diff --git a/host/chez/host-contract.ss b/host/chez/host-contract.ss index 158a489..02a2375 100644 --- a/host/chez/host-contract.ss +++ b/host/chez/host-contract.ss @@ -38,7 +38,10 @@ ;; --- form predicates -------------------------------------------------------- (define (hc-sym? x) (symbol-t? x)) -(define (hc-list? x) (or (empty-list-t? x) (and (cseq? x) (cseq-list? x)))) +;; ANY non-empty seq is a list form for analysis (a macro/eval form built via +;; concat/map/cons is a lazy cseq with list?=#f, but evaluating it still means +;; calling its head) — not just reader-built lists (jolt-cf1q.7). +(define (hc-list? x) (or (empty-list-t? x) (cseq? x))) (define (hc-vec? x) (pvec? x)) (define (hc-map? x) (and (pmap? x) (jolt-nil? (jolt-get x hc-kw-jolt-type)))) ;; A set form is the reader's tagged map {:jolt/type :jolt/set :value } OR a diff --git a/test/chez/run-corpus-zero-janet.janet b/test/chez/run-corpus-zero-janet.janet index 4e85574..30b4c3e 100644 --- a/test/chez/run-corpus-zero-janet.janet +++ b/test/chez/run-corpus-zero-janet.janet @@ -219,7 +219,7 @@ # 2685; deftype (P. args) constructor via host-new var fallback -> 2688; # date/time (Date/Timestamp/SimpleDateFormat/TimeZone) + clojure.edn/read over a # reader -> 2692. -(def base-floor (scan-number (or (os/getenv "JOLT_CHEZ_ZJ_FLOOR") "2692"))) +(def base-floor (scan-number (or (os/getenv "JOLT_CHEZ_ZJ_FLOOR") "2694"))) (def floor (if (os/getenv "JOLT_CORPUS_LIMIT") 0 base-floor)) (when (or (> (length diverged) 0) (< pass floor)) (printf "REGRESSION: pass %d < floor %d or %d new divergence(s)" pass floor (length diverged)))