Today Clojure version 1.1.0-rc1 has been released. It was released quickly after rc0. I have not found an online version of the release notes, so I am publishing them on this site.

This is an important achievement, one that provides a number of performance improvements and lays the foundation to many more improvements to come.

These are the some of most substantial feature additions in 1.1.0:

  • Transients: Allows persistent data structures to become mutable temporarily, in a way that is transparent to the rest of the application and that is also thread safe. This alone can provide big performance gains on large data structures.
  • Chunked Seqs: Allows to process data sequentially by small blocks, called 'chunks'. This reduces the overhead of accessing the elements one by one.
  • Futures: Futures represent asynchronous computations. They are away to get code to run in another thread, and obtain the result.
  • Promises: A promise is a synchronization construct that can be used to deliver a value from one thread to another. Until the value has been delivered, any attempt to dereference the promise will block.
  • clojure.test: the former clojure.contrib.test-is is now part of clojure. There is also JUnit compatible reporting.
You can download the new release candidate here: http://clojure.googlecode.com/files/clojure-1.1.0-rc1.zip and you can read a copy of the release notes here.

Congratulations to all those involved in this exciting release!