Clojure 1.2 RC 2 is now available, along with a corresponding Clojure Contrib, at:
http://clojure.org/downloadsThere is one important change since RC1. Record/map equality is now symmetric in all cases. There are two
variants:
* In most cases, you should use =. Calls to = include type
information, so instances of different record types can never be =
to each other, or to plain maps.
* Calls to .equals are different. They respect the Java semantics
for maps, which is a requirement for correct interop. Type
information is *not* included, so any kind of map can be .equals
to any other.
Possible impacts for your programs:
* If you create a custom implementation of Clojure's IPersistentMap,
you probably want it to be able to be = to other maps. If so, all
you need to do is implement the marker interface
clojure.lang.MapEquivalence. Note that APersistentMap does this
for you.
A full list of changes is available at