murmur only at return for ordered colls, sum only op for unordered, expose coll fixhash a la carte. Note map basis is different from Java due to being sum of hashes of map entries, which in turn follow vector
Change clojure.string/trim so it uses same defn of whitespace as other trim fns

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-983 - always update-proxy in proxy-super, regardless of whether call throws

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1176 - source throws error when *read-eval* is :unknown

Signed-off-by: Stuart Halloway <stu@cognitect.com>
Improves RestFn and ArraySeq perf

Eliminates a call to java.lang.Class.getComponentType, since the
result will always Object.class and that makes downstream uses nops.

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1200: Remove all vestiges of primitive array support from ArraySeq and oa field. Also add the inexplicably missing ArraySeq_short short[] variant.

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1318 - add support for destructuring namespaced keys

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1304: Fix minor doc/comment typos at some places.

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1338 - make Murmur3 public

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1328: Make several Clojure tests independent of hash function

Signed-off-by: Stuart Halloway <stu@cognitect.com>
Test exception propagation out of r/fold CLJ-1058

Signed-off-by: Stuart Halloway <stu@cognitect.com>
Allow Exceptions to propagate out of fold tasks CLJ-1058

Before this change, an java.lang.Exception thrown while processing by a
single task is caught and ignored. Infinite recursion comes from falling
out of the "if(tasks.size() == 1)" block into the following code that
splits multiple tasks.

This change adds a call to Util.sneakyThrow(e) in the catch block.

Demonstration of the problem, from Tom Jack:

user> (require '[clojure.core.reducers :as r])
nil
user> (r/fold (fn ([]) ([ret k v] (+ 3 "foo") ret))
              (into {} (map (juxt identity identity) (range 10000))))
StackOverflowError   clojure.lang.Numbers.add (Numbers.java:126)

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1302 - clarify order constraints of keys and vals

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1331: Update primitive vectors to use Murmur3 hash

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1335: Update hash for empty PersistList and LazySeq

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1339 - fix NPE in primitive vector .equals method

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1336 - make hashing mixing function available in Clojure for external collections. Add generative tests that check external hashing facilities match internal hashes.

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1344 - update mapHasheq function to call Murmur3. This is used by defrecord and some external collections

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1345 - update changelog for 1.6

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1348 - add hash-ordered-coll and hash-unordered-coll

Signed-off-by: Stuart Halloway <stu@cognitect.com>