Erlang/OTP release 29

Erlang 29, a functional programming language designed for developing distributed, fault-tolerant applications that support parallel, real-time processing, has been released. The language has found widespread adoption in areas such as telecommunications, banking, e-commerce, computer telephony, and instant messaging. OTP 29 (Open Telecom Platform), a companion set of libraries and components for developing distributed systems in Erlang, was released simultaneously.

Main innovations:

  • The shell and exec services, as well as the SFTP subsystem, are disabled by default in the SSH server. Executing Erlang code by authenticated users via SSH now requires a configuration change. The hybrid key exchange algorithm mlkem768x25519-sha256 is enabled by default in SSH.
  • The SSL library's default configuration sets the highest priority to the quantum-resistant hybrid key exchange algorithm "x25519mlkem768", which is a combination of X25519 ECDH and the ML-KEM (CRYSTALS-Kyber) algorithm.
  • The "-unsafe" attribute has been added for marking functions as unsafe. In the Erlang/OTP library, such functions are marked, and the compiler now issues a warning for them. The ability to track calls to unsafe functions and functions without documentation via xref has been added.
  • To ensure proper operation of third-party build tools such as Rebar3, filtering of ignored calls (ignore_xref) is now performed directly inside xref.
  • Added the ct_doctest module for automatic testing of code examples from the documentation.
  • Added the io_ansi module for creating console applications that support substitution of ANSI sequences (Virtual Terminal Sequences) into the terminal, for example, to change the style and color of text.
  • When searching for file paths with code (PATH), the current directory ("."") has been moved from the first to the last position in the list and is now checked last.
  • Stopped generating 32-bit assemblies for Windows.
  • A fully-fledged separate data type for records (native record, EEP-79) has been implemented, which can be used instead of traditional records built on tuples.
  • Added "is_integer/3" checker to check if integers are within a range (e.g. "is_integer(I, 0, 100)").
  • Implemented multiple-valued list comprehensions (EEP-78) that return multiple items per iteration (e.g., "[-I, I || I 42 || K

    Source: opennet.ru
Buy reliable hosting for sites with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster