Po roku vývoja bol vydaný funkčný programovací jazyk Erlang 25 zameraný na vývoj distribuovaných aplikácií odolných voči chybám, ktoré poskytujú paralelné spracovanie požiadaviek v reálnom čase. Jazyk sa rozšíril v oblastiach, ako sú telekomunikácie, bankové systémy, elektronický obchod, počítačová telefónia a instant messaging. Zároveň bolo vydané vydanie OTP 25 (Open Telecom Platform) - sprievodná sada knižníc a komponentov pre vývoj distribuovaných systémov v jazyku Erlang.
Hlavné inovácie:
- Реализована новая конструкция «maybe … end» для группировки нескольких выражений в одном блоке, похожая на «begin … end», но не приводящая к экспорту переменных из блока.
- Добавлена поддержка выборочной активации возможностей, позволяющая тестировать и постепенно внедрять новые и потенциально нарушающие совместимость возможности языка и runtime без нарушения работы существующего кода. Возможности могут включаться и отключаться как во время компиляции, так и при помощи директивы feature() в файлах с кодом. Например, для включения нового выражения maybe в коде можно указать «feature(maybe_expr,enable)».
- В JIT-компиляторе реализованы оптимизации на основе информации о типах данных и добавлена поддержка 64-разрядных процессоров ARM (AArch64). Улучшена поддержка утилит perf и gdb, в которые обеспечена передача сведений о номерах строк в коде.
- Добавлен новый модуль peer с функциями для запуска связанных узлов Erlang. После потери управляющего соединения с узлом работа узла автоматически завершается.
- Добавлена поддержка OpenSSL 3.0.
- В модуль maps добавлены функции groups_from_list/2 и groups_from_list/3 для группировки списка элементов.
- В модуль lists добавлены функции uniq/1, uniq/2, enumerate/1 и enumerate/2 для отсеивания дублирующихся элементов в списке и генерации списка кортежей с номерами элементов.
- В модуле rand реализован новый очень быстрый генератор псевдослучайных чисел.
Zdroj: opennet.ru