Erlang/OTP 19.3 is the third service release for the 19 major release.
The service release contains mostly bug fixes and characteristics improvements but also some new features.
Some highlights for 19.3
crypto, ssh: The implementation of the key exchange algorithms
diffie-hellman-group-exchange-sha* are optimized, up to
a factor of 11 for the slowest ( = biggest and safest)
dialyzer: The peak memory consumption is reduced.
Analyzing modules with binary construction with huge
strings is now much faster.
erts: A received SIGTERM signal to beam will generate a
'stop' message to the init process and terminate the
Erlang VM nicely. This is equivalent to calling
kernel: The functions in the file module that take a list of
paths (e.g. file:path_consult/2) will now continue to
search in the path if the path contains something that
is not a directory.
kernel: Two OTP processes that are known to receive many
messages are rex (used by rpc) and error_logger.
Those processes will now store unprocessed messages
outside the process heap, which will potentially
decrease the cost of garbage collections.
public_key: New function pkix_verify_hostname/2,3 implements
certificate hostname checking. See the manual and RFC 6125.
public_key, ssh: The ssh host key fingerprint generation now also takes
a list of algorithms and returns a list of
corresponding fingerprints. See public_key:ssh_hostkey_fingerprint/2 and the option silently_accept_hosts in ssh:connect.
ssl: Move PEM cache to a dedicated process, to avoid making
the SSL manager process a bottleneck. This improves
scalability of TLS connections.
stdlib: filename:safe_relative_path/1 to sanitize a relative
path has been added.
Thanks to more than 20 different contributors
You can find the README and the full listing of changes for this service release at