Releases: erlang/otp
OTP 21.0.7
Patch Package: OTP 21.0.7
Git Tag: OTP-21.0.7
Date: 2018-08-30
Trouble Report Id: OTP-15237, OTP-15269
Seq num: ERL-713
System: OTP
Release: 21
Application: erts-10.0.6
Predecessor: OTP 21.0.6
Check out the git tag OTP-21.0.7, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- erts-10.0.6 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.6 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15237 Application(s): erts
A race between termination of a process and resume of
the same process via erlang:resume_process/1 could
cause the VM to crash. This bug was introduced in erts
version 10.0 (OTP 21.0).
OTP-15269 Application(s): erts
Related Id(s): ERL-713
When tracing on running, in trace events could be lost
when a process was rescheduled between a dirty and a
normal scheduler.
Full runtime dependencies of erts-10.0.6: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.6
Patch Package: OTP 21.0.6
Git Tag: OTP-21.0.6
Date: 2018-08-24
Trouble Report Id: OTP-15203, OTP-15215, OTP-15233
Seq num:
System: OTP
Release: 21
Application: crypto-4.3.2, inets-7.0.1, ssl-9.0.1
Predecessor: OTP 21.0.5
Check out the git tag OTP-21.0.6, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- crypto-4.3.2 ----------------------------------------------------
---------------------------------------------------------------------
The crypto-4.3.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15233 Application(s): crypto
Update the crypto engine functions to handle multiple
loads of an engine.
engine_load/3/4 is updated so it doesn't add the engine
ID to OpenSSLs internal list of engines which makes it
possible to run the engine_load more than once if it
doesn't contain global data.
Added ensure_engine_loaded/2/3 which guarantees that
the engine just is loaded once and the following calls
just returns a reference to it. This is done by add the
ID to the internal OpenSSL list and check if it is
already registered when the function is called.
Added ensure_engine_unloaded/1/2 to unload engines
loaded with ensure_engine_loaded.
Then some more utility functions are added.
engine_add/1, adds the engine to OpenSSL internal list
engine_remove/1, remove the engine from OpenSSL
internal list
engine_get_id/1, fetch the engines id
engine_get_name/1, fetch the engine name
Full runtime dependencies of crypto-4.3.2: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- inets-7.0.1 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.0.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15215 Application(s): inets
Change status code for no mod found to handle request
to 501
Full runtime dependencies of inets-7.0.1: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
--- ssl-9.0.1 -------------------------------------------------------
---------------------------------------------------------------------
The ssl-9.0.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15203 Application(s): ssl
Correct cipher suite handling for ECDHE_*, the
incorrect handling could cause an incorrrect suite to
be selected and most likly fail the handshake.
Full runtime dependencies of ssl-9.0.1: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.5
Patch Package: OTP 21.0.5
Git Tag: OTP-21.0.5
Date: 2018-08-11
Trouble Report Id: OTP-15194, OTP-15204, OTP-15223, OTP-15225
Seq num: ERL-673, ERL-679
System: OTP
Release: 21
Application: compiler-7.2.3, crypto-4.3.1, erts-10.0.5
Predecessor: OTP 21.0.4
Check out the git tag OTP-21.0.5, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- POTENTIAL INCOMPATIBILITIES -------------------------------------
---------------------------------------------------------------------
OTP-15225 Application(s): erts
Fixed a bug causing some Erlang references to be
inconsistently ordered. This could for example cause
failure to look up certain elements with references as
keys in search data structures. This bug was introduced
in R13B02.
Thanks to Simon Cornish for finding the bug and
supplying a fix.
---------------------------------------------------------------------
--- compiler-7.2.3 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.2.3 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15204 Application(s): compiler
Related Id(s): ERL-679
Fixed an issue where files compiled with the
+deterministic option differed if they were compiled in
a different directory but were otherwise identical.
Full runtime dependencies of compiler-7.2.3: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- crypto-4.3.1 ----------------------------------------------------
---------------------------------------------------------------------
The crypto-4.3.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15194 Application(s): crypto
Related Id(s): ERL-673
Fixed a node crash in crypto:compute_key(ecdh, ...)
when passing a wrongly typed Others argument.
Full runtime dependencies of crypto-4.3.1: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- erts-10.0.5 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.5 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15223 Application(s): erts
Fixed a bug which caused an emulator crash when
enif_send() was called by a NIF that executed on a
dirty scheduler. The bug was either triggered when the
NIF called enif_send() without a message environment,
or when the process executing the NIF was send traced.
OTP-15225 Application(s): erts
*** POTENTIAL INCOMPATIBILITY ***
Fixed a bug causing some Erlang references to be
inconsistently ordered. This could for example cause
failure to look up certain elements with references as
keys in search data structures. This bug was introduced
in R13B02.
Thanks to Simon Cornish for finding the bug and
supplying a fix.
Full runtime dependencies of erts-10.0.5: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.4
Patch Package: OTP 21.0.4
Git Tag: OTP-21.0.4
Date: 2018-07-26
Trouble Report Id: OTP-15169, OTP-15184, OTP-15196
Seq num:
System: OTP
Release: 21
Application: erts-10.0.4
Predecessor: OTP 21.0.3
Check out the git tag OTP-21.0.4, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- erts-10.0.4 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.4 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15169 Application(s): erts
Fixed a bug that prevented the noshell option from
working correctly on Mac OS X and BSD.
OTP-15184 Application(s): erts
Fixed a crash when matching directly against a literal
map using a single key that had been saved on the
stack.
OTP-15196 Application(s): erts
Fix node crash when passing a bad time option to
file:read_file_info/2.
Full runtime dependencies of erts-10.0.4: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.3
Patch Package: OTP 21.0.3
Git Tag: OTP-21.0.3
Date: 2018-07-13
Trouble Report Id: OTP-15154, OTP-15183, OTP-15176
Seq num: ERIERL-198, ERIERL-202, ERL-640, ERL-670
System: OTP
Release: 21
Application: erts-10.0.3
Predecessor: OTP 21.0.2
Check out the git tag OTP-21.0.3, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- otp-21.0.3 ------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15176 Application(s): otp
Related Id(s): ERIERL-198, ERIERL-202, ERL-640,
OTP-14283, OTP-15177
Build support for the erlang/corba repository.
---------------------------------------------------------------------
--- erts-10.0.3 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.3 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15154 Application(s): erts
Fixed a scheduler bug that caused normal schedulers to
run dirty code.
OTP-15183 Application(s): erts
Related Id(s): ERL-670
Fixed a bug in erlang:trace_info/2 which caused the
emulator to crash when a bad argument was passed. The
bug was introduced in ERTS version 10.0.
Full runtime dependencies of erts-10.0.3: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.2
Patch Package: OTP 21.0.2
Git Tag: OTP-21.0.2
Date: 2018-07-04
Trouble Report Id: OTP-15067, OTP-15151, OTP-15156, OTP-15157,
OTP-15158, OTP-15159, OTP-15166
Seq num: ERL-573, ERL-654, ERL-655, ERL-660
System: OTP
Release: 21
Application: compiler-7.2.2, erts-10.0.2,
public_key-1.6.1, stdlib-3.5.1
Predecessor: OTP 21.0.1
Check out the git tag OTP-21.0.2, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- compiler-7.2.2 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.2.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15156 Application(s): compiler
Related Id(s): ERL-655
In rare cases involving matching of binary literal
strings, the compiler could optimize away code that
should be executed.
OTP-15157 Application(s): compiler
There could be an internal consistency check failure
when compiling code that called map_get(Key, Map) and
then updated the same map.
OTP-15166 Application(s): compiler
Related Id(s): ERL-660
In rare circumstances, the compiler could crash in
beam_jump when compiling a floating point operation.
Full runtime dependencies of compiler-7.2.2: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- erts-10.0.2 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15067 Application(s): erts
Related Id(s): ERL-573
Fixed a rare bug that could cause processes to be
scheduled after they had been freed.
OTP-15158 Application(s): erts
Related Id(s): ERL-654
Fixed a race condition in the inet driver that could
cause receive to hang when the emulator was compiled
with gcc 8.
Full runtime dependencies of erts-10.0.2: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
--- public_key-1.6.1 ------------------------------------------------
---------------------------------------------------------------------
The public_key-1.6.1 application can be applied independently of
other applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15151 Application(s): public_key
Related Id(s): OTP-15113
Some of the keylengths in the newly generated moduli
file in public_key are not universally supported. This
could cause the SSH key exchange
diffie-hellman-group-exchange-sha* to fail.
Those keylengths are now removed.
Full runtime dependencies of public_key-1.6.1: asn1-3.0, crypto-3.8,
erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.5.1 ----------------------------------------------------
---------------------------------------------------------------------
The stdlib-3.5.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15159 Application(s): stdlib
Fix a bug that could cause a crash when formatting a
list of non-characters using the control sequences p or
P and limiting the output with the option chars_limit.
Full runtime dependencies of stdlib-3.5.1: compiler-5.0, crypto-3.3,
erts-10.0, kernel-6.0, sasl-3.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0.1
Patch Package: OTP 21.0.1
Git Tag: OTP-21.0.1
Date: 2018-06-26
Trouble Report Id: OTP-15147, OTP-15150
Seq num: ERL-644, ERL-650
System: OTP
Release: 21
Application: compiler-7.2.1, erts-10.0.1
Predecessor: OTP 21.0
Check out the git tag OTP-21.0.1, and build a full OTP system
including documentation. Apply one or more applications from this
build as patches to your installation using the 'otp_patch_apply'
tool. For information on install requirements, see descriptions for
each application version below.
---------------------------------------------------------------------
--- compiler-7.2.1 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.2.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15150 Application(s): compiler
Related Id(s): ERL-650
The compiler could could crash when compiling a
complicated function that used the binary syntax.
Full runtime dependencies of compiler-7.2.1: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- erts-10.0.1 -----------------------------------------------------
---------------------------------------------------------------------
The erts-10.0.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15147 Application(s): erts
Related Id(s): ERL-644
The keys used in os:getenv and os:putenv are
case-insensitive again on Windows.
Full runtime dependencies of erts-10.0.1: kernel-6.0, sasl-3.0.1,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 21.0
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.
Highlights
Erts:
- 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 withlibc getenv(3)
. Manual synchronization will be needed.
Compiler:
- 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 tof({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 predefined macro
OTP_RELEASE
and preprocessor directives-if
and-elif
Security:
- 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
http://erlang.org/download/otp_src_21.0.readme
Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_21.0.exe
http://erlang.org/download/otp_win64_21.0.exe
Online documentation can be browsed here:
http://erlang.org/documentation/doc-10.0/doc
OTP 21.0 Release Candidate 2
OTP 21 Release Candidate 2
This is the second of two planned release candidates before the OTP 21 release.
The intention whit this release is that you as users try it and give us feedback
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.
Highlights
Erts:
- 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.
Compiler:
- 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.
Security:
- DTLS support in SSL
- 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
http://erlang.org/download/otp_src_21.0-rc2.readme
Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_21.0-rc2.exe
http://erlang.org/download/otp_win64_21.0-rc2.exe
Online documentation can be browsed here:
http://erlang.org/documentation/doc-10.0-rc2/doc
OTP 21.0 Release Candidate 1
OTP 21 Release Candidate 1
This is the first of two planned release candidates before the OTP 21 release.
The intention whit this release is that you as users try it and give us feedback
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.
Highlights
Erts:
- 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.
Compiler:
- 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.
Security:
- DTLS support in SSL
- 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
http://erlang.org/download/otp_src_21.0-rc1.readme
Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_21.0-rc1.exe
http://erlang.org/download/otp_win64_21.0-rc1.exe
Online documentation can be browsed here:
http://erlang.org/documentation/doc-10.0-rc1/doc