...

четверг, 10 апреля 2014 г.

Вышел 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<erl_eval.30.106461118>
2> TestFun(4).
24




Усовершенствование поддержки юникода



Например, все исходники теперь по умолчанию используют utf8. О других усовершенствованиях более подробно здесь.
Так же




  • Новая опция {active, N} для TCP, UDP и SCTP сокетов

  • Улучшен маппинг из ASN.1 OCTET STRING и битовых строк в Erlang типы, и другие улучшения и оптимизации в ASN.1

  • Добавлен новый, опциональный, механизм балансировки использования планировщика

  • Добавлена экспериментальная возможность использования «dirty» планироващиков


Готовые пакеты для вашей системы можно найти здесь.

Полный лог изменений

Официальная новость


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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий