16 April 2012

Релиз Clojure 1.4

ProgrammingClojure
image
После нескольких месяцев разработки вышла новая версия языка Clojure — 1.4. Clojure — Lisp'образный язык программирования общего назначения, работающий на платформах JVM и CLR, известный специальными средствами для упрощения разработки concurrency кода.

Среди изменений стоит отметить:

  • Появились mapv, filterv (который возращает векторы), reduce-kv (обрабатывает вектор как коллекцию индексированных пар)
  • require может использовать ключевое слово :refer. :refer может принимать набор символов из области видимости(namespace, ns) или :all для подтягивания всех публичных переменных, так что теперь нет необходимости перед этим описывать все ns
  • *compiler-options* можно отключить очистку локальных переменных (locals), тем самым улучшить опыт отладки
  • = для char аргументов, убрано reflection предупреждние и улучшена производительность
  • исключения больше не обрабатываются через RuntimeException, следовательно проще отлавливать основное исключение.
  • улучшена производительность contains?
  • clojure.core/hash больше не работает на основе .hashCode
  • Реализована компонента extensible reader, позволяющая парсить и сериализовать кастомизированные типы данных, с поддержкой дат и UUID, без использования Java.


Полный список изменений доступен в репозитории.
Релиз не очень большой, но сделаны важные улучшения в производительности и плавно начинают обкатывать Java 7.

Параллельно с релизом обновились некоторые интересные библиотеки, которые входят в состав Clojure Libraries:

Напомню, что разработкой Clojure/core занимается небольшая команда разработчиков во главе с основателем языка Ричем Хики (Рич подробно рассказывает о версии 1.4), а сообщество занимается разработкой дополнительных библиотек, которые постепенно могут входить в ядро или поставляться в пакете libraries.

P.S: Для тех кто еще не заметил, недавно, обновился Leiningen 2.0 preview3, облочка для разворачивания Clojure проектов.
P.P.S: Выступление Рича Хики по нововведениям в 1.4, с подробностями о extensible reader
Tags:clojurejvmlisp
Hubs: Programming Clojure
+17
1.3k 11
Comments 12
Ads
Top of the last 24 hours