OTP 24
Erlang/OTP 24 is a new major release with new features, improvements as well as a few incompatibilities.
Below are some of the highlights of the release:
Highlights
compiler
- The compiler will now inline funs that are used only once immediately after their definition.
- Compiler warnings and errors now include column numbers in addition to line numbers.
- Variables bound between the keywords
'try'
and'of'
can now be used in the clauses following the'of'
keyword
(that is, in the success case when no exception was raised). - Generators in list and binary comprehensions will now
raise a{bad_generator,Generator}
exception if the
generator has an incorrect type
Similarly, when a
filter does not evaluate to a boolean, a
{bad_filter,Filter}
exception will be raised. - Warnings for expressions whose result was ignored that could be suppressed by
using the anonymous variable'_'
can now be suppressed with a variable beginning with'_'
. - Selective receive optimization will now be applied much
more often.
The newrecv_opt_info
compile flag can be used to print
diagnostics relating to this optimization.
You can read more about the selective receive
optimization in the Efficiency Guide.
erts, kernel, stdlib
-
hex encoding and decoding functions added in the binary module
-
The BeamAsm JIT-compiler has been added to Erlang/OTP and will give a significant performance boost for many applications.
The JIT-compiler is enabled by default on most x86 64-bit platforms that have a C++ compiler that can compile C++17.
To verify that a JIT enabled emulator is running you can useerlang:system_info(emu_flavor)
. -
A compatibility adaptor for
gen_tcp
to use the new socket API has been implemented (gen_tcp_socket
). -
Extended error information for failing BIF calls as proposed in EEP 54 has been implemented.
-
Process aliases as outlined by EEP 53 has been introduced.
-
Implementation of EEP 56 in supervisor. It adds the concept of significant children as well as the
auto_shutdown
supervisor flag. See the supervisor manual page for more information.
ftp
- Add support for FTPES (explicit FTP over TLS).
ssl
- Make TLS handshakes in Erlang distribution concurrent.
- TLS connections now support EdDSA certificates.
wx
- The application has been completely rewritten in order
to use wxWidgets version 3 as its base. - Added support for wxWebView.
edoc
- EDoc is now capable of emitting EEP-48 doc chunks. This means that, with some
configuration, community projects can now provide documentation for shell_docs
the same way that OTP libraries did since OTP 23.0.
For more details about new features and potential incompatibilities see
Pre built versions for Windows can be fetched here:
For a quicker build a tar file with all the platform independent parts already built (.beam files and doc chunks) can be found here:
Online documentation can be browsed here:
Many thanks to all the contributors.