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.
Congratulations to all those involved in this exciting release!