After a year of development, the release of the functional programming language Erlang 25 has occurred, aimed at developing distributed fault-tolerant applications that provide parallel processing of requests in real-time. The language has found applications in areas such as telecommunications, banking systems, e-commerce, computer telephony, and instant messaging organization. At the same time, the OTP 25 release (Open Telecom Platform) has been launched—a complementary set of libraries and components for developing distributed systems in Erlang.
Key innovations:
- A new construct "maybe … end" has been implemented for grouping multiple expressions into a single block, similar to "begin … end," but it does not lead to exporting variables from the block.
- Support for selective activation of features has been added, allowing for testing and gradual introduction of new and potentially incompatible language features and runtime without disrupting existing code. Features can be toggled on and off both at compile time and through the feature() directive in code files. For example, to enable the new maybe expression in code, you can specify "feature(maybe_expr,enable)".
- Optimizations based on type information have been implemented in the JIT compiler, and support for 64-bit ARM processors (AArch64) has been added. The support for the perf and gdb utilities has been improved, enabling the transmission of line number information in the code.
- A new peer module has been added with functions for launching connected Erlang nodes. After losing the control connection to the node, the node's operation is automatically terminated.
- Support for OpenSSL 3.0 has been added.
- In the maps module, functions groups_from_list/2 and groups_from_list/3 have been added for grouping a list of elements.
- In the lists module, functions uniq/1, uniq/2, enumerate/1, and enumerate/2 have been added for filtering out duplicate elements in a list and generating a list of tuples with element indices.
- A new very fast pseudorandom number generator has been implemented in the rand module.
Source: opennet.ru
