Erlang OTP 22.1 is released

September 18, 2019 · by Henrik Nord

Potential Incompatibilities #

  • Mnesia: Transactions with sticky locks could with async_asym transactions be committed in the wrong order, since asym transactions are spawned on the remote nodes. To fix this bug the communication protocol between mnesia nodes had to be updated, thus mnesia will no longer be able to connect to nodes earlier than mnesia-4.14 ,first released in OTP-19.0.
  • Stdlib: Debugging of time-outs in gen_statem has been improved. Starting a time-out is now logged in sys:log and sys:trace. Running time-outs are visible in server crash logs, and with sys:get_status. Due to this system events {start_timer, Action, State} and {insert_timout, Event, State} have been added, which may surprise tools that rely on the format of these events. New features: The EventContent of a running time-out can be updated with {TimeoutType, update, NewEventContent}. Running time-outs can be cancelled with {TimeoutType, cancel} which is more readable than using Time = infinity.{rel, Name, Vsn, RelApps, Opts}.

Highlights #

Compiler: #

  • erlc can now automatically use a compile server to avoid starting an Erlang system for each file to be compiled in a multi-file project. See the documentation for how to enable it.

Standard libraries: #

  • SSL: Basic support for TLS 1.3 Client for experimental use. For more information see the Standards Compliance chapter of the User’s Guide.
  • crypto: The Message Authentication Codes (MAC) CMAC, HMAC and Poly1305 are unified into common functions in the New Crypto API. See the manual for CRYPTO. cipher_info/1 functions returns maps with information about the hash or cipher in the argument.

For more details see https://erlang.org/download/otp_src_22.1.readme

Pre built versions for Windows can be fetched here: https://erlang.org/download/otp_win32_22.1.exe https://erlang.org/download/otp_win64_22.1.exe

Online documentation can be browsed here: https://erlang.org/doc/search/

The source tarball can be fetched here: https://erlang.org/download/otp_src_22.1.tar.gz The documentation can be fetched here: https://erlang.org/download/otp_doc_html_22.1.tar.gz The man pages can be fetched here: https://erlang.org/download/otp_doc_man_22.1.tar.gz

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

https://github.com/erlang/otp

OTP-22.1

Thank you for all your contributions!