Erlang/OTP 28

This release of Erlang/OTP can be built from source or installed using pre-built packages for your OS or third-party tools (such as kerl or asdf).

Erlang/OTP 28 highlight blog post

docker run -it erlang:28

Documentation

  • SPDX 2.2 Source Software-Bill-Of-Materials for Erlang/OTP compliant with NTIA minimum requirements.

New language features

  • New strict generators have been added for comprehensions according to EEP 70.
  • Comprehensions have been extended with zip generators according to EEP 73.
  • For various error types, the compiler now tries to suggest potential fixes by adding “did you mean …?” at the end of error messages.
  • [EEP-69: Nominal Types] has been implemented. As a side effect, nominal types can encode opaque types. We changed all opaque-handling logic and improved opaque warnings in Dialyzer.
  • It is now possible to use any base for floating point numbers as described in EEP 75: Based Floating Point Literals.

Compiler and JIT improvements

  • The compiler’s alias analysis pass is now both faster and less conservative, allowing optimizations of records and binary construction to be applied in more cases.

ERTS / STDLIB

  • Module [re] has been updated to use PCRE2, which is mostly backward compatible with PCRE.
  • Functionality making it possible for processes to enable reception of priority messages has been introduced in accordance with EEP 76.
  • Added erlang:hibernate/0, which hibernates a process without discarding the stack.
  • An experimental API for a native debugger has been added.
  • The erl -noshell mode has been updated to have two sub modes called raw and cooked, where cooked is the old default behaviour and raw can be used to bypass the line-editing support of the native terminal.

Public Key / SSL

  • The ancient ASN.1 modules used in public_key has been replaced with more modern versions
  • The SSL application has been heavily optimized to allow higher throughput and lower latency.