Completed
Details
Assignee
UnassignedUnassignedReporter
Nicola MomettoNicola MomettoApproval
OkPatch
CodePriority
MinorFix versions
Details
Details
Assignee
Unassigned
UnassignedReporter
Nicola Mometto
Nicola MomettoApproval
Ok
Patch
Code
Priority
Fix versions
Created November 12, 2014 at 6:02 PM
Updated September 14, 2018 at 10:21 PM
Resolved September 14, 2018 at 10:21 PM
Currently a map with more than 8 elements will be converted from a PersistentArrayMap to a PersistentHashMap, but if using assoc, it will take 9 elements before the conversion happens:
user=> (class {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7}) clojure.lang.PersistentArrayMap user=> (class {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8}) clojure.lang.PersistentHashMap user=> (class (assoc {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7} 8 8)) clojure.lang.PersistentArrayMap user=> (class (assoc {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7} 8 8 9 9)) clojure.lang.PersistentHashMap
After patch:
user=> (class {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7}) clojure.lang.PersistentArrayMap user=> (class {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8}) clojure.lang.PersistentHashMap user=> (class (assoc {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7} 8 8)) clojure.lang.PersistentHashMap user=> (class (assoc {0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7} 8 8 9 9)) clojure.lang.PersistentHashMap
Patch: 0001-PersistentArrayMap-s-assoc-doesn-t-respect-HASHTABLE.patch
Screened by: Alex Miller