It may make more sense to break this out into a separate file, as is
done for other options, but there's helper code present to regenerate
into the base PLIST itself, so I'm simply restoring to there for now.
This update fixes chat/ejabberd building.
upstream changes:
-----------------
Patch Package: OTP 23.3.4
Git Tag: OTP-23.3.4
Date: 2021-05-10
Trouble Report Id: OTP-17366, OTP-17379, OTP-17386
Seq num: ERIERL-650, GH-4775
System: OTP
Release: 23
Application: compiler-7.6.9, diameter-2.2.4, erts-11.2.2
Predecessor: OTP 23.3.3
Check out the git tag OTP-23.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.
---------------------------------------------------------------------
--- compiler-7.6.9 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.6.9 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17386 Application(s): compiler
Related Id(s): ERIERL-650, OTP-17357
Reverted the fix for OTP-17357 as it turned out to be
incomplete and made the validator reject much more
legal code than before.
It will be fixed more thoroughly in a later patch.
Full runtime dependencies of compiler-7.6.9: crypto-3.6, erts-11.0,
hipe-3.12, kernel-7.0, stdlib-3.13
---------------------------------------------------------------------
--- diameter-2.2.4 --------------------------------------------------
---------------------------------------------------------------------
The diameter-2.2.4 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17366 Application(s): diameter
Related Id(s): GH-4775
The unordered option was ignored on a client
diameter_sctp transport, causing all delivery to be
ordered.
The association id was not specified to gen_sctp when
requesting unordered delivery, causing the setting to
be applied to the whole endpoint.
Thanks to Bengt Kleberg and Andreas Schultz.
Full runtime dependencies of diameter-2.2.4: erts-10.0, kernel-3.2,
ssl-9.0, stdlib-2.4
---------------------------------------------------------------------
--- erts-11.2.2 -----------------------------------------------------
---------------------------------------------------------------------
The erts-11.2.2 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17379 Application(s): erts
Related Id(s): PR-4804
Fix bug in match spec compilator seen to cause a stack
overflow crash on debug VM for certain match specs.
Could potentially cause problems for standard VM, but
has not been verified. Match specs are used by
ets:match/select functions and erlang:trace_pattern.
Full runtime dependencies of erts-11.2.2: kernel-7.0, sasl-3.3,
stdlib-3.13
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
upstream changes:
-----------------
Patch Package: OTP 23.3.3
Git Tag: OTP-23.3.3
Date: 2021-05-06
Trouble Report Id: OTP-16607, OTP-16930, OTP-17347, OTP-17357,
OTP-17358, OTP-17361
Seq num: ERL-1371, ERL-1439, ERL-ERL-610, GH-3480,
GH-4396, GH-4774
System: OTP
Release: 23
Application: common_test-1.20.2, compiler-7.6.8,
erl_interface-4.0.3, kernel-7.3.1,
runtime_tools-1.16.1
Predecessor: OTP 23.3.2
Check out the git tag OTP-23.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.
---------------------------------------------------------------------
--- common_test-1.20.2 ----------------------------------------------
---------------------------------------------------------------------
The common_test-1.20.2 application can be applied independently of
other applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17347 Application(s): common_test
Related Id(s): ERL-1439, GH-3480
Before this change Config leaked between test groups in
case of a subgroup was skipped (GH-3480).
Full runtime dependencies of common_test-1.20.2: compiler-6.0,
crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0,
observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
---------------------------------------------------------------------
--- compiler-7.6.8 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.6.8 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17357 Application(s): compiler
Related Id(s): GH-4774
Fixed a bug in the validator that could cause it to
reject valid code.
Full runtime dependencies of compiler-7.6.8: crypto-3.6, erts-11.0,
hipe-3.12, kernel-7.0, stdlib-3.13
---------------------------------------------------------------------
--- erl_interface-4.0.3 ---------------------------------------------
---------------------------------------------------------------------
The erl_interface-4.0.3 application can be applied independently of
other applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17358 Application(s): erl_interface
Related Id(s): ERL-ERL-610
Fix bug where sending of large data with
ei_send_*/ei_rpc with infinite timeout could fail when
the tcp buffer becomes full.
Fault has existed since OTP-21.
--- Known Bugs and Problems ---
OTP-16607 Application(s): erl_interface
Related Id(s): OTP-16608
The ei API for decoding/encoding terms is not fully
64-bit compatible since terms that have a
representation on the external term format larger than
2 GB cannot be handled.
---------------------------------------------------------------------
--- kernel-7.3.1 ----------------------------------------------------
---------------------------------------------------------------------
The kernel-7.3.1 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17361 Application(s): kernel
A bug in the Erlang DNS resolver has been fixed, where
it could be made to bring down the kernel supervisor
and thereby the whole node, when getting an incorrect
(IN A reply to an IN CNAME query) reply from the DNS
server and used the reply record's value without
verifying its type.
Full runtime dependencies of kernel-7.3.1: erts-11.0, sasl-3.0,
stdlib-3.13
---------------------------------------------------------------------
--- runtime_tools-1.16.1 --------------------------------------------
---------------------------------------------------------------------
The runtime_tools-1.16.1 application can be applied independently of
other applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16930 Application(s): runtime_tools
Related Id(s): ERL-1371, GH-4396
The function dbg:n/1 used a local fun to set up a
tracer on a remote node. This works fine as long as the
remote node is running exactly the same version of
Erlang/OTP but does not work at all otherwise. This is
fixed by exporting the relevant function and by calling
this function on the remote node to set up remote
tracing.
Full runtime dependencies of runtime_tools-1.16.1: erts-11.0,
kernel-7.0, mnesia-4.12, stdlib-3.13
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
upstream changes:
-----------------
Patch Package: OTP 23.3.1
Git Tag: OTP-23.3.1
Date: 2021-03-30
Trouble Report Id: OTP-17279
Seq num:
System: OTP
Release: 23
Application: ssh-4.11.1
Predecessor: OTP 23.3
Check out the git tag OTP-23.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.
---------------------------------------------------------------------
--- ssh-4.11.1 ------------------------------------------------------
---------------------------------------------------------------------
The ssh-4.11.1 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17279 Application(s): ssh
The idle_time timer was not cancelled when a channel
was opened within the timeout time on an empty
connection that have had channels previously.
Full runtime dependencies of ssh-4.11.1: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
Changes for 23.3 are at https://erlang.org/download/OTP-23.3.README
upstream changes:
-----------------
Patch Package: OTP 23.2.7
Git Tag: OTP-23.2.7
Date: 2021-03-03
Trouble Report Id: OTP-12960, OTP-17228
Seq num: ERIERL-598, ERIERL-614
System: OTP
Release: 23
Application: kernel-7.2.1, ssl-10.2.4
Predecessor: OTP 23.2.6
Check out the git tag OTP-23.2.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.
---------------------------------------------------------------------
--- kernel-7.2.1 ----------------------------------------------------
---------------------------------------------------------------------
The kernel-7.2.1 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-12960 Application(s): kernel
Related Id(s): ERIERL-598, PR-4509
When using the DNS resolver option
servfail_retry_timeout it did not honour the overall
call time-out in e.g inet_res:getbyname/3. This
misbehaviour has now been fixed. Also, the
servfail_retry_timeout behaviour has been improved to
only be enforced for servers that gives a servfail
answer.
Full runtime dependencies of kernel-7.2.1: erts-11.0, sasl-3.0,
stdlib-3.13
---------------------------------------------------------------------
--- ssl-10.2.4 ------------------------------------------------------
---------------------------------------------------------------------
The ssl-10.2.4 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17228 Application(s): ssl
Related Id(s): ERIERL-614
Enhance logging option log_level to support none and
all, also restore backwards compatibility for log_alert
option.
Full runtime dependencies of ssl-10.2.4: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
upstream changes:
-----------------
Patch Package: OTP 23.2.6
Git Tag: OTP-23.2.6
Date: 2021-02-25
Trouble Report Id: OTP-17173, OTP-17205, OTP-17220
Seq num: ERIERL-581, ERIERL-608
System: OTP
Release: 23
Application: inets-7.3.2, ssh-4.10.8
Predecessor: OTP 23.2.5
Check out the git tag OTP-23.2.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.
---------------------------------------------------------------------
--- inets-7.3.2 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.3.2 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17205 Application(s): inets
Related Id(s): ERIERL-608
Solves CVE-2021-27563, that is make sure no form of
relative path can be used to go outside webservers
directory.
OTP-17220 Application(s): inets
Make sure HEAD requests rejects directory links
Full runtime dependencies of inets-7.3.2: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
--- ssh-4.10.8 ------------------------------------------------------
---------------------------------------------------------------------
The ssh-4.10.8 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17173 Application(s): ssh
Related Id(s): ERIERL-581
Don't timeout slow connection setups and tear-downs. A
rare crash risk for the controller is also removed.
Full runtime dependencies of ssh-4.10.8: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Patch Package: OTP 23.2.5
Git Tag: OTP-23.2.5
Date: 2021-02-16
Trouble Report Id: OTP-17185, OTP-17190, OTP-17191
Seq num: ERIERL-606, ERL-1476, GH-4192
System: OTP
Release: 23
Application: erts-11.1.8, ssl-10.2.3, tools-3.4.3
Predecessor: OTP 23.2.4
Check out the git tag OTP-23.2.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.
---------------------------------------------------------------------
--- erts-11.1.8 -----------------------------------------------------
---------------------------------------------------------------------
The erts-11.1.8 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17185 Application(s): erts
Fixed a bug that could cause some work scheduled for
execution on scheduler threads to be delayed until
other similar work appeared. Beside delaying various
cleanup of internal data structures also the following
could be delayed:
-- Termination of a distribution controller process
-- Disabling of the distribution on a node
-- Gathering of memory allocator information using the
instrument module
-- Enabling, disabling, and gathering of msacc
information
-- Delivery of 'CHANGE' messages when time offset is
monitored
-- A call to erlang:cancel_timer()
-- A call to erlang:read_timer()
-- A call to erlang:statistics(io | garbage_collection
| scheduler_wall_time)
-- A call to ets:all()
-- A call to erlang:memory()
-- A call to erlang:system_info({allocator |
allocator_sizes, _})
-- A call to erlang:trace_delivered()
The bug existed on runtime systems running on all types
of hardware except for x86/x86_64.
Full runtime dependencies of erts-11.1.8: kernel-7.0, sasl-3.3,
stdlib-3.13
---------------------------------------------------------------------
--- ssl-10.2.3 ------------------------------------------------------
---------------------------------------------------------------------
The ssl-10.2.3 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17190 Application(s): ssl
Related Id(s): ERIERL-606
Avoid race when the first two upgrade server handshakes
(that is servers that use a gen_tcp socket as input to
ssl:handshake/2,3) start close to each other. Could
lead to that one of the handshakes would fail.
Full runtime dependencies of ssl-10.2.3: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12
---------------------------------------------------------------------
--- tools-3.4.3 -----------------------------------------------------
---------------------------------------------------------------------
The tools-3.4.3 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17191 Application(s): tools
Related Id(s): ERL-1476, GH-4192, OTP-16922
Correct the Xref analysis undefined_functions to not
report internally generated behaviour_info/1.
Full runtime dependencies of tools-3.4.3: compiler-5.0, erts-11.0,
erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Restore some PLIST content state from prior to the 23.2.4 update,
which mistakenly moved some hipe-related files that get built
universally to the PLIST.hipe list. The "--disable-hipe" option does
not impact everything. Build tested with the hipe option both enabled
and disabled. This should fix build breakages, e.g., NetBSD/aarch64.
(Separately, it's kind of unfortunate that this package uses both PLIST
variables and separate PLIST files to segment content driven by options.
It should really use one approach or the other consistently, but I
haven't touched that here.)
pkgsrc changes:
---------------
* Fix PLIST when the hive option is enabled.
upstream changes:
-----------------
Patch Package: OTP 23.2.4
Git Tag: OTP-23.2.4
Date: 2021-02-04
Trouble Report Id: OTP-16239, OTP-17139, OTP-17161, OTP-17174
Seq num: ERIERL-597, ERL-1458
System: OTP
Release: 23
Application: snmp-5.7.3, ssl-10.2.2
Predecessor: OTP 23.2.3
Check out the git tag OTP-23.2.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.
---------------------------------------------------------------------
--- snmp-5.7.3 ------------------------------------------------------
---------------------------------------------------------------------
The snmp-5.7.3 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17161 Application(s): snmp
[manager] In a function handling snmp errors, an unused
result (_Error) could result in matching issues and
therefor case clause runtime errors (crash). Note that
this would only happen in *very* unusual error cases.
Full runtime dependencies of snmp-5.7.3: crypto-3.3, erts-6.0,
kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- ssl-10.2.2 ------------------------------------------------------
---------------------------------------------------------------------
The ssl-10.2.2 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17139 Application(s): ssl
Related Id(s): ERL-1458, OTP-16239
Avoid that upgrade (from TCP to TLS) servers starts
multiple session cache handlers for the same server.
This applies to Erlang distribution over TLS servers.
OTP-17174 Application(s): ssl
Related Id(s): ERIERL-597
Legacy cipher suites defined before TLS-1.2 (but still
supported) should be possible to use in TLS-1.2. They
where accidentally excluded for available cipher suites
for TLS-1.2 in OTP-23.2.2.
--- Improvements and New Features ---
OTP-16239 Application(s): ssl
Related Id(s): ERL-1458, OTP-17139
Enable Erlang distribution over TLS to run TLS-1.3,
although TLS-1.2 will still be default.
Full runtime dependencies of ssl-10.2.2: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Patch Package: OTP 23.2.3
Git Tag: OTP-23.2.3
Date: 2021-01-20
Trouble Report Id: OTP-17097, OTP-17107, OTP-17108, OTP-17110
Seq num: ERIERL-586, ERL-1442
System: OTP
Release: 23
Application: crypto-4.8.3, erts-11.1.7, snmp-5.7.2,
ssh-4.10.7
Predecessor: OTP 23.2.2
Check out the git tag OTP-23.2.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.
---------------------------------------------------------------------
--- crypto-4.8.3 ----------------------------------------------------
---------------------------------------------------------------------
The crypto-4.8.3 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17107 Application(s): crypto
Adding missing flag in BN-calls in SRP.
Full runtime dependencies of crypto-4.8.3: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- erts-11.1.7 -----------------------------------------------------
---------------------------------------------------------------------
The erts-11.1.7 application can be applied independently of other
applications on a full OTP 23 installation.
--- Improvements and New Features ---
OTP-17097 Application(s): erts
Make windows installer remove write access rights for
non admin users when installing to a non default
directory. Reduces the risk for DLL sideloading, but
the user should always be aware of the access rights
for the installation.
Full runtime dependencies of erts-11.1.7: kernel-7.0, sasl-3.3,
stdlib-3.13
---------------------------------------------------------------------
--- snmp-5.7.2 ------------------------------------------------------
---------------------------------------------------------------------
The snmp-5.7.2 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17110 Application(s): snmp
Related Id(s): ERIERL-586
[manager] Misspelled priv protocol (atom) made it
impossible to update usm user 'priv_key' configuration
for usmAesCfb128Protocol via function calls.
Full runtime dependencies of snmp-5.7.2: crypto-3.3, erts-6.0,
kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- ssh-4.10.7 ------------------------------------------------------
---------------------------------------------------------------------
The ssh-4.10.7 application can be applied independently of other
applications on a full OTP 23 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17108 Application(s): ssh
Related Id(s): ERL-1442
The SSH daemon erroneously replaced LF with CRLF also
when there was no pty requested from the server.
Full runtime dependencies of ssh-4.10.7: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Since do-configure-pre-hook already depends on replace-interpreter, there
is no point in making any other stage depend on that as well. At best,
it has no effect. At worst it creates a hard-to-find difference between
builds that run "bmake install" directly and builds that split the build
into "bmake configure && bmake build && bmake install", as bulk builds
do.
This brings us up to the latest patch release for this branch before freeze...
--- 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
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Highlights
==========
erts:
o The Kernel application's User's Guide now contains a Logger Cookbook
with common usage patterns.
o Numerous improvements in the new socket and net modules
Standard libraries:
o common_test: ct_property_test logging is improved
o ssl: Correct handling of unordered chains so that it works as expected
Tools:
o Emacs erlang-mode function that lets the user open the documentation for
an Erlang/OTP function in an Emacs buffer has been improved. Users will
be asked if they want the man pages downloaded if they are not present in
the system.
This release fixes one bug in erts.
--- Fixed Bugs and Malfunctions ---
OTP-16301 Application(s): erts
Related Id(s): ERL-1079
Large amounts of quickly executed dirty work could
cause heavy contention on an internal spin lock. The
spin lock was replaced by a mutex which behaves much
better under these conditions.
Potential Incompatibilities
Mnesia: Transactions with sticky locks could with async_asym transactions be committed in the wrong order, since asym transactions are spawned on the remote nodes. To fix this bug the communication protocol between mnesia nodes had to be updated, thus mnesia will no longer be able to connect to nodes earlier than mnesia-4.14 ,first realeased in OTP-19.0.
Stdlib: Debugging of time-outs in gen_statem has been improved. Starting a time-out is now logged in sys:log and sys:trace. Running time-outs are visible in server crash logs, and with sys:get_status. Due to this system events {start_timer, Action, State} and {insert_timout, Event, State} have been added, which may surprise tools that rely on the format of these events. New features: The EventContent of a running time-out can be updated with {TimeoutType, update, NewEventContent}. Running time-outs can be cancelled with {TimeoutType, cancel} which is more readable than using Time = infinity.{rel, Name, Vsn, RelApps, Opts}.
Highlights
Compiler:
erlc can now automatically use a compile server to avoid starting an Erlang system for each file to be compiled in a multi-file project. See the documentation for how to enable it.
Standard libraries:
SSL: Basic support for TLS 1.3 Client for experimental use. For more information see the Standards Compliance chapter of the User's Guide.
crypto: The Message Authentication Codes (MAC) CMAC, HMAC and Poly1305 are unified into common functions in the New Crypto API. See the manual for CRYPTO. cipher_info/1 functions returns maps with information about the hash or cipher in the argument.
In the previous version, pkglint would want to indent the continuation
line with a tab. To prevent this, the variable assignment is now printed
in its canonical format.
Just like humans, pkglint does not read the "do not edit" notice at the
top of the file. Maybe it should.
Erlang/OTP 22 is a new major release with new features and improvements as well as incompatibilities.
For a deeper dive into the hightligts of the OTP 22 release, you can read our blog here:
http://blog.erlang.org/OTP-22-Highlights/
Potential Incompatibilities
gen_* behaviours: If logging of the last N messages through sys:log/2,3 is active for the server, this log is included in the terminate report.
reltool: A new element, Opts, can now be included in a rel tuple in the reltool release specific configuration format: {rel, Name, Vsn, RelApps, Opts}.
All external pids/ports/refs created by erlang:list_to_pid and similar functions now compare equal to any other pid/port/ref with same number from that node.
The old legacy erl_interface library is deprecated as of OTP 22, and will be removed in OTP 23. This does not apply to the ei library.
VxWorks is deprecated as of OTP 22 and will be removed in OTP 23.
Erts:
Support for Erlang Distribution protocol to split the payload of large signals into several fragments.
ETS option write_concurrency now also effects and improves scalability of ordered_set tables.
The length/1 BIF used to calculate the length of the list in one go without yielding, even if the list was very long. Now it yields when called with long lists.
A new (still experimental) module socket is introduced. It is implemented as a NIF and the idea is that it shall be as "close as possible" to the OS level socket interface.
Added the NIF function enif_term_type, which helps avoid long sequences of enif_is_xyz by returning the type of the given term. This is especially helpful for NIFs that serialize terms, such as JSON encoders, where it can improve both performance and readability.
Compiler:
The compiler has been rewritten to internally use an intermediate representation based on Static Single Assignment (SSA). The new intermediate representation makes more optimizations possible.
The binary matching optimizations are now applicable in many more circumstances than before.
Type optimizations are now applied across local function calls, and will remove a lot more redundant type tests than before.
All compiler options that can be given in the source file can now be given in the option list on the command line for erlc.
In OTP 22, HiPE (the native code compiler) is not fully functional. The reasons for this are new BEAM instructions for binary matching that the HiPE native code compiler does not support. If erlc is invoked with the +native option, and if any of the new binary matching instructions are used, the compiler will issue a warning and produce a BEAM file without native code.
Standard libraries:
Cover now uses the counters module instead of ets for updating counters. The new function cover:local_only/0 allows running Cover in a restricted but faster local-only mode. The increase in speed will vary depending on the type of code being cover-compiled, as an example the compiler test suite runs more than twice as fast with the new Cover.
A simple socket API is provided through the socket module. This is a low level API that does *not* replace gen_[tcp|udp|sctp]. It is intended to *eventually* replace the inet driver. It also provides a basic API that facilitates the implementation of other protocols than TCP, UDP and SCTP. Known issues are; No support for the Windows OS (currently), a small term leakage. This feature will be classed as experimental in OTP 22.
SSL: now uses the new logger API, including log levels and verbose debug logging.
SSL: Basic support for TLS 1.3 Server for experimental use.
crypto: The new hash_info/1 and cipher_info/1 functions returns maps with information about the hash or cipher in the argument.
Highlights from erlang 21.2 to 21.3:
Kernel:
The standard logger handler, logger_std_h, now has a new internal
feature for log rotation. For full information see the documentation.
SSL:
The Reason part of the error return from the functions connect and
handshake has a better and documented format. This is a potential
incompatibility. See the documentation.
Refactoring of state handling has improved the TLS application data
throughput and reduced CPU overhead
Code optimizations has reduced CPU load for encryption/decryption,
especially for Erlang's distribution protocol over TLS
Now supports active N
Erl_interface:
Support for plugin of a user supplied socket implementation has been added.
OTP:
The HTML reference documentation now shows the OTP version where
modules and functions were first introduced. Versions of OTP older than R13B04 is not shown in the reference
documentation
Changes:
---------------------------------------------------------------------
--- erts-10.2.4 -----------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-14728 Application(s): erts
Related Id(s): ERIERL-303
When using the {linger,{true,T}} option;
gen_tcp:listen/2 used the full linger time before
returning for example eaddrinuse. This bug has now been
corrected.
---------------------------------------------------------------------
--- stdlib-3.7.1 ----------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-15573 Application(s): stdlib
Related Id(s): ERIERL-306
Optimize pretty printing of terms. The slower behaviour
was introduced in Erlang/OTP 20.
Changes:
---------------------------------------------------------------------
--- inets-7.0.5 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.0.5 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15554 Application(s): inets
Related Id(s): ERIERL-289
Fixed bug that causes a crash in http client when using
hostnames (e.g. localhost) with the the option
ipv6_host_with_brackets set to true.
This change also fixes a regression: httpc:request
fails with connection error (nxdomain) if option
ipv6_host_with_brackets set to true and host component
of the URI is an IPv6 address.
Full runtime dependencies of inets-7.0.5: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Changes:
---------------------------------------------------------------------
--- erts-10.2.3 -----------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.2.3 application can *not* 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-15536 Application(s): erts
Related Id(s): ERL-827
Fix bug where doing a gen_tcp:send on a socket with
delay_send set to true could cause a segfault if the
other side closes the connection.
Bug was introduced in erts-10.2 (OTP-21.2).
OTP-15537 Application(s): erts
Fix a race condition when a port program closes that
could result in the next started port to hang during
startup.
When this fault happens the following error is normally
(but not always) logged:
=ERROR REPORT==== 14-Jan-2019::10:45:52.868246 ===
Bad input fd in erts_poll()! fd=11, port=#Port<0.505>,
driver=spawn, name=/bin/sh -s unix:cmd
Bug was introduced in erts-10.0 (OTP-21.0).
OTP-15538 Application(s): erts
Related Id(s): ERIERL-229
Fix a bug where polling for external events could be
delayed for a very long time if all active schedulers
were 100% loaded.
Bug was introduced in erts-10.2 (OTP-21.2).
Full runtime dependencies of erts-10.2.3: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- inets-7.0.4 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.0.4 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15544 Application(s): inets
Related Id(s): ERIERL-289
Make sure ipv6 addresses with brackets in URIs are
converted correctly before passing to lower level
functions like gen_tcp and ssl functions. Could cause
connection to fail.
Full runtime dependencies of inets-7.0.4: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
--- compiler-7.3.1 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.3.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15501 Application(s): compiler
Related Id(s): ERL-514, ERL-807, OTP-14808
An optimization that avoided allocation of a stack
frame for some case expressions was introduced in OTP
21. (ERL-504/OTP-14808) It turns out that in rare
circumstances, this optimization is not safe.
Therefore, this optimization has been disabled.
A similar optimization will be included in OTP 22 in a
safe way.
Full runtime dependencies of compiler-7.3.1: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- erts-10.2.2 -----------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.2.2 application can *not* 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-15495 Application(s): erts
Related Id(s): ERL-821
Fixed a crash when dangling files were closed after
init:restart/0.
OTP-15509 Application(s): erts
Related Id(s): PR-2027, PR-2093
A bug that could cause dirty schedulers to become
unresponsive has been fixed.
Full runtime dependencies of erts-10.2.2: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- ssl-9.1.2 -------------------------------------------------------
---------------------------------------------------------------------
The ssl-9.1.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15477 Application(s): ssl
Related Id(s): ERL-790
Fix encoding of the SRP extension length field in ssl.
The old encoding of the SRP extension length could
cause interoperability problems with third party SSL
implementations when SRP was used.
OTP-15504 Application(s): ssl
Related Id(s): ERL-371
Guarantee active once data delivery, handling TCP
stream properly.
OTP-15505 Application(s): ssl
Correct gen_statem returns for some error cases
Full runtime dependencies of ssl-9.1.2: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
--- xmerl-1.3.19 ----------------------------------------------------
---------------------------------------------------------------------
The xmerl-1.3.19 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15492 Application(s): xmerl
Related Id(s): ERIERL-283
The charset detection parsing crash in some cases when
the XML directive is not syntactic correct.
Full runtime dependencies of xmerl-1.3.19: erts-6.0, kernel-3.0,
stdlib-2.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------