Clojure 1.9 is now available!

Clojure 1.9 introduces two major new features: integration with spec and command line tools.

spec (rationale, guide) is a library for describing the structure of data and functions with support for:

Validation

Error reporting

Destructuring

Instrumentation

Test-data generation

Generative test generation

Documentation

Clojure integrates spec via two new libraries (still in alpha):

spec.alpha - spec implementation

core.specs.alpha - specifications for Clojure itself

This modularization facilitates refinement of spec separate from the Clojure release cycle.

The command line tools (getting started, guide, reference) provide:

Quick and easy install

Clojure REPL and runner

Use of Maven and local dependencies

A functional API for classpath management (tools.deps.alpha)

The installer is available for Mac developers in brew, for Linux users in a script, and for more platforms in the future.

For more information, see the complete list of all changes in Clojure 1.9 for more details.

Contributors

Thanks to all of the community members who contributed to Clojure 1.9 (first time contributors in bold):

Adam Clements

Andy Fingerhut

Brandon Bloom

Cameron Desautels

Chad Taylor

Chris Houser

David Bürgin

Eli Lindsey

Gerrit Jansen Van Vuuren

Ghadi Shayban

Greg Leppert

Jason Whitlark

Johan Mena

Jozef Wagner

Lee Yen-Chin

Matthew Boston

Michael Blume

Michał Marczyk

Nicola Mometto

Ruslan Al-Fakikh

Steffen Dienst

Steve Miner

Yegor Timoshenko

Zhuang XiaoDan