Выпуск языка программирования Clojure 1.9.
После двух лет разработки подготовлен релиз динамического языка программирования Clojure 1.9, базирующегося на языковых конструкциях Lisp и сочетающего в себе возможности функционального и многопоточного программирования с чертами современных скриптовых языков. Код программ на языке Clojure транслируется в Java байт-код и выполняется на виртуальной машине JVM. Код компилятора Clojure, библиотек и runtime-компонентов распространяется в рамках лицензии Eclipse Public License.
Из ключевых улучшений отмечается:
Интеграция с библиотекой spec для описания, проверки корректности и тестирования структуры данных и функций. При помощи spec можно автоматизировать выполнение таких задач, как валидация, обработка ошибок, деструктуризация, инструментовка, генерация тестов и тестовых данных. В Clojure поддержка spec добавлена через две библиотеки: spec.alpha - непосредственно реализация spec и core.specs.alpha - спецификации для языка Clojure. Обе библиотеки пока имеют уровень качества альфа-версии;
Реализован набор утилит командной строки, предоставляющих интерактивную среду программирования Clojure REPL, а также инструменты для упрощения установки, компоненты для использование сборочной системы Maven и управления локальными зависимостями, API для управления classpath;
В clojure.core добавлена большая порция предикатов и типов, включая "boolean?", "int?", "double?", "uuid?", "any?", "ident?", "bytes?";
Добавлены новые функции bounded-count, swap-vals!, reset-vals! и halt-when;
Добавлен протокол Inst для типов, манипулирующих отрезками времени (применим для java.util.Date и java.time.Instant);
В отображениях (map) обеспечена возможность указания пространств имён для ключей, например '#:car{:make "Jeep" :model "Wrangler"}'.
Выпуск языка программирования Clojure 1.9