[erlang-questions] Erlang OTP 22.0-rc2 is available for testing!

Kenneth Lundin kenneth@REDACTED
Tue Mar 26 16:47:01 CET 2019

OTP 22 Release Candidate 2

This is the second of three planned release candidates before the OTP 22

The intention with this release is to get feedback from our users. All
feedback is welcome, even if it is only to say that it works for you, as it
lets us know that the release candidate got some testing.

Erlang/OTP 22 is a new major release with new features and improvements as
well as incompatibilities.
Potential Incompatibilities

   - gen_* behaviours: If logging of the last N messages through sys:log/2,3
   is active for the server, this log is included in the terminate report.
   - reltool: A new element, Opts, can now be included in a rel tuple in
   the reltool release specific configuration format: {rel, Name, Vsn,
   RelApps, Opts}.
   - All external pids/ports/refs created by erlang:list_to_pid and similar
   functions now compare equal to any other pid/port/ref with same number from
   that node.
   - The old legacy erl_interface library is deprecated as of OTP 22, and
   will be removed in OTP 23. This does not apply to the ei library.
   - VxWorks is deprecated as of OTP 22 and will be removed in OTP 23.

Additional highlights in release candidate 2

   - A simple socket API is provided through the socket module. This is a
   low level API that does *not* replace gen_[tcp|udp|sctp]. It is intended
   to *eventually* replace the inet driver. It also provides a basic API that
   facilitates the implementation of other protocols than TCP, UDP and SCTP.
   Known issues are; No support for the Windows OS (currently), a small term
   leakage. This feature will be classed as experimental in OTP 22.
   - ssl: Basic support for TLS 1.3 Server for experimental use.
   - In OTP 22, HiPE (the native code compiler) is not fully functional.
   The reasons for this are new BEAM instructions for binary matching that the
   HiPE native code compiler does not support. If erlc is invoked with the
   +native option, and if any of the new binary matching instructions are
   used, the compiler will issue a warning and produce a BEAM file without
   native code.
   - erts: Added the NIF function enif_term_type, which helps avoid long
   sequences of enif_is_xyz by returning the type of the given term. This
   is especially helpful for NIFs that serialize terms, such as JSON encoders,
   where it can improve both performance and readability.
   - crypto: The new hash_info/1 and cipher_info/1 functions returns maps
   with information about the hash or cipher in the argument.

Highlights in release candidate 1 Erts:

   - Support for Erlang Distribution protocol to split the payload of large
   signals into several fragments.
   - ETS option write_concurrency now also effects and improves scalability
   of ordered_set tables.
   - The length/1 BIF used to calculate the length of the list in one go
   without yielding, even if the list was very long. Now it yields when called
   with long lists.
   - A new (still experimental) module socket is introduced. It is
   implemented as a NIF and the idea is that it shall be as "close as
   possible" to the OS level socket interface.


   - The compiler has been rewritten to internally use an intermediate
   representation based on Static Single Assignment (SSA). The new
   intermediate representation makes more optimizations possible.
      - The binary matching optimizations are now applicable in many more
      circumstances than before.
      - Type optimizations are now applied across local function calls, and
      will remove a lot more redundant type tests than before.
   - All compiler options that can be given in the source file can now be
   given in the option list on the command line for erlc.

Standard libraries:

   - Cover now uses the counters module instead of ets for updating
   counters. The new function cover:local_only/0 allows running Cover in a
   restricted but faster local-only mode. The increase in speed will vary
   depending on the type of code being cover-compiled, as an example the
   compiler test suite runs more than twice as fast with the new Cover.
   - SSL now uses the new logger API, including log levels and verbose
   debug logging.

For more details see

Pre built versions for Windows can be fetched here:

Online documentation can be browsed here:

The Erlang/OTP source can also be found at GitHub on the official Erlang


OTP-22.0-rc2 <https://github.com/erlang/otp/releases/tag/OTP-22.0-rc2>
  Thank you for all your contributions!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190326/e9df9244/attachment.htm>

More information about the erlang-questions mailing list