Вышел Erlang/OTP 17.0

9 апреля вышел мажорный релиз платформы Erlang/OTP 17.0.Erlang — функциональный язык программирования со строгой динамической типизацией, предназначенный для создания распределённых вычислительных систем.

В релизе 17.0 достаточно много новых возможностей и изменений. Первое, что можно заметить, изменена схема нумерации версий, раньше было R16B, R15B и так далее.

Добавлен новый тип данных — Maps Пожалуй одно из самых главных нововведений, которое все давно ждали. Лучше всего показать на примере: 1> Map = #{ key1 => «Value1», key2 => «Value2»}. #{key1 => «Value1», key2 => «Value2»} 2> maps: get (key1, Map). «Value1» #{key2:= MatchValue} = Map. #{key1 => «Value1», key2 => «Value2»} 4> MatchValue. «Value2» Map2 = Map#{key3 => «Value3»}. #{key1 => «Value1», key2 => «Value2», key3 => «Value3»} Map3 = Map2#{key1:= change_value1}. #{key1 => change_value1, key2 => «Value2», key3 => «Value3»} В текущем релизе, данный тип помечен как экспериментальный и имеет ряд ограничений, а именно: Значение можно извлекать только вспомогательными функциями, но нельзя использовать следующую конструкцию: Value = Map#{key1} Нельзя задать ключ, который не известен по время компиляции Полный список возможной, который будет реализован позже, находится здесь.Erlang/OTP портирован на ОС реального времени OSE OSE — это высоко-производительная, POSIX совместимая операционная система реального времени, которая призвана увеличить эффективность использования оборудования.В highlights указано, что не все часть платформы были портированы.Теперь анонимным функциям можно давать имена И использовать их рекурсивно: 1> TestFun = fun Factorial (0) → 1; Factorial (Num) when Num > 0 → Num * Factorial (Num — 1) end. #Fun 2> TestFun (4). 24 Усовершенствование поддержки юникода Например, все исходники теперь по умолчанию используют utf8. О других усовершенствованиях более подробно здесь.Так же Новая опция {active, N} для TCP, UDP и SCTP сокетов Улучшен маппинг из ASN.1 OCTET STRING и битовых строк в Erlang типы, и другие улучшения и оптимизации в ASN.1 Добавлен новый, опциональный, механизм балансировки использования планировщика Добавлена экспериментальная возможность использования «dirty» планироващиков Готовые пакеты для вашей системы можно найти здесь.Полный лог измененийОфициальная новость

P.S. не хватает кармы, чтобы опубликовать в тематических хаб.

© Habrahabr.ru