Fork me on GitHub

@jaihindhreddy is a patched version of CHAMP to use Clojure interfaces and hash functions (for benchmarking purpose)

parrot 8
💯 4
❤️ 4
👍 4

Thanks! I think I know what I'm doing this weekend!


Champs in clojurescript exist also


Can you spot where can I find clojurescript version?


Yep that’s what I was thinking of. There’s a talk also


Great, thanks!


Another wrinkle is that until recently Clojure PHM left empty nodes after dissoc, which caused pathological behavior in some of the champ vs hamt benchmarks


Huh, I know that I am slow to realize things sometimes, but it just finally hit me that while Clojure's built-in persistent data structures are (I believe) guaranteed to produce trees (not DAGs) of objects in memory (except for leaf elements that are identical), the confluently persistent ones like RRB vectors, etc. that can quickly concatenate/merge two arbitrary such data structures can be used to concatenate large data structures with themselves, and you can end up with all sorts of reuse of internal objects in a single collection.