All Versions
Latest Version
Avg Release Cycle
124 days
Latest Release

Changelog History
Page 1

  • v4.3 Changes

    • CLJ-1403 ns-resolve might throw ClassNotFoundException but should return nil
    • CLJ-2407 Fix bugs in Clojure unit tests
    • CLJ-1079 In reader, don't ignore explicit :line :col meta
  • v4.2 Changes

    • CLJ-2031 clojure.walk/postwalk does not preserve MapEntry type objects
    • CLJ-2349 Report correct line number for uncaught ExceptionInfo in clojure.test
    • CLJ-1764 partition-by runs infinite loop when one element of infinite partition is accessed
    • CLJ-1832 unchecked-* functions have different behavior on primitive longs vs boxed Longs
  • v4.1 Changes

    • CLJ-2297 PersistentHashMap leaks memory when keys are removed with without
    • CLJ-1587 PersistentArrayMap’s assoc doesn’t respect HASHTABLE_THRESHOLD
    • CLJ-2050 Remove redundant key comparisons in HashCollisionNode
    • CLJ-2089 Sorted colls with default comparator don’t check that first element is Comparable
  • v3.5 Changes

    • CLJ-908 Make default-data-reader-fn set!-able in REPL, similar to data-readers.
    • CLJ-783 Make clojure.inspector/inspect-tree work on sets.
    • CLJ-896 Make browse-url aware of xdg-open.
    • CLJ-1160 Fix clojure.core.reducers/mapcat does not stop on reduced? values.
    • CLJ-1121 -> and ->> have been rewritten to work with a broader set of macros.
    • CLJ-1105 clojure.walk now supports records.
    • CLJ-949 Removed all unnecessary cases of sneakyThrow.
    • CLJ-1238 Allow EdnReader to read foo// (matches LispReader behavior).
    • CLJ-1264 Remove uses of _ as a var in the Java code (causes warning in Java 8).
    • CLJ-394 Add record? predicate.
    • CLJ-1200 ArraySeq dead code cleanup, ArraySeq_short support added.
    • CLJ-1331 Primitive vectors should implement hasheq and use new hash algorithm
    • CLJ-1354 Make APersistentVector.SubVector public so other collections can access
    • CLJ-1353 Make awt run headless during the build process
  • v3.4 Changes

    • CLJ-1191 Improve apropos to show some indication of namespace of symbols found
    • CLJ-1378 Hints don't work with #() form of function
    • CLJ-1498 Removes owner-thread check from transients - this check was preventing some valid usage of transients in core.async where a transient is created on one thread and then used again in another pooled thread (while still maintaining thread isolation).
    • CLJ-803 Extracted IAtom interface implemented by Atom.
    • CLJ-1315 Don't initialize classes when importing them
    • CLJ-1330 Class name clash between top-level functions and defn'ed ones
    • CLJ-1349 Update to latest test.generative and add dependency on test.check
    • CLJ-1546 vec now works with things that only implement Iterable or IReduceInit
    • CLJ-1618 set now works with things that only implement Iterable or IReduceInit
    • CLJ-1633 PersistentList/creator doesn't handle ArraySeqs correctly
    • CLJ-1589 Clean up unused paths in InternalReduce
    • CLJ-1677 Add setLineNumber() to LineNumberingPushbackReader
    • CLJ-1667 Change test to avoid using hard-coded socket port
    • CLJ-1683 Change reduce tests to better catch reduce without init bugs
  • v3.3 Changes

    • 🖨 clojure.core/Throwable->map formerly returned StackTraceElements which were later handled by the printer. Now the StackTraceElements are converted to data such that the return value is pure Clojure data, as intended.
    • CLJ-2091 clojure.lang.APersistentVector#hashCode is not thread-safe
    • CLJ-2077 Clojure can't be loaded from the boot classpath under java 9
    • CLJ-2048 Specify type to avoid ClassCastException when stack trace is elided by JVM
    • CLJ-1914 Fixed race condition in concurrent range realization
    • CLJ-1887 IPersistentVector.length() - implement missing method
    • CLJ-1870 Fixed reloading a defmulti removes metadata on the var
    • CLJ-1860 Make -0.0 hash consistent with 0.0
    • CLJ-1841 bean - iterator was broken
    • CLJ-1793 Clear 'this' before calls in tail position
    • CLJ-1790 Fixed error extending protocols to Java arrays
    • CLJ-1714 using a class in a type hint shouldn’t load the class
    • CLJ-1705 vector-of - fix NullPointerException if given unrecognized type
    • CLJ-1398 - update doc urls
    • CLJ-1371 Numbers.divide(Object, Object) - add checks for NaN
    • CLJ-1358 doc - does not expand special cases properly (try, catch)
    • CLJ-1242 equals doesn't throw on sorted collections
    • CLJ-700 contains?, get, and find broken for transient collections
  • v3.2 Changes

    • CLJ-2170 fix improperly located docstrings
    • CLJ-2156 - doc char[] support
    • CLJ-2104 clojure.pprint docstring - fix typo
    • CLJ-2051 clojure.instant/validated docstring - fix typo
    • CLJ-2039 deftype - fix typo in docstring
    • CLJ-2028 filter, filterv, remove, take-while - fix docstrings
    • CLJ-1918 await - improve docstring re shutdown-agents
    • CLJ-1873 require, *data-readers* - add .cljc files to docstrings
    • CLJ-1859 zero?, pos?, neg? - fix docstrings
    • CLJ-1837 index-of, last-index-of - clarify docstrings
    • CLJ-1826 drop-last - fix docstring
    • CLJ-1159 - improve docstring
  • v3.1 Changes

    • CLJ-1279 Report correct arity count for function arity errors inside macros
    • CLJ-2386 Omit ex-info construction frames
    • CLJ-2394 Warn in pst that stack trace for syntax error failed before execution
    • CLJ-2396 Omit :in clauses when printing spec function errors if using default explain printer
    • CLJ-1797 Mention cljc in error when require fails
    • CLJ-1130 Improve error message when unable to match static method
  • v2.34 Changes

    Clojure APIs that pass work off to other threads (e.g. send, send-off, pmap, future) now convey the dynamic bindings of the calling thread:

    (def ^:dynamic *num* 1)
    (binding [*num* 2] (future (println *num*)))
    ;; prints "2", not "1"
  • v2.33 Changes

    You can hint different arities separately:

    (defn hinted
      (^String [])
      (^Integer [a])
      (^java.util.List [a & args]))

    🚀 This is preferred over hinting the function name. Hinting the function name is still allowed for backward compatibility, but will likely be deprecated in a future release.