An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Clojure 1.4.0, clj-time, congomongo

April 15, 2012 ·

Clojure 1.4.0 has been released and it includes several nice enhancements and some bug fixes. Everyone will have their favorites but mine include (in no particular order):

  • mapv and filterv (which return vectors) and reduce-kv (can treat a vector as a collection of indexed pairs)
  • require can take :refer and a list of symbols - or :all - so you no longer need to blanket 'use' a namespace
  • *compiler-options* so you can disable locals clearing to improve the debugging experience
  • = on char arguments, removing the reflection warning and improving performance
  • wrapping exceptions in RuntimeException no longer happens so you can catch the underlying exception more easily
  • syntactically broken tests using clojure.test/are no longer silently pass - this bit me with a patch submitted to CongoMongo!

So, yes, it's a small release (I didn't mention the new reader literals - I'm not ready to use those yet but I'm sure some people will find them very useful). Planning for 1.5.0 has already started. This is all part of the plan to have more frequent, digestible releases of Clojure - now that the big breakage of the 1.2 => 1.3 transition is out of the way (changes to numerics; changes to contrib).

Hopefully, you were already testing your code against 1.4.0 builds? Now you can update your "lein multi" tests (or lein2 profiles) to test against 1.4.0 final and 1.5.0-master-SNAPSHOT!

clj-time and congomongo have both been updated to test against 1.2.1, 1.3.0, 1.4.0 and 1.5.0-master-SNAPSHOT. The next release of clj-time will be 0.4.0 since its main dependency has changed from 1.2.1 to 1.3.0 now.

Tags: clojure

0 responses