Chez Phase 0c + 0a hardening: collections decision + value-model fixes
0c: persistent HAMT on Chez is ~41x faster than Janet's HAMT on the collections map-churn (258.6 -> 6.3 ms), ~15x off mutable-native (inherent persistence cost). Decision: self-host the persistent collections in Clojure; substrate is not the bottleneck. See docs/chez-phase0-results.md. 0a hardening: NUL-separated keyword intern key (no ns/name collision), non-finite -safe jolt-hash. 37/37.
This commit is contained in:
parent
c9316dd372
commit
b3d0a91e3e
4 changed files with 183 additions and 2 deletions
|
|
@ -56,5 +56,12 @@
|
|||
(ok "hash 1 != 1.0" (not (= (jolt-hash 1) (jolt-hash 1.0))))
|
||||
(ok "hash str stable" (= (jolt-hash "abc") (jolt-hash "abc")))
|
||||
|
||||
;; regression: keyword intern key must not collide across ns/name boundary
|
||||
(ok "kw no boundary collide" (not (eq? (keyword "a" "b/c") (keyword "a/b" "c"))))
|
||||
;; regression: jolt-hash must not throw on non-finite floats
|
||||
(ok "hash +inf ok" (number? (jolt-hash +inf.0)))
|
||||
(ok "hash +nan ok" (number? (jolt-hash +nan.0)))
|
||||
(ok "hash inf != exact" (not (= (jolt-hash +inf.0) (jolt-hash 0))))
|
||||
|
||||
(printf "values-test: ~a/~a passed\n" (- total fails) total)
|
||||
(exit (if (> fails 0) 1 0))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue