Выпуск языка программирования Clojure 1.12

После двух с половиной лет разработки представлен релиз динамического языка программирования Clojure 1.12, базирующегося на языковых конструкциях Lisp и сочетающего в себе возможности функционального и многопоточного программирования с чертами современных скриптовых языков. Код программ на языке Clojure транслируется в Java байт-код и выполняется на виртуальной машине JVM. Код компилятора Clojure, библиотек и runtime-компонентов распространяется в рамках лицензии Eclipse Public License.

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

  • Добавлены функции для динамической загрузки библиотек в интерактивном режиме REPL (Read-Eval-Print Loop) без перезапуска JVM и без потери состояния выполнения.

  • В Clojure CLI добавлена функция invoke-tool для вызова вспомогательных функций в отдельных процессах.

  • В дополнение к clojure.java.shell добавлено новое пространство имён clojure.java.process, упрощающее запуск внешних процессов и организацию обмена данными с ними.

  • Предоставлена возможность обращения к Java-методам как к обычным функциям (компилятор автоматически сгенерирует обёртку).

  • Добавлена поддержка нового синтаксиса вызова методов с указанием имени класса, в котором они определены: Class/method (вызов статического метода), Class/.method (вызов экземпляра метода) и Class/new (вызов конструктора).

  • Предоставлена возможность обращения к массивам, используя синтаксис «ComponentClass/#dimensions», например, для ссылки на класс c двумерным массивом строк можно указать «String/2».

  • Устранена уязвимость (CVE-2024–22871), приводящая к зацикливанию при чтении определённым образом сериализированных объектов.



Источник: http://www.opennet.ru/opennews/art.shtml? num=61827

© OpenNet