Chez Phase 2 (inc H): volatiles + sequence/transduce
sequence and transduce were seed natives nil on the prelude; the stateful transducer arities (take-nth/map-indexed/partition-by, overlay) drive a volatile via volatile!/vswap!/vreset!/deref, also unshimmed — so the whole (sequence xform coll) / (transduce xform f coll) surface crashed. natives-xform.ss: native volatiles (a jvol record + volatile!/vreset!/ vswap!/volatile? + a deref arm); transduce/sequence built on the existing into-xform / reduce-seq. The overlay vreset!/vswap!/volatile? drive a volatile through ref-put!/:jolt/type (tagged-table only), so they're overridden natively in post-prelude.ss. driver.janet: drain each chez pipe to EOF instead of a single ev/read. A program with a stdout side effect (newline) flushes in two writes and a lone ev/read sometimes caught only the first chunk, dropping the trailing value — an intermittent gate divergence. Now reads until the pipe closes. Prelude parity 1886 -> 1898, 0 new divergences. Floor raised to 1898.
This commit is contained in:
parent
e434a7d352
commit
6581df2d17
5 changed files with 83 additions and 7 deletions
|
|
@ -176,8 +176,12 @@
|
|||
# referential lazy-cat (fib) stays productive. Unblocks repeat/iterate/cycle/
|
||||
# dedupe/take-nth/keep/interpose/reductions/map-indexed/distinct/interleave/
|
||||
# tree-seq->flatten/partition-all/lazy-cat) 1886.
|
||||
# Phase 2 inc H (jolt-xjx6: native volatiles (jvol) + sequence/transduce over the
|
||||
# existing into-xform/reduce-seq — unblocks (sequence xform coll), (transduce
|
||||
# xform f coll), and the stateful transducer xforms take-nth/map-indexed/
|
||||
# partition-by that drive a volatile) 1898.
|
||||
# Strided runs scale down.
|
||||
(def base-floor (scan-number (or (os/getenv "JOLT_CHEZ_PRELUDE_FLOOR") "1886")))
|
||||
(def base-floor (scan-number (or (os/getenv "JOLT_CHEZ_PRELUDE_FLOOR") "1898")))
|
||||
(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)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue