[erlang-questions] OTP 21.0 has been released

Henrik Nord X henrik.x.nord@REDACTED
Tue Jun 19 17:07:31 CEST 2018

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

    All Corba applications are now moved from the OTP repository
    A new Corba repository will be created https://github.com/erlang
    New applications ftp and tftp, moved from inets
    ssl no longer supports 3_DES cipher suites or RSA-key exchange
cipher suites by default
    erlang:monitor on a primitive node (erl_interface, jinterface, etc)
will no longer fail with badarg exception. Instead a monitor will be
created, but it will only supervise the connection to the node.


    Enhanced IO scalability
    Support for usage of distribution controller processes for
alternative transports, routing etc
    compact instructions on 64bit systems for code below 4GB 20% less
memory for loaded code
    Rewrite of the efile-driver with NIFs and "Dirty schedulers"
resulting in faster file operations
    non-smp VM removed
    link and monitor optimized for scalability
    os:getenv/putenv now work on thread-safe emulation. No longer in
sync with libc getenv(3). Manual synchronization will be needed.


    Misc compiler optimizations including contributions from the Elixir
team resulting in 10% improvements in benchmarks
    "Tuple calls" have been removed from the run-time system.
    Code such as f({ok, Val}) -> {ok, Val} is now automatically
rewritten to f({ok, Val} = Tuple) -> Tuple. this reduces code size,
execution time, and removed GC pressure.
    More information in stacktrace from a number of operators
    erlang:get_stacktrace/0 deprecated to be replaced with try ...
catch C:R:Stacktrace -> ...
    Creation of small maps with literal keys optimized.
    A new predifined macro `OTP_RELEASE` and preprocessor directives `-
if` and `-elif`


    DTLS is now supported in the SSL application
    Enhanced support for distribution over TLS
    "unsecure" ciphers removed from defaults in SSL and SSH.
    A new option value defined to facilitate implementing exec servers.
Old option kept for compatibility, but now gives errors on stderror.

Standard libraries:

    New API for logging, logger
    New uri_string module for parsing URIs according to "The standard"
    New function lists:search(list,fun/1) -> {ok, Value} | false
    Changed default behaviour of .erlang loading. escript, erlc,
dialyzer and typer no longer load an .erlang at all.

For more details see

For installation instructions please consult the README file that is
part of the distribution.

Pre build versions for Windows can be fetched here:

Online documentation can be browsed here:

The Erlang/OTP source can also be found at GitHub in the official
Erlang repository, Here: OTP-21.0

Please report any new issues via Erlang/OTPs puplic issue tracker


We want to thank all of you who sent us patches, suggestions and bug

Thank you for all your contributions!

The Erlang/OTP team at Ericsson

More information about the erlang-questions mailing list