clojure-dev

Ben Sless 2022-01-31T17:03:33.438419Z

I took a crack at a full implementation of specialized equality for concrete map, seems like I got about 2x speedups This is less a bump and more a question if I should pursue this further, submit a patch, etc, including what kind of tests you'd like to see. https://ask.clojure.org/index.php/11124/persistent-collections-implement-equiv-more-efficiently?show=11523

👀 1
Alex Miller (Clojure team) 2022-01-31T17:15:06.375079Z

thx, I've been working towards that ask question this morning, was going to turn it into a ticket

Ben Sless 2022-01-31T17:16:02.515889Z

Would you like to split it into two tickets for vectors and maps?

Alex Miller (Clojure team) 2022-01-31T17:18:52.133879Z

I'm not sure yet. it's unclear to me where exactly you are proposing to make this change?

Alex Miller (Clojure team) 2022-01-31T17:22:23.654059Z

is this like for APersistentMap.equiv() and APersistentVector.doEquiv() ?

Alex Miller (Clojure team) 2022-01-31T17:26:58.898709Z

if you were to characterize the set of cases where things can be most improved, what is that set? I'm trying to figure out how more narrowly state the title of the ask question

Ben Sless 2022-01-31T17:45:19.710709Z

One of the most painful use cases is using collections as keys, since after the hash lookup there's a call to equiv. Think about keys created with juxt, and all the relation functions in core.set