Roundtrip encoding of values are unequal under Clojure 1.6

Description

While running the tests on https://github.com/danielcompton/data.fressian-test I found this bug:

Changing the key [3] to :x

or removing another kv pair

will make the roundtrip encoding of Fressian values equal.

This is because of the changes in hashing behaviour introduced in 1.6 and relates to CLJ-1372. I think there may also be some interaction with Fressian's creation of ArrayMaps for maps with less than 8 kv pairs.

One fix would be to make sure data.fressian always returns persistent Clojure data structures, so it avoids tripping over Clojure no longer having Java data structures be equal to their analogous Clojure ones.

Environment

Clojure 1.6

Activity

Show:
Daniel Compton
November 13, 2014, 9:06 PM

Clarify issue.

Assignee

Stuart Halloway

Reporter

Daniel Compton

Labels

None

Approval

None

Patch

None

Priority

Major
Configure