Releases: erlang/otp
OTP 20.3
Erlang/OTP 20.3 is the third service release for the 20 major release.
The service release contains mostly bug fixes and characteristics
improvements but also some new features.
Some highlights for 20.3
-
ssl:
- Added new API functions to facilitate cipher suite
handling
- Added new API functions to facilitate cipher suite
-
erts, observer:
- More crash dump info such as: process binary virtual
heap stats, full info for process causing out-of-mem
during GC, more port related info, and dirty scheduler
info.
- More crash dump info such as: process binary virtual
-
inets:
- Add support for unix domain sockets in the http client.
You can find the README and the full listing of changes for this
service release at
http://www.erlang.org/download/otp_src_20.3.readme
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_20.3.tar.gz
http://www.erlang.org/download/otp_win32_20.3.exe
http://www.erlang.org/download/otp_win64_20.3.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please consult the README file that is
part
of the distribution.
The Erlang/OTP source can also be found at GitHub on the official
Erlang
repository, https://github.com/erlang/otp with tag OTP-20.3
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix
manual files
http://www.erlang.org/download/otp_doc_html_20.3.tar.gz
http://www.erlang.org/download/otp_doc_man_20.3.tar.gz
Please report any new issues via Erlang/OTPs public issue tracker
We want to thank all of those who sent us patches, suggestions and bug
reports!
Thank you!
The Erlang/OTP Team at Ericsson
OTP 20.2
Erlang/OTP 20.2 is the second service release for the 20 major release.
The service release contains mostly bug fixes and characteristics
improvements but also some new features.
Some highlights for 20.2
-
crypto, ssl:
- The crypto API is extended to use private/public keys
stored in an Engine for sign/verify or encrypt/decrypt
operations.
- The crypto API is extended to use private/public keys
-
The ssl application provides an API to use this new
engine concept in TLS. -
ssh:
- SSH can now fetch the host key from the private keys
stored in an Engine. See the crypto application for
details about Engines.
- SSH can now fetch the host key from the private keys
-
ssl:
- A new command line option -ssl_dist_optfile has been
added to facilitate specifying the many options needed
when using SSL as the distribution protocol.
- A new command line option -ssl_dist_optfile has been
-
stdlib:
- Improve performance of the new string functionality
when handling ASCII characters.
- Improve performance of the new string functionality
You can find the README and the full listing of changes for this
service release at
http://www.erlang.org/download/otp_src_20.2.readme
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_20.2.tar.gz
http://www.erlang.org/download/otp_win32_20.2.exe
http://www.erlang.org/download/otp_win64_20.2.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please consult the README file that is
part of the distribution.
The Erlang/OTP source can also be found at GitHub on the official
Erlang repository, https://github.com/erlang/otp with tag OTP-20.2
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix
manual files
http://www.erlang.org/download/otp_doc_html_20.2.tar.gz
http://www.erlang.org/download/otp_doc_man_20.2.tar.gz
Please report any new issues via Erlang/OTPs public issue tracker
We want to thank all of those who sent us patches, suggestions and bug
reports!
Thank you!
The Erlang/OTP Team at Ericsson
OTP 20.1
Erlang/OTP 20.1 is the first service release for the 20 major release.
The service release contains mostly bug fixes and characteristics improvements but also some new features.
Some highlights for 20.1
-
crypto, public_key: Extend crypto and public_key functions sign and verify with:
- support for RSASSA-PS padding for signatures and for
saltlength setting - X9.31 RSA padding.
- sha, sha224, sha256, sha384, and sha512 for dss
signatures as mentioned in NIST SP 800-57 Part 1. - ripemd160 to be used for rsa signatures.
- support for RSASSA-PS padding for signatures and for
-
A new tuple in
crypto:supports/0
reports supported MAC
algorithms. -
diameter:
- Add service option
decode_format
to allow incoming messages to be decoded into maps
instead of records. - Decode performance has been improved.
- Add service/transport option avp_dictionaries to give better support for dictionaries only defining AVPs.
- Add service option
-
erts: Upgraded the ERTS internal PCRE library from version 8.40 to version 8.41.
-
erts, kernel, tools: Profiling with lock counting can now be fully toggled at runtime in
the lock counting emulator (-emu_type lcnt). Everything
is enabled by default to match the old behavior, but
specific categories can be toggled at will with minimal
runtime overhead when disabled. Refer to the
documentation onlcnt:rt_mask/1
for details.lcnt:collect
andlcnt:clear
will no longer block all
other threads in the runtime system. This makes it possible to run the lock counting
under heavier load. -
erts: The
zlib
module has been refactored and all its operations will now yield appropriately,
allowing them to be used freely in concurrent applications. -
erts, tools: Add
erlang:iolist_to_iovec/1
, which converts an
iolist()
to anerlang:iovec()
, which is suitable for use
withenif_inspect_iovec()
. -
erts: Add new nif API functions for managing an I/O Queue.
The added functions are:enif_ioq_create()
,enif_ioq_destroy()
,enif_ioq_enq_binary()
,
enif_ioq_enqv()
,enif_ioq_deq()
,enif_ioq_peek()
,enif_inspect_iovec()
,enif_free_iovec()
-
observer/crashdump_viewer:
- Reading of crash dumps with many binaries is optimized.
- A progress bar is shown when the detail view for a process is opened.
- The cdv script now sets ERL_CRASH_DUMP_SECONDS=0 to
avoid generating a new crash dump from the node running the Crashdump Viewer.
-
observer:
Add system statistics and limits to frontpage in
observer. -
public_key, ssl**:
Improved error propagation and reports -
ssh: A new option
modify_algorithms
is implemented. It
enables specifying changes on the default algorithms
list. See the reference manual and the SSH User's Guide
chapter "Configuring algorithms in SSH". -
tools/xref: The predefined Xref analysis locals_not_used now understands
the-on_load()
attribute and does not report unused functions. -
tools/fprof: When sampling multiple processes and analyzing
with totals set to true, the output now sums together
all caller and callee entries which concerns the same
function. Previous behaviour was to report each
contributing entry separately.
You can find the README and the full listing of changes for this service release at
http://www.erlang.org/download/otp_src_20.1.readme
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_20.1.tar.gz
http://www.erlang.org/download/otp_win32_20.1.exe
http://www.erlang.org/download/otp_win64_20.1.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please consult the README file that is part
of the distribution.
The Erlang/OTP source can also be found at GitHub on the official Erlang
repository, https://github.com/erlang/otp with tag OTP-20.1
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_20.1.tar.gz
http://www.erlang.org/download/otp_doc_man_20.1.tar.gz
Please report any new issues via Erlang/OTPs public issue tracker
We want to thank all of those who sent us patches, suggestions and bug reports!
Thank you!
The Erlang/OTP Team at Ericsson
OTP 20.0
Erlang/OTP 20.0
Erlang/OTP 20.0 is a new major release with new features, quite a few (characteristics) improvements, as well as a few incompatibilities.
There are only minor changes compared to the second release candidate, some of them listed below:
- ERTS:
- In the OTP 20 release candidates the function
erlang:term_to_binary/1
changed the encoding of all atoms fromATOM_EXT
toATOM_UTF8_EXT
andSMALL_ATOM_UTF8_EXT
. This is now changed so that only atoms actually containing unicode characters are encoded with the UTF8 tags while other atoms are encodedATOM_EXT
just as before.
- In the OTP 20 release candidates the function
Here are some of the most important news in OTP 20:
Potential Incompatibilities
-
ERTS:
- The non SMP Erlang VM is deprecated and not built by default
- Remove deprecated
erlang:hash/2
- erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.
- The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs
seeerlang:check_process_code/3
. - The NIF library reload is not supported anymore.
- Atoms can now contain arbitrary unicode characters which means that the
DFLAG_UTF8_ATOMS
capability in the distribution protocol must be supported if an OTP 20 node should accept the connection with another node or library. Third party libraries which uses the distribution protocol need to be updated with this.
-
Asn1: Deprecated module and functions removed (
asn1rt
,asn1ct:encode/3
anddecode/3
) -
Ssh: client only option in a call to start a daemon will now fail
Highlights
Erts:
- Dirty schedulers enabled and supported on VM with SMP support.
- support for “dirty” BIFs and “dirty” GC.
- erlang:garbage_collect/2 for control of minor or major GC
- Erlang literals are no longer copied when sending messages.
- Improved performance for large ETS tables, >256 entries (except ordered_set)
- erlang:system_info/1 atom_count and atom_limit
- Reduced memory pressure by converting sub-binaries to heap-binaries during GC
- enif_select, map an external event to message
- Improvements of timers internally in the VM resulting in reduced memory consumption and more efficient administration for timers
Compiler:
- Code generation for complicated guards is improved.
- Warnings for repeated identical map keys.
#{'a'=>1, 'b'=>2, 'a'=>3}
will warn for the repeated keya
. - By default there is now a warning when
export_all
is used. Can be disabled - Pattern matching for maps is optimized
- New option
deterministic
to omit path to source + options info the BEAM file. - Atoms may now contain arbitrary unicode characters.
compile:file/2
has an option to include extra chunks in the BEAM file.
Misc other applications
- Significantly updated
string
module with unicode support and many new functions - crypto now supports OpenSSL 1.1
- Unnamed ets tables optimized
gen_fsm
is deprecated and replaced bygen_statem
- A new event manager to handle a subset of OS signals in Erlang
- Optimized sets add_element, del_element and union
- Added
rand:jump/0-1
- When a
gen_server
crashes, the stacktrace for the client will be printed to facilitate debugging. take/2
has been added todict
,orddict
, andgb_trees
.take_any/2
has been added togb_trees
erl_tar
support for long path names and new file formatsasn1
: the newmaps
option changes the representation ofSEQUENCE
to be maps instead of records- A TLS client will by default call
public_key:pkix_verify_hostname/2
to verify the hostname ssl
: DTLS documented in the API, experimentalssh
: improving security, removing and adding algorithms- New
math:fmod/2
For more details see
http://erlang.org/download/otp_src_20.0.readme
Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_20.0.exe
http://erlang.org/download/otp_win64_20.0.exe
On line documentation can be browsed here:
www.erlang.org/doc/
Thanks to all contributors.
OTP 20.0 Release Candidate 2
OTP 20 Release Candidate 2
This is the second of two release candidates before the OTP 20 release. The intention with this release is that you as users try it and give us feedback if something does not work as expected. Could be a bug, an unexpected incompatibility, a significant change of characteristics in negative direction, etc.
There are only minor changes compared to the first release candidate, some of them listed below:
- erts:
./configure --enable-lock-counter
will enable building of an additional emulator that has support for
lock counting. (The option previously existed, but would turn on lock counting in the default emulator
being built.) To start the lock-counting emulator, useerl -emu_type lcnt
. - kernel: Added the process_flag
message_queue_data
=off_heap
to thecode_server
process in order to
improve characteristics during code upgrade, which can generate a huge amount of messages.
Here are some of the most important news in OTP 20 (same as in RC1):
Potential Incompatibilities
-
ERTS:
- The non SMP Erlang VM is deprecated and not built by default
- Remove deprecated
erlang:hash/2
- erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.
- The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs
seeerlang:check_process_code/3
. - The NIF library reload is not supported anymore.
-
Asn1: Deprecated module and functions removed (
asn1rt
,asn1ct:encode/3
anddecode/3
) -
Ssh: client only option in a call to start a daemon will now fail
Highlights
Erts:
- Dirty schedulers enabled and supported on VM with SMP support.
- support for “dirty” BIFs and “dirty” GC.
- erlang:garbage_collect/2 for control of minor or major GC
- Erlang literals are no longer copied when sending messages.
- Improved performance for large ETS tables, >256 entries (except ordered_set)
- erlang:system_info/1 atom_count and atom_limit
- Reduced memory pressure by converting sub-binaries to heap-binaries during GC
- enif_select, map an external event to message
Compiler:
- Code generation for complicated guards is improved.
- Warnings for repeated identical map keys.
#{'a'=>1, 'b'=>2, 'a'=>3}
will warn for the repeated keya
. - By default there is now a warning when
export_all
is used. Can be disabled - Pattern matching for maps is optimized
- New option
deterministic
to omit path to source + options info the BEAM file. - Atoms may now contain arbitrary unicode characters.
compile:file/2
has an option to include extra chunks in the BEAM file.
Misc other applications
- Unnamed ets tables optimized
- A new event manager to handle a subset of OS signals in Erlang
- Optimized sets add_element, del_element and union
- Added
rand:jump/0-1
- When a
gen_server
crashes, the stacktrace for the client will be printed to facilitate debugging. take/2
has been added todict
,orddict
, andgb_trees
.take_any/2
has been added togb_trees
- Significantly updated string module with unicode support
erl_tar
support for long path names and new file formats- Dtls: Documented API, experimental
- SSH: improving security, removing and adding algorithms
- New
math:fmod/2
For more details see
http://erlang.org/download/otp_src_20.0-rc2.readme
Per built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_20.0-rc2.exe
http://erlang.org/download/otp_win64_20.0-rc2.exe
On line documentation can be browsed here:
www.erlang.org/documentation/doc-9.0-rc2/doc/
Thanks to all contributors.
OTP 20.0 Release Candidate 1
OTP 20 Release Candidate 1
This is the first of two release candidates before the OTP 20 release. The intention with this release is that you as users try it and give us feedback if something does not work as expected. Could be a bug, an unexpected incompatibility, a significant change of characteristics in negative direction, etc.
Here are some of the most important news:
Potential Incompatibilities
-
ERTS:
- The non SMP Erlang VM is deprecated and not built by default
- Remove deprecated
erlang:hash/2
- erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.
- The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs
seeerlang:check_process_code/3
. - The NIF library reload is not supported anymore.
-
Asn1: Deprecated module and functions removed (
asn1rt
,asn1ct:encode/3
anddecode/3
) -
Ssh: client only option in a call to start a daemon will now fail
Highlights
Erts:
- Dirty schedulers enabled and supported on VM with SMP support.
- support for “dirty” BIFs and “dirty” GC.
- erlang:garbage_collect/2 for control of minor or major GC
- Erlang literals are no longer copied when sending messages.
- Improved performance for large ETS tables, >256 entries (except ordered_set)
- erlang:system_info/1 atom_count and atom_limit
- Reduced memory pressure by converting sub-binaries to heap-binaries during GC
- enif_select, map an external event to message
Compiler:
- Code generation for complicated guards is improved.
- Warnings for repeated identical map keys.
#{'a'=>1, 'b'=>2, 'a'=>3}
will warn for the repeated keya
. - By default there is now a warning when
export_all
is used. Can be disabled - Pattern matching for maps is optimized
- New option
deterministic
to omit path to source + options info the BEAM file. - Atoms may now contain arbitrary unicode characters.
compile:file/2
has an option to include extra chunks in the BEAM file.
Misc other applications
- Unnamed ets tables optimized
- A new event manager to handle a subset of OS signals in Erlang
- Optimized sets add_element, del_element and union
- Added
rand:jump/0-1
- When a
gen_server
crashes, the stacktrace for the client will be printed to facilitate debugging. take/2
has been added todict
,orddict
, andgb_trees
.take_any/2
has been added togb_trees
- Significantly updated string module with unicode support
erl_tar
support for long path names and new file formats- Dtls: Documented API, experimental
- SSH: improving security, removing and adding algorithms
- New
math:fmod/2
For more details see
http://erlang.org/download/otp_src_20.0-rc1.readme
Per built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_20.0-rc1.exe
http://erlang.org/download/otp_win64_20.0-rc1.exe
On line documentation can be browsed here:
www.erlang.org/documentation/doc-9.0-rc1/doc/
Thanks to all contributors.
OTP 19.3
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)
group size. -
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
init:stop/0. -
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 arerex
(used byrpc
) anderror_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
inssh: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
http://www.erlang.org/download/otp_src_19.3.readme
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_19.3.tar.gz
http://www.erlang.org/download/otp_win32_19.3.exe
http://www.erlang.org/download/otp_win64_19.3.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please consult the README file that is part
of the distribution.
The Erlang/OTP source can also be found at GitHub on the official Erlang
repository, https://github.com/erlang/otp with tag OTP-19.3
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_19.3.tar.gz
http://www.erlang.org/download/otp_doc_man_19.3.tar.gz
Please report any new issues via Erlang/OTPs public issue tracker
We want to thank all of those who sent us patches, suggestions and bug reports!
Thank you!
The Erlang/OTP Team at Ericsson
OTP 19.2
Erlang/OTP 19.2 is the second service release for the 19 major release.
The service release contains mostly bug fixes and characteristics improvements.
Some highlights for 19.2
- STDLIB: The new behaviour gen_statem has been improved with 3 new
features: the possibility to use old style non-proxy timeouts
forgen_statem:call/2,3
, state entry code, and state
timeouts. These are backwards compatible. Minor code and
documentation improvements has been performed including a
borderline semantics correction of timeout zero handling. - SSL: Experimental version of DTLS. It is runnable but not complete
and cannot be considered reliable for production usage. To use
DTLS add the option{protocol, dtls}
to ssl:connect and ssl:listen. - SSH: Extended the option silently_accept_hosts for ssh:connect to
make it possible for the client to check the SSH host key
fingerprint string. Se the reference manual for SSH. - ~40 contributions since the previous service release OTP 19.1
You can find the README and the full listing of changes for this service release at
http://www.erlang.org/download/otp_src_19.2.readme
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_19.2.tar.gz
http://www.erlang.org/download/otp_win32_19.2.exe
http://www.erlang.org/download/otp_win64_19.2.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please consult the README file that is part
of the distribution.
The Erlang/OTP source can also be found at GitHub on the official Erlang
repository, https://github.com/erlang/otp with tag OTP-19.2
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_19.2.tar.gz
http://www.erlang.org/download/otp_doc_man_19.2.tar.gz
Please report any new issues via Erlang/OTPs public issue tracker
We want to thank all of those who sent us patches, suggestions and bug reports!
Thank you!
The Erlang/OTP Team at Ericsson
OTP 19.1
Erlang/OTP 19.1 is a service release on the 19 track with mostly bug fixes,
but is does contain a number of new features and characteristics improvements
as well.
Some highlights of the release are:
- erts: Improved dirty scheduler support. A purge of a module will not have to wait for completion of all ongoing dirty NIF calls.
- erts: Improved accuracy of timeouts on MacOS X.
- kernel: Add
net_kernel:setopts/2
andnet_kernel:getopts/2
to control options for distribution sockets in runtime. - asn1: Compiling multiple ASN.1 modules in the same directory with parallel make (
make -j
) should now be safe. - httpd: support for PUT and DELETE in mod_esi
- ~30 contributions since 19.0
You can find the Release Notes with more detailed info at
http://www.erlang.org/download/otp_src_19.1.readme
You can download the full source distribution from http://www.erlang.org/download/otp_src_19.1.tar.gz
Note: To unpack the TAR archive you need a GNU TAR compatible program. For installation instructions please read the README that is part of the distribution.
You can also find the source code at github.com in the official Erlang repository. Git tag OTP-19.1
https://github.com/erlang/otp/tree/OTP-19.1
The Windows binary distributions can be downloaded from
http://www.erlang.org/download/otp_win32_19.1.exe
http://www.erlang.org/download/otp_win64_19.1.exe
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_19.1.tar.gz
http://www.erlang.org/download/otp_doc_man_19.1.tar.gz
You can also read the documentation on-line here:
(see the Release Notes mentioned above for release notes which
are not updated in the doc, but the new functionality is)
We also want to thank those that sent us patches, suggestions and bug reports.
If you find bugs in Erlang/OTP report them via the public issue tracker at http://bugs.erlang.org
The Erlang/OTP Team at Ericsson
OTP 19.0
Erlang/OTP 19.0 has been released
Erlang/OTP 19.0 is a new major release with new features, quite a few (characteristics) improvements, as well as a few incompatibilities.
Some highlights of the release are:
- compiler, stdlib:
- New preprocessor macros
?FUNCTION_NAME
,?FUNCTION_ARITY
- New preprocessor directives
-error(Term)
and-warning(Term)
to cause a compilation error or warning, respectively.
- New preprocessor macros
- gen_statem a new state machine behavior
- mnesia_ext: plugin of external storage solutions to mnesia
- crypto: uses EVP interface in OpenSSL resulting in generally better performance and support for HW acceleration
- ssh: performance improvements, uses the new
gen_statem
behavior - ssl: enhanced error log messages
- dialyzer: the support for maps is very much extended both the type specification syntax and the type analysis.
- erts:
erlang:open_port(spawn, ...)
3-5 times faster- tracing, extensive improvements (scalability, speed, match specifications on send/receive, support for lttng, ...)
- dirty schedulers improved
- per process configurable handling of message_queue
- fast loading of multiple modules
- max_heap_size process flag
- erts/kernel:
Experimental support for Unix Domain Sockets
Example:gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])
- and much more ....
You can find the Release Notes with more detailed info at
http://www.erlang.org/download/otp_src_19.0.readme
You find the source code at github.com in the official Erlang repository.
Git tag OTP-19.0
https://github.com/erlang/otp/tree/OTP-19.0
You can also read the documentation on-line here:
(see the Release Notes mentioned above for release notes which
are not updated in the doc, but the new functionality is)
We also want to thank all of you that have contributed with new features, bug-fixes, suggestions and bug reports.
The Erlang/OTP Team at Ericsson