Releases: garazdawi/otp
Releases · garazdawi/otp
OTP 22.3.4
Git Tag: OTP-22.3.4
Date: 2020-05-08
Trouble Report Id: OTP-16636, OTP-16640, OTP-16641, OTP-16642
Seq num: ERIERL-145
System: OTP
Release: 22
Application: asn1-5.0.12, erts-10.7.2
Predecessor: OTP 22.3.3
Check out the git tag OTP-22.3.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.
---------------------------------------------------------------------
--- asn1-5.0.12 -----------------------------------------------------
---------------------------------------------------------------------
The asn1-5.0.12 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16636 Application(s): asn1
Related Id(s): ERIERL-145
Dialyzer warnings of type no_match are now suppressed
in the generated files.
Full runtime dependencies of asn1-5.0.12: erts-7.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
--- erts-10.7.2 -----------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.7.2 application *cannot* be applied independently
of other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- kernel-6.5.1 (first satisfied in OTP 22.2)
--- Fixed Bugs and Malfunctions ---
OTP-16640 Application(s): erts
Related Id(s): OTP-16193
A literal area could prematurely be released before all
uses of it had been removed. This occurred either when
a terminating process had a complex exit reason
referring to a literal that concurrently was removed,
or when a terminating process continued executing a
dirty NIF accessing a literal (via the heap) that
concurrently was removed.
OTP-16641 Application(s): erts
The VM could potentially crash when checking process
code of a process that terminated while executing a
dirty NIF. The checking of process code is part of a
code purge operation.
OTP-16642 Application(s): erts
System tasks of low priority were not interleaved with
normal priority system tasks as they should. This could
potentially delay garbage collection of another process
longer than intended if the garbage collection was
requested from a low priority process.
Full runtime dependencies of erts-10.7.2: kernel-6.5.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------```
OTP 22.3.3
Git Tag: OTP-22.3.3
Date: 2020-04-27
Trouble Report Id: OTP-16462, OTP-16619
Seq num: ERIERL-464, ERL-1213
System: OTP
Release: 22
Application: ssh-4.9.1, ssl-9.6.2
Predecessor: OTP 22.3.2
Check out the git tag OTP-22.3.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.
---------------------------------------------------------------------
--- ssh-4.9.1 -------------------------------------------------------
---------------------------------------------------------------------
Note! The ssh-4.9.1 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- crypto-4.6.4 (first satisfied in OTP 22.2.2)
--- Fixed Bugs and Malfunctions ---
OTP-16462 Application(s): ssh
Related Id(s): ERIERL-464
Potential hazard between re-keying decision and socket
close.
Full runtime dependencies of ssh-4.9.1: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
--- ssl-9.6.2 -------------------------------------------------------
---------------------------------------------------------------------
Note! The ssl-9.6.2 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- public_key-1.7.2 (first satisfied in OTP 22.3)
--- Fixed Bugs and Malfunctions ---
OTP-16619 Application(s): ssl
Related Id(s): ERL-1213
Fix timing bug that could cause ssl sockets to become
unresponsive after an ssl:recv/3 call timed out
Full runtime dependencies of ssl-9.6.2: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.7.2, stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------```
OTP 21.3.8.15
Patch Package: OTP 21.3.8.15
Git Tag: OTP-21.3.8.15
Date: 2020-04-27
Trouble Report Id: OTP-16462, OTP-16553, OTP-16555, OTP-16619
Seq num: ERIERL-464, ERL-1188, ERL-1213
System: OTP
Release: 21
Application: erts-10.3.5.11, ssh-4.7.6.4, ssl-9.2.3.6,
stdlib-3.8.2.4
Predecessor: OTP 21.3.8.14
Check out the git tag OTP-21.3.8.15, 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.3.5.11 --------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.3.5.11 application *cannot* be applied
independently of other applications on an arbitrary OTP 21
installation.
On a full OTP 21 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-6.1 (first satisfied in OTP 21.1)
-- sasl-3.3 (first satisfied in OTP 21.2)
--- Fixed Bugs and Malfunctions ---
OTP-16553 Application(s): erts, stdlib
re:run(Subject, RE, [unicode]) returned nomatch instead
of failing with a badarg error exception when Subject
contained illegal utf8 and RE was passed as a binary.
This has been corrected along with corrections of
reduction counting in re:run() error cases.
OTP-16555 Application(s): erts
Related Id(s): ERL-1188
Fixed a bug that could cause the emulator to crash when
purging modules or persistent terms.
Full runtime dependencies of erts-10.3.5.11: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- ssh-4.7.6.4 -----------------------------------------------------
---------------------------------------------------------------------
Note! The ssh-4.7.6.4 application *cannot* be applied independently
of other applications on an arbitrary OTP 21 installation.
On a full OTP 21 installation, also the following runtime
dependency has to be satisfied:
-- crypto-4.4.2.2 (first satisfied in OTP 21.3.8.12)
--- Fixed Bugs and Malfunctions ---
OTP-16462 Application(s): ssh
Related Id(s): ERIERL-464
Potential hazard between re-keying decision and socket
close.
Full runtime dependencies of ssh-4.7.6.4: crypto-4.4.2.2, erts-6.0,
kernel-3.0, public_key-1.5.2, stdlib-3.3
---------------------------------------------------------------------
--- ssl-9.2.3.6 -----------------------------------------------------
---------------------------------------------------------------------
The ssl-9.2.3.6 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16619 Application(s): ssl
Related Id(s): ERL-1213
Fix timing bug that could cause ssl sockets to become
unresponsive after an ssl:recv/3 call timed out
Full runtime dependencies of ssl-9.2.3.6: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.8.2.4 --------------------------------------------------
---------------------------------------------------------------------
Note! The stdlib-3.8.2.4 application *cannot* be applied
independently of other applications on an arbitrary OTP 21
installation.
On a full OTP 21 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.3.5.11 (first satisfied in OTP 21.3.8.15)
--- Fixed Bugs and Malfunctions ---
OTP-16553 Application(s): erts, stdlib
re:run(Subject, RE, [unicode]) returned nomatch instead
of failing with a badarg error exception when Subject
contained illegal utf8 and RE was passed as a binary.
This has been corrected along with corrections of
reduction counting in re:run() error cases.
Full runtime dependencies of stdlib-3.8.2.4: compiler-5.0,
crypto-3.3, erts-10.3.5.11, kernel-6.0, sasl-3.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 23.0-rc3
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** POTENTIAL INCOMPATIBILITY ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14708 Application(s): compiler, debugger, erts
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-15251 Application(s): erts
Improvements of distributed spawn operations. These
include both scalability and performance improvements
as well as new functionality.
New functionality:
-- A distributed spawn_monitor() BIF.
-- Support for monitor option in the distributed
spawn_opt() BIF.
-- New spawn_request() BIFs for asynchronous spawn of
processes. spawn_request() supports all options that
spawn_opt() support plus a few more.
OTP-15434 Application(s): ssh
OpenSSH 6.5 introduced a new file representation of
keys called openssh-key-v1.
OTP/SSH had an experimental implementation of this
format. That implementation is now improved and
supported with the exception of handling encrypted
keys.
OTP-15589 Application(s): ssl
Improve interoperability by implementing the middlebox
compatiblity mode.
The middlebox compatibility mode makes the TLS 1.3
handshake look more like a TLS 1.2 handshake and
increases the chance of successfully establishing TLS
1.3 connections through legacy middleboxes.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-15998 Application(s): ssh
Related Id(s): PR-2368, PR-2376
TCP/IP port forwarding, a.k.a tunneling a.k.a
tcp-forward/direct-tcp is implemented. In the OpenSSH
client, this corresponds to the options -L and -R.
The client or server listens to a specified socket, and
when something connects to it with TCP/IP, that
connection is forwarded in an encrypted tunnel to the
peer. The peer then connects to a predefined IP/port
pair and then acts as a proxy.
See the manual, ssh:tcpip_tunnel_to_server/6 and
ssh:tcpip_tunnel_from_server/6.
The functionality is disabled per default but can be
enabled when starting a daemon.
OTP-16007 Application(s): compiler
Related Id(s): PR-2324
Allow underscores in numeric literals to improve
readability. Examples: 123_456_789, 16#1234_ABCD.
OTP-16214 Application(s): compiler
Related Id(s): PR-2460
Improved the type optimization pass' inference of types
that depend on themselves, giving us more accurate
types and letting us track the content types of lists.
OTP-16222 Application(s): stdlib
New functions have been added to c(3) for printing
embedded documentation for Erlang modules. The
functions are:
-- h/1,2,3 -- Print the documentation for a
Module:Function/Arity.
-- ht/1,2,3 -- Print the type documentation for a
Module:Type/Arity.
The embedded documentation is created when building the
Erlang/OTP documentation.
OTP-16232 Application(s): crypto
As announced in OTP 22.0, a New API was introduced in
CRYPTO. See the New and Old API chapter in the CRYPTO
User's Guide for more information and suggested
replacement functions.
The Old API is now deprecated in OTP-23.0 and will be
removed in OTP-24.0.
This deprecation includes cipher names. See the section
Retired cipher names in the crypto User's Guide,
chapter The Old API.
OTP-16250 Application(s): erts, kernel
The possibility to run Erlang distribution without
relying on EPMD has been extended. To achieve this a
couple of new options to the inet distribution has been
added.
-- -dist_listen false -- Setup the distribution
channel, but do not listen for incoming connection.
This is useful when you want to use the current node to
interact with another node on the same machine without
it joining the entire cluster.
-- -erl_epmd_port Port -- Configure a default port that
the built-in EPMD client should return. This allows the
local node to know the port to connect to for any other
node in the cluster.
The erl_epmd callback API has also been extended to
allow returning -1 as the creation which means that a
random creation will be created by the node.
In addition a new callback function called
listen_port_please has been added that allows the
callback to return which listen port the distribution
should use. This can be used instead of
inet_dist_listen_min/max if the listen port is to be
fetched from an external service.
OTP-16260 Application(s): kernel
Related Id(s): OTP-15403
A first EXPERIMENTAL module that is a socket backend to
gen_tcp and inet has been implemented. Others will
follow. Feedback will be appreciated.
OTP-16406 Application(s): erl_docgen, otp
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16453 Application(s): kernel
Related Id(s): PR-2524
A new implementation of distributed named process
groups has been introduced. It is available in the pg
module.
Note that this pg module only has the name in common
with the experimental pg module that was present in
stdlib up until OTP 17.
Thanks to Maxim Fedorov for the implementation.
OTP-16484 Application(s): debugger, erts, hipe
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16501 Application(s): stdlib
Related Id(s): ERL-708, OTP-16222, OTP-16406,
OTP-16494, OTP-16499, OTP-16500, PR-2545
Module and function auto-completion in the shell no...
OTP 22.3.2
Git Tag: OTP-22.3.2
Date: 2020-04-09
Trouble Report Id: OTP-16030
Seq num:
System: OTP
Release: 22
Application: asn1-5.0.11
Predecessor: OTP 22.3.1
Check out the git tag OTP-22.3.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.
---------------------------------------------------------------------
--- asn1-5.0.11 -----------------------------------------------------
---------------------------------------------------------------------
The asn1-5.0.11 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16030 Application(s): asn1
The compiler now has limited support for the JSON
encoding rules (ITU-T X.697 ASN.1 encoding rules:
Specification of JavaScript Object Notation Encoding
Rules).
Full runtime dependencies of asn1-5.0.11: erts-7.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------```
OTP 22.3.1
Git Tag: OTP-22.3.1
Date: 2020-04-06
Trouble Report Id: OTP-16553, OTP-16555, OTP-16556, OTP-16567,
OTP-16572, OTP-16574, OTP-16578, OTP-16580
Seq num: ERIERL-481, ERIERL-482, ERL-1188, ERL-1199,
ERL-1205, ERL-1212
System: OTP
Release: 22
Application: compiler-7.5.4, erts-10.7.1, inets-7.1.3,
ssl-9.6.1, stdlib-3.12.1, xmerl-1.3.24
Predecessor: OTP 22.3
Check out the git tag OTP-22.3.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.
---------------------------------------------------------------------
--- POTENTIAL INCOMPATIBILITIES -------------------------------------
---------------------------------------------------------------------
OTP-16556 Application(s): inets
Remove use of http_uri and mod_esi eval API.
This is a backport from OTP 23 that improves the check
of URIs to ensure that invalid URIs does not cause
vulnerabilities. This will render the deprecated
mod_esi eval API unusable as it used URI that does not
conform to valid URI syntax.
---------------------------------------------------------------------
--- OTP-22.3.1 ------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16574 Application(s): otp
Related Id(s): ERL-1205
OTP would not build with Xcode 11.4 on macOS Catalina
(10.15).
---------------------------------------------------------------------
--- compiler-7.5.4 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.5.4 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16580 Application(s): compiler
Related Id(s): ERL-1212
Fixed a bug in the validator that could cause it to
reject valid code.
Full runtime dependencies of compiler-7.5.4: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- erts-10.7.1 -----------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.7.1 application *cannot* be applied independently
of other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- kernel-6.5.1 (first satisfied in OTP 22.2)
--- Fixed Bugs and Malfunctions ---
OTP-16553 Application(s): erts, stdlib
re:run(Subject, RE, [unicode]) returned nomatch instead
of failing with a badarg error exception when Subject
contained illegal utf8 and RE was passed as a binary.
This has been corrected along with corrections of
reduction counting in re:run() error cases.
OTP-16555 Application(s): erts
Related Id(s): ERL-1188
Fixed a bug that could cause the emulator to crash when
purging modules or persistent terms.
OTP-16572 Application(s): erts
Related Id(s): ERL-1199, OTP-16269
Fixed a bug in a receive optimization. This could cause
a receive not to match even though a matching message
was present in the message queue. This bug was
introduced in ERTS version 10.6 (OTP 22.2).
Full runtime dependencies of erts-10.7.1: kernel-6.5.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- inets-7.1.3 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.1.3 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16556 Application(s): inets
*** POTENTIAL INCOMPATIBILITY ***
Remove use of http_uri and mod_esi eval API.
This is a backport from OTP 23 that improves the check
of URIs to ensure that invalid URIs does not cause
vulnerabilities. This will render the deprecated
mod_esi eval API unusable as it used URI that does not
conform to valid URI syntax.
Full runtime dependencies of inets-7.1.3: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
--- ssl-9.6.1 -------------------------------------------------------
---------------------------------------------------------------------
Note! The ssl-9.6.1 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- public_key-1.7.2 (first satisfied in OTP 22.3)
--- Fixed Bugs and Malfunctions ---
OTP-16567 Application(s): ssl
Related Id(s): ERIERL-481
Correct error handling when the partial_chain fun
claims a certificate to be the trusted cert that is not
part of the chain. This bug would hide the appropriate
alert generating an "INTERNAL_ERROR" alert instead.
Full runtime dependencies of ssl-9.6.1: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.7.2, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.12.1 ---------------------------------------------------
---------------------------------------------------------------------
Note! The stdlib-3.12.1 application *cannot* be applied independently
of other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.7.1 (first satisfied in OTP 22.3.1)
--- Fixed Bugs and Malfunctions ---
OTP-16553 Application(s): erts, stdlib
re:run(Subject, RE, [unicode]) returned nomatch instead
of failing with a badarg error exception when Subject
contained illegal utf8 and RE was passed as a binary.
This has been corrected along with corrections of
reduction counting in re:run() error cases.
Full runtime dependencies of stdlib-3.12.1: compiler-5.0, crypto-3.3,
erts-10.7.1, kernel-6.0, sasl-3.0
---------------------------------------------------------------------
--- xmerl-1.3.24 ----------------------------------------------------
---------------------------------------------------------------------
The xmerl-1.3.24 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16578 Application(s): xmerl
Related Id(s): ERIERL-482
Fix a performance problem when using internal general
references in XML content.
Full runtime dependencies of xmerl-1.3.24: erts-6.0, kernel-3.0,
stdlib-2.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------```
OTP 23.0-rc2
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** POTENTIAL INCOMPATIBILITY ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14708 Application(s): compiler, debugger, erts
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-15251 Application(s): erts
Improvements of distributed spawn operations. These
include both scalability and performance improvements
as well as new functionality.
New functionality:
-- A distributed spawn_monitor() BIF.
-- Support for monitor option in the distributed
spawn_opt() BIF.
-- New spawn_request() BIFs for asynchronous spawn of
processes. spawn_request() supports all options that
spawn_opt() support plus a few more.
OTP-15434 Application(s): ssh
OpenSSH 6.5 introduced a new file representation of
keys called openssh-key-v1.
OTP/SSH had an experimental implementation of this
format. That implementation is now improved and
supported with the exception of handling encrypted
keys.
OTP-15589 Application(s): ssl
Improve interoperability by implementing the middlebox
compatiblity mode.
The middlebox compatibility mode makes the TLS 1.3
handshake look more like a TLS 1.2 handshake and
increases the chance of successfully establishing TLS
1.3 connections through legacy middleboxes.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-15998 Application(s): ssh
Related Id(s): PR-2368, PR-2376
TCP/IP port forwarding, a.k.a tunneling a.k.a
tcp-forward/direct-tcp is implemented. In the OpenSSH
client, this corresponds to the options -L and -R.
The client or server listens to a specified socket, and
when something connects to it with TCP/IP, that
connection is forwarded in an encrypted tunnel to the
peer. The peer then connects to a predefined IP/port
pair and then acts as a proxy.
See the manual, ssh:tcpip_tunnel_to_server/6 and
ssh:tcpip_tunnel_from_server/6.
The functionality is disabled per default but can be
enabled when starting a daemon.
OTP-16007 Application(s): compiler
Related Id(s): PR-2324
Allow underscores in numeric literals to improve
readability. Examples: 123_456_789, 16#1234_ABCD.
OTP-16214 Application(s): compiler
Related Id(s): PR-2460
Improved the type optimization pass' inference of types
that depend on themselves, giving us more accurate
types and letting us track the content types of lists.
OTP-16222 Application(s): stdlib
New functions have been added to c(3) for printing
embedded documentation for Erlang modules. The
functions are:
-- h/1,2,3 -- Print the documentation for a
Module:Function/Arity.
-- ht/1,2,3 -- Print the type documentation for a
Module:Type/Arity.
The embedded documentation is created when building the
Erlang/OTP documentation.
OTP-16232 Application(s): crypto
As announced in OTP 22.0, a New API was introduced in
CRYPTO. See the New and Old API chapter in the CRYPTO
User's Guide for more information and suggested
replacement functions.
The Old API is now deprecated in OTP-23.0 and will be
removed in OTP-24.0.
OTP-16250 Application(s): erts, kernel
The possibility to run Erlang distribution without
relying on EPMD has been extended. To achieve this a
couple of new options to the inet distribution has been
added.
-- -dist_listen false -- Setup the distribution
channel, but do not listen for incoming connection.
This is useful when you want to use the current node to
interact with another node on the same machine without
it joining the entire cluster.
-- -erl_epmd_port Port -- Configure a default port that
the built-in EPMD client should return. This allows the
local node to know the port to connect to for any other
node in the cluster.
The erl_epmd callback API has also been extended to
allow returning -1 as the creation which means that a
random creation will be created by the node.
In addition a new callback function called
listen_port_please has been added that allows the
callback to return which listen port the distribution
should use. This can be used instead of
inet_dist_listen_min/max if the listen port is to be
fetched from an external service.
OTP-16260 Application(s): kernel
Related Id(s): OTP-15403
A first EXPERIMENTAL module that is a socket backend to
gen_tcp and inet has been implemented. Others will
follow. Feedback will be appreciated.
OTP-16406 Application(s): erl_docgen, otp
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16453 Application(s): kernel
Related Id(s): PR-2524
A new implementation of distributed named process
groups has been introduced. It is available in the pg
module.
Note that this pg module only has the name in common
with the experimental pg module that was present in
stdlib up until OTP 17.
Thanks to Maxim Fedorov for the implementation.
OTP-16484 Application(s): debugger, erts, hipe
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16501 Application(s): stdlib
Related Id(s): ERL-708, OTP-16222, OTP-16406,
OTP-16494, OTP-16499, OTP-16500, PR-2545
Module and function auto-completion in the shell now
looks at all available modules instead of only those
loaded. A module is considered available if it either
is loaded already ...
OTP 21.3.8.14
Patch Package: OTP 21.3.8.14
Git Tag: OTP-21.3.8.14
Date: 2020-03-05
Trouble Report Id: OTP-16404, OTP-16446, OTP-16481
Seq num: ERL-1127, ERL-1157
System: OTP
Release: 21
Application: erts-10.3.5.10
Predecessor: OTP 21.3.8.13
Check out the git tag OTP-21.3.8.14, 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.3.5.10 --------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.3.5.10 application *cannot* be applied
independently of other applications on an arbitrary OTP 21
installation.
On a full OTP 21 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-6.1 (first satisfied in OTP 21.1)
-- sasl-3.3 (first satisfied in OTP 21.2)
--- Fixed Bugs and Malfunctions ---
OTP-16404 Application(s): erts
Related Id(s): ERL-1127
Fixed bug in ets:update_counter/4, when called with an
invalid UpdateOp and a Key that does not exist, causing
ets:info(T,size) to return incorrect values. Bug exists
since OTP-19.0.2.
OTP-16446 Application(s): erts
Related Id(s): ERL-1157
A process could get into an inconsistent state where it
was runnable, but never scheduled for execution. This
could occur when a mix of normal and low priority
processes where scheduled on the same type of dirty
scheduler simultaneously.
OTP-16481 Application(s): erts
Corrected the valid range of the erl command line
argument +SDio <NumberOfDirtyIoSchedulers> from 0..1024
to 1..1024. +SDio 0 was erroneously allowed which just
caused the VM to crash on the first dirty I/O job
scheduled.
Full runtime dependencies of erts-10.3.5.10: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 23.0-rc1
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** POTENTIAL INCOMPATIBILITY ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14708 Application(s): compiler, debugger, erts
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-15251 Application(s): erts
Improvements of distributed spawn operations. These
include both scalability and performance improvements
as well as new functionality.
New functionality:
-- A distributed spawn_monitor() BIF.
-- Support for monitor option in the distributed
spawn_opt() BIF.
-- New spawn_request() BIFs for asynchronous spawn of
processes. spawn_request() supports all options that
spawn_opt() support plus a few more.
OTP-15434 Application(s): ssh
OpenSSH 6.5 introduced a new file representation of
keys called openssh-key-v1.
OTP/SSH had an experimental implementation of this
format. That implementation is now improved and
supported with the exception of handling encrypted
keys.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-15998 Application(s): ssh
Related Id(s): PR-2368, PR-2376
TCP/IP port forwarding, a.k.a tunneling a.k.a as
tcp-forward/direct-tcp is implemented. In the OpenSSH
client, this corresponds to the options -L and -R.
The client or server listens to a specified socket, and
when something connects to it with TCP/IP, that
connection is forwarded in an encrypted tunnel to the
peer. The peer then connects to a predefined IP/port
pair and then acts as a proxy.
See the manual, ssh:tcpip_tunnel_to_server/6 and
ssh:tcpip_tunnel_from_server/6.
The functionality is disabled per default but can be
enabled if wanted when starting a daemon.
OTP-16007 Application(s): compiler
Related Id(s): PR-2324
Allow underscores in numeric literals to improve
readability. Examples: 123_456_789, 16#1234_ABCD.
OTP-16214 Application(s): compiler
Related Id(s): PR-2460
Improved the type optimization pass' inference of types
that depend on themselves, giving us more accurate
types and letting us track the content types of lists.
OTP-16222 Application(s): stdlib
New functions have been added to c(3) for printing
embedded documentation for Erlang modules. The
functions are:
-- h/1,2,3 -- Print the documentation for a
Module:Function/Arity.
-- ht/1,2,3 -- Print the type documentation for a
Module:Type/Arity.
The embedded documentation is created when building the
Erlang/OTP documentation.
OTP-16232 Application(s): crypto
As announced in OTP 22.0, a New API was introduced in
CRYPTO. See the New and Old API chapter in the CRYPTO
User's Guide for more information and suggested
replacement functions.
The Old API is now deprecated in OTP-23.0 and will be
removed in OTP-24.0.
OTP-16406 Application(s): erl_docgen, otp
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16453 Application(s): kernel
Related Id(s): PR-2524
A new implementation of distributed named process
groups has been introduced. It is available in the pg
module.
Note that this pg module only has the name in common
with the experimental pg module that was present in
stdlib up until OTP 17.
Thanks to Maxim Fedorov for the implementation.
OTP-16484 Application(s): debugger, erts, hipe
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16501 Application(s): stdlib
Related Id(s): ERL-708, OTP-16222, OTP-16406,
OTP-16494, OTP-16499, OTP-16500, PR-2545
Module and function auto-completion in the shell now
looks at all available modules instead of only those
loaded. A module is considered available if it either
is loaded already or would be loaded if called.
The auto-completion has also been expanded to work in
the new h/1,2,3 function in c(3).
---------------------------------------------------------------------
--- POTENTIAL INCOMPATIBILITIES -------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** HIGHLIGHT ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14790 Application(s): ssl
Drop support for SSL-3.0. Support for this legacy TLS
version has not been enabled by default since OTP 19.
Now all code to support it has been removed, that is
SSL-3.0 protocol version can not be used and is
considered invalid.
OTP-16168 Application(s): erts
Related Id(s): ERL-1053
erlang:decode_packet with type set to httph no lon...
OTP 22.2.8
Git Tag: OTP-22.2.8
Date: 2020-02-28
Trouble Report Id: OTP-16457, OTP-16459
Seq num:
System: OTP
Release: 22
Application: diameter-2.2.2
Predecessor: OTP 22.2.7
Check out the git tag OTP-22.2.8, 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.
---------------------------------------------------------------------
--- diameter-2.2.2 --------------------------------------------------
---------------------------------------------------------------------
The diameter-2.2.2 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16457 Application(s): diameter
The possibility of choosing a handler process for an
incoming Diameter request with a configured MFA was
documented in OTP 20.0, but counters (with
{traffic_counters, true}) were not incremented when
this process was on a remote node. Counters are now
incremented on the node that configures the transport
in question.
Introduced in OTP 21.3.
OTP-16459 Application(s): diameter
Transport options differing from those passed to
diameter:add_transport/2 were used in several
situations: when starting a transport process after
connect_timer expiry after an initial connection
attempt has failed, when starting a transport process
after a connection has been accepted, when sending
events, when returning options in
diameter:service_info/2, and possibly more. In
particular, the following configuration options to
diameter:add_transport/2 were dropped:
avp_dictionaries, incoming_maxlen, spawn_opt,
strict_mbit.
Moreover, any service options mistakenly passed to
diameter:add_transport/2 were interpreted as such,
instead of being ignored as the documentation states,
with the consequence that outgoing and incoming
requests saw different values of some options, some
were always taken from transport options, and others
from service options.
diameter:add_transport/2 must be called in new code for
the fix to have effect.
Introduced in OTP 20.1.
Full runtime dependencies of diameter-2.2.2: erts-10.0, kernel-3.2,
ssl-9.0, stdlib-2.4
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------```