Releases: erlang/otp
OTP 27.1
Patch Package: OTP 27.1
Git Tag: OTP-27.1
Date: 2024-09-18
Trouble Report Id: OTP-17848, OTP-19032, OTP-19097, OTP-19098,
OTP-19101, OTP-19102, OTP-19103, OTP-19104,
OTP-19105, OTP-19110, OTP-19112, OTP-19113,
OTP-19114, OTP-19119, OTP-19122, OTP-19126,
OTP-19128, OTP-19129, OTP-19130, OTP-19132,
OTP-19133, OTP-19134, OTP-19136, OTP-19138,
OTP-19139, OTP-19143, OTP-19145, OTP-19146,
OTP-19148, OTP-19153, OTP-19154, OTP-19157,
OTP-19163, OTP-19164, OTP-19166, OTP-19167,
OTP-19168, OTP-19169, OTP-19170, OTP-19171,
OTP-19172, OTP-19173, OTP-19175, OTP-19176,
OTP-19178, OTP-19179, OTP-19181, OTP-19182,
OTP-19183, OTP-19186, OTP-19187, OTP-19188,
OTP-19189, OTP-19190, OTP-19191, OTP-19192,
OTP-19193, OTP-19197, OTP-19199, OTP-19200,
OTP-19201, OTP-19202, OTP-19203, OTP-19205,
OTP-19206, OTP-19208, OTP-19209, OTP-19210,
OTP-19211, OTP-19212, OTP-19214, OTP-19215,
OTP-19216, OTP-19217, OTP-19218, OTP-19219,
OTP-19220, OTP-19222
Seq num: #8399, ERIERL-1102, ERIERL-1104, ERIERL-870,
GH-4362, GH-7621, GH-7746, GH-8378, GH-8454,
GH-8472, GH-8477, GH-8486, GH-8498, GH-8561,
GH-8562, GH-8568, GH-8604, GH-8605, GH-8613,
GH-8630, GH-8656, GH-8657, GH-8661, GH-8690,
GH-8715, GH-8738, GH-8748, GH-8779, GH-8785,
OTP-18671, OTP-18835, OTP-19101, OTP-19175,
PR-7226, PR-7419, PR-7919, PR-8261, PR-8310,
PR-8472, PR-8478, PR-8499, PR-8503, PR-8515,
PR-8516, PR-8518, PR-8521, PR-8528, PR-8539,
PR-8541, PR-8543, PR-8555, PR-8560, PR-8575,
PR-8578, PR-8583, PR-8584, PR-8596, PR-8611,
PR-8623, PR-8627, PR-8636, PR-8638, PR-8655,
PR-8672, PR-8683, PR-8686, PR-8690, PR-8692,
PR-8702, PR-8703, PR-8707, PR-8709, PR-8731,
PR-8739, PR-8740, PR-8741, PR-8742, PR-8751,
PR-8757, PR-8765, PR-8774, PR-8777, PR-8781
System: OTP
Release: 27
Application: asn1-5.3.1, common_test-1.27.1,
compiler-8.5.2, crypto-5.5.1, dialyzer-5.2.1,
diameter-2.4.1, edoc-1.3.2, erts-15.1,
ftp-1.2.3, inets-9.3, kernel-10.1, odbc-2.15,
public_key-1.16.2, runtime_tools-2.1.1,
snmp-5.17, ssh-5.2.2, ssl-11.2.2, stdlib-6.1,
syntax_tools-3.2.1, tftp-1.2.1, tools-4.1,
wx-2.4.3, xmerl-2.1
Predecessor: OTP 27.0.1
Check out the git tag OTP-27.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.
HIGHLIGHTS
-
The [
zip
] module has been updated with support for:- zip64 archives - Archives larger than 4GB or with more than 2^32 entries.
- extended timestamps - Higher resolution and in UTC.
- UID/GID - Save and extract the original UID/GID.
- Fixes so that permission mode attributes are correctly read and set for
files in archives. zip:list_dir/2
now also returns directories, not only files. (You can
disable this behaviour by using the optionskip_directories
).
Various bugs in the original implementation have also been fixed, such as:
- Correctly encode and decode the DOS timestamps for entries within an archive
(that is the non-extended timestamp). - Fix DOS timestamps to be set to localtime instead of UTC (use extended
timestamps for UTC timestamps). - Use the unix file attributes read from disk when creating archives instead
of setting everything to 644.
Own Id: OTP-19214
Application(s): erts, stdlib
Related Id(s): [PR-8765]
POTENTIAL INCOMPATIBILITIES
-
Progress reports for a dynamically started supervisor will now be logged at
debug level.Own Id: OTP-19202
Application(s): stdlib
Related Id(s): [GH-8715], [PR-8261], [PR-8741]
OTP-27.1
Fixed Bugs and Malfunctions
-
The description of the pre-defined macros has been clarified. In particular,
it is now made clear that the release returned by?OTP_RELEASE
is the
release under which the compiler is run.Own Id: OTP-19103
Related Id(s): [GH-8486], [PR-8518] -
ex_doc
now runs using an explicit escript instance instead of/usr/bin/env
so that package tools such asnix
can build the documentation.Own Id: OTP-19145
Related Id(s): [GH-8378], [PR-8596] -
The
otp_patch_apply
script, used for patching OTP applications, has been
fixed. It was not possible (and still is not possible) to apply applications
from the OTP 27.0.1 patch package onto an OTP 27.0 installation.Own Id: OTP-19182
-
./otp_build download_ex_doc
was usingsha1sum
andsha256sum
which work
on various Unix systems. macOS does not have these applications installed by
default, so we added a new dependency to the build process,shasum
, which is
installed by default on macOS and allows us to check the integrity of
ex_doc
.Own Id: OTP-19193
Related Id(s): [GH-8656], [PR-8707] -
On documentation web pages using Mermaid JS scripts for figures, the scripts
are now loaded asynchronously so that the rest of pages can be shown while the
scripts are still downloading.Own Id: OTP-19197
Related Id(s): [PR-8731]
Improvements and New Features
-
The obsolete documentation for OAM Principles has been removed.
Own Id: OTP-19110
Related Id(s): [PR-8528]
asn1-5.3.1
The asn1-5.3.1 application can be applied independently of other applications on
a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Fixed a cosmetic but harmless issue with the ASN.1 compiler passing on the
undec_rest
option to the Erlang compiler.Own Id: OTP-19218
Related Id(s): [GH-8779], [PR-8781]
Full runtime dependencies of asn1-5.3.1
erts-14.0, kernel-9.0, stdlib-5.0
common_test-1.27.1
The common_test-1.27.1 application can be applied independently of other
applications on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Groups with empty list specifying groups and test cases no longer crash
execution.Own Id: OTP-19032
Related Id(s): [GH-4362], [PR-7919] -
The Common_Test documentation and type specs have been polished.
Own Id: OTP-19148
Related Id(s): [PR-8516] -
Man pages are now available for
erl
,erlc
,dialyzer
, and all other
programs that are included in Erlang/OTP.Own Id: OTP-19201
Related Id(s): [PR-8740]
Full runtime dependencies of common_test-1.27.1
compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0,
kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
compiler-8.5.2
The compiler-8.5.2 application can be applied independently of other
applications on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Fixed a crash in an optimization pass relating to appending binaries.
Own Id: OTP-19168
Related Id(s): [GH-8630] -
Fixed a bug in the compiler's alias analysis pass that could make it emit
unsafe code.Own Id: OTP-19178
Related Id(s): [PR-8686]
Full runtime dependencies of compiler-8.5.2
crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
crypto-5.5.1
The crypto-5.5.1 application can be applied independently of other applications
on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
crypto built with
--enable-fips
will now accept an OpenSSL 3 lib without
fips provider as long as fips mode is not enabled.Own Id: OTP-19212
Related Id(s): [GH-8562]
Improvements and New Features
-
Added a warning in the documentation to avoid calling
crypto:start/0
as it
does not work for FIPS mode. Useapplication:start(crypto)
instead.Own Id: OTP-19143
-
Deprecation of RSA encryption functions has been reverted, as there still
exists legitimate use cases with other padding modes than PKCS-1.While use PCKS-1 padding with some versions of cryptolib could be considered
secure, we still recommend using other algorithms that are less sensitive to
oracle attacks.Own Id: OTP-19163
-
Compiler warnings for some removed functions have been corrected to point out
the correct replacement functions.Own Id: OTP-19186
Related Id(s): [PR-8709]
Full runtime dependencies of crypto-5.5.1
erts-9.0, kernel-5.3, stdlib-3.9
dialyzer-5.2.1
The dialyzer-5.2.1 application can be applied independently of other
applications on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Man pages are now available for
erl
,erlc
,dialyzer
, and all other
programs that are included in Erlang/OTP.Own Id: OTP-19201
Related Id(s): [PR-8740]
Full runtime dependencies of dialyzer-5.2.1
compiler-8.0, erts-12.0, kernel-8.0, st...
OTP 26.2.5.3
Patch Package: OTP 26.2.5.3
Git Tag: OTP-26.2.5.3
Date: 2024-09-05
Trouble Report Id: OTP-17848, OTP-19119, OTP-19168, OTP-19170,
OTP-19173, OTP-19175, OTP-19178, OTP-19179,
OTP-19187, OTP-19205, OTP-19206, OTP-19213
Seq num: ERIERL-1102, ERIERL-1108, GH-7746, GH-8454,
GH-8561, GH-8630, PR-8310, PR-8543, PR-8686,
PR-8690, PR-8763
System: OTP
Release: 26
Application: compiler-8.4.3.1, diameter-2.3.2.2,
erts-14.2.5.3, ftp-1.2.1.1, kernel-9.2.4.2,
public_key-1.15.1.2, ssh-5.1.4.2,
ssl-11.1.4.3
Predecessor: OTP 26.2.5.2
Check out the git tag OTP-26.2.5.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.
---------------------------------------------------------------------
--- compiler-8.4.3.1 ------------------------------------------------
---------------------------------------------------------------------
The compiler-8.4.3.1 application can be applied independently of
other applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19168 Application(s): compiler
Related Id(s): GH-8630
Fixed a crash in an optimization pass relating to
appending binaries.
OTP-19178 Application(s): compiler
Related Id(s): PR-8686
Fixed a bug in the compiler's alias analysis pass that
could make it emit unsafe code.
Full runtime dependencies of compiler-8.4.3.1: crypto-5.1, erts-13.0,
kernel-8.4, stdlib-5.0
---------------------------------------------------------------------
--- diameter-2.3.2.2 ------------------------------------------------
---------------------------------------------------------------------
The diameter-2.3.2.2 application can be applied independently of
other applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19206 Application(s): diameter
Related Id(s): ERIERL-1102
Stop service has been made more synchronous.
Full runtime dependencies of diameter-2.3.2.2: erts-10.0, kernel-3.2,
ssl-9.0, stdlib-5.0
---------------------------------------------------------------------
--- erts-14.2.5.3 ---------------------------------------------------
---------------------------------------------------------------------
The erts-14.2.5.3 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19175 Application(s): erts, kernel, ssl
Related Id(s): GH-8561, PR-8690
A race in the kTLS flavour of SSL distribution has been
fixed so inet_drv.c doesn't read ahead too much data
which could cause the kTLS encryption to be activated
too late when some encrypted data had already been read
into the inet_drv.c buffer as unencrypted.
Full runtime dependencies of erts-14.2.5.3: kernel-9.0, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- ftp-1.2.1.1 -----------------------------------------------------
---------------------------------------------------------------------
The ftp-1.2.1.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19119 Application(s): ftp
Related Id(s): GH-8454, PR-8543
Fix race condition that sometimes resulted in
ftp:recv_bin/2 returning ok instead of {ok, Data}.
Full runtime dependencies of ftp-1.2.1.1: erts-7.0, kernel-6.0,
runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
---------------------------------------------------------------------
--- kernel-9.2.4.2 --------------------------------------------------
---------------------------------------------------------------------
The kernel-9.2.4.2 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19175 Application(s): erts, kernel, ssl
Related Id(s): GH-8561, PR-8690
A race in the kTLS flavour of SSL distribution has been
fixed so inet_drv.c doesn't read ahead too much data
which could cause the kTLS encryption to be activated
too late when some encrypted data had already been read
into the inet_drv.c buffer as unencrypted.
OTP-19205 Application(s): kernel
Fix a deadlock when an application crashes during
startup and log messages were sent to standard out.
Logger would fail to print the messages to standard out
and instead print them to standard error.
OTP-19213 Application(s): kernel
Related Id(s): ERIERL-1108, PR-8763
Add the stdlib application parameters
shell_redraw_prompt_on_output which when set to false
disables redrawing of the shell prompt if any other
output is done.
Full runtime dependencies of kernel-9.2.4.2: crypto-5.0, erts-14.0,
sasl-3.0, stdlib-5.0
---------------------------------------------------------------------
--- public_key-1.15.1.2 ---------------------------------------------
---------------------------------------------------------------------
The public_key-1.15.1.2 application can be applied independently of
other applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19179 Application(s): public_key
For completeness handle rsa_pss implicit default value,
although this will probably not be commonly used as it
provides very weak security.
Full runtime dependencies of public_key-1.15.1.2: asn1-3.0,
crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- ssh-5.1.4.2 -----------------------------------------------------
---------------------------------------------------------------------
The ssh-5.1.4.2 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19170 Application(s): ssh
Related Id(s): GH-7746
With this change, ssh daemon started with TCP port
number argument will re-try to obtain listen socket
before returning error to user.
OTP-19173 Application(s): ssh
Related Id(s): PR-8310
With this change, robustness is improved by monitoring
connection handler process before casting socket
control notification.
Full runtime dependencies of ssh-5.1.4.2: crypto-5.0, erts-14.0,
kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
stdlib-5.0
---------------------------------------------------------------------
--- ssl-11.1.4.3 ----------------------------------------------------
---------------------------------------------------------------------
The ssl-11.1.4.3 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19175 Application(s): erts, kernel, ssl
Related Id(s): GH-8561, PR-8690
A race in the kTLS flavour of SSL distribution has been
fixed so inet_drv.c doesn't read ahead too much data
which could cause the kTLS encryption to be activated
too late when some encrypted data had already been read
into the inet_drv.c buffer as unencrypted.
--- Improvements and New Features ---
OTP-17848 Application(s): ssl
Make sure all TLS-1.3 terminations are graceful
(previous TLS version terminations already are).
OTP-19187 Application(s): ssl
Include more information in logging of SNI (Server Name
Indication) mismatch error.
Full runtime dependencies of ssl-11.1.4.3: crypto-5.0, erts-14.0,
inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
--- Thanks to -------------------------------------------------------
---------------------------------------------------------------------
Frej Drejhammar, jakob svenningsson
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 27.0.1
Patch Package: OTP 27.0.1
Git Tag: OTP-27.0.1
Date: 2024-07-10
Trouble Report Id: OTP-19091, OTP-19092, OTP-19094, OTP-19095,
OTP-19099, OTP-19100, OTP-19106, OTP-19107,
OTP-19108, OTP-19109, OTP-19116, OTP-19118,
OTP-19121, OTP-19123, OTP-19131, OTP-19137,
OTP-19140, OTP-19142, OTP-19147, OTP-19151,
OTP-19152
Seq num: ERIERL-1043, ERIERL-1106, GH-8376, GH-8482,
GH-8484, GH-8489, GH-8574, GH-8579, GH-8580,
GH-8588, GH-8614, PR-8345, PR-8507, PR-8508,
PR-8519, PR-8534, PR-8539, PR-8542, PR-8546,
PR-8567, PR-8581, PR-8585, PR-8616, PR-8619
System: OTP
Release: 27
Application: compiler-8.5.1, edoc-1.3.1, erts-15.0.1,
kernel-10.0.1, public_key-1.16.1, ssh-5.2.1,
ssl-11.2.1, stdlib-6.0.1
Predecessor: OTP 27.0
Check out the git tag OTP-27.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.
OTP-27.0.1
Improvements and New Features
-
Bump ex_doc version to v0.34.1 and fix copyright in published docs to have
correct year.Own Id: OTP-19095
Related Id(s): PR-8507
compiler-8.5.1
The compiler-8.5.1 application can be applied independently of other
applications on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
One of the compiler's optimization passes would get very slow when compiling
certain modules. The compiler will now automatically disable that pass for
input that would trigger the slowdown.Own Id: OTP-19131
Related Id(s): PR-8567 -
Fix
+deterministic
to work properly with documentation attributes.
Full runtime dependencies of compiler-8.5.1
crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
edoc-1.3.1
The edoc-1.3.1 application can be applied independently of other applications on
a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Fix broken makefile dependency when building HTML documentation.
Own Id: OTP-19116
Related Id(s): PR-8534
Full runtime dependencies of edoc-1.3.1
erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7
erts-15.0.1
The erts-15.0.1 application can be applied independently of other applications
on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
In rare circumstances the JIT could do an unsafe in-place update of a tuple.
Own Id: OTP-19108
Related Id(s): PR-8539 -
When a port command crashed in the inet driver during
gen_tcp:send/2
, a
monitor'DOWN'
message could be left lingering in the caller's mailbox. This
has now been fixed.Own Id: OTP-19121
Related Id(s): GH-8484 -
'DOWN'
messages originating from a monitored port, contained the atom
process
instead of the atomport
as the third element when the exit reason
was not an immediate term. -
Fix so that the options to enable Transparent Huge Page alignment of the
Erlang VM executable are only applied to the Erlang VM and not other native
programs such aserlc
anddialyzer
. This bug was introduced in Erlang/OTP
27.0.Own Id: OTP-19137
Related Id(s): GH-8574 -
When no time warp mode was enabled, a smaller Erlang monotonic time could
be read than a previously read time, i.e., breaking the monotonic property.
The runtime system will abort when detecting an issue like this since OTP
24.3.4.17 and OTP 25.0.Up until OTP 25 no time warp mode is the default. As of OTP 26 multi time
warp mode is the default.Own Id: OTP-19147
Related Id(s): ERIERL-1043, ERIERL-1106, PR-8619 -
When calling
trace:function(Session, _, true, [meta])
the meta tracer was
incorrectly set to be the calling process. Now it's set to the session tracer
as expected.
Full runtime dependencies of erts-15.0.1
kernel-9.0, sasl-3.3, stdlib-4.1
kernel-10.0.1
The kernel-10.0.1 application can be applied independently of other applications
on a full OTP 27 installation.
Improvements and New Features
Full runtime dependencies of kernel-10.0.1
crypto-5.0, erts-15.0, sasl-3.0, stdlib-6.0
public_key-1.16.1
The public_key-1.16.1 application can be applied independently of other
applications on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Fix bug in dnsName constraint check, could cause valid cert to be considered
bad during path validation.
Full runtime dependencies of public_key-1.16.1
asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
ssh-5.2.1
The ssh-5.2.1 application can be applied independently of other applications on
a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
With this change, race condition between connection closing and automatic
window adjustment is fixed.Own Id: OTP-19109
Related Id(s): PR-8345
Full runtime dependencies of ssh-5.2.1
crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1,
stdlib-5.0, stdlib-6.0
ssl-11.2.1
The ssl-11.2.1 application can be applied independently of other applications on
a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Check for TLS-1.3 support should check minimum requirements.
Own Id: OTP-19094
Related Id(s): GH-8489 -
If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2 negotiated convert
TLS-1.3 ECDSA schemes to TLS-1.2 hash and signature pairs for increased
interoperability.Own Id: OTP-19107
Related Id(s): GH-8376 -
TLS-1.3 negotiation now uses SNI based options correctly instead of ignoring
them.Own Id: OTP-19140
Improvements and New Features
-
Make it easier to distinguish between a invalid signature and unsupported
signature.Own Id: OTP-19091
-
Enhance ALERT logs to help understand what causes the alert.
Own Id: OTP-19092
Related Id(s): GH-8482 -
When the default value for signature_algs is used, default the
signature_algs_cert to the default value + rsa_pkcs1_sha1 to allow this
algorithms for certificates but not for the TLS protocol. This is for better
interoperability. If signature_algs is set explicitly signature_algs_cert must
also be set explicitly if they should be different.Own Id: OTP-19152
Related Id(s): GH-8588
Full runtime dependencies of ssl-11.2.1
crypto-5.0, erts-15.0, inets-5.10.7, kernel-9.0, public_key-1.15,
runtime_tools-1.15.1, stdlib-6.0
stdlib-6.0.1
The stdlib-6.0.1 application can be applied independently of other applications
on a full OTP 27 installation.
Fixed Bugs and Malfunctions
-
Fix so that missing
-doc({file, File})
files only result in a warning and
not an error.Own Id: OTP-19099
Related Id(s): PR-8542 -
Fixed
json
bugs,json:encode_key_value_list/2
did not generate arrays
andjson:decode/3
did not invoke the user callback for0
.
Full runtime dependencies of stdlib-6.0.1
compiler-5.0, crypto-4.5, erts-15.0, kernel-10.0, sasl-3.0
Thanks to
Frej Drejhammar, Igor Goryachev, MichaΕ MuskaΕa
OTP 26.2.5.2
Patch Package: OTP 26.2.5.2
Git Tag: OTP-26.2.5.2
Date: 2024-07-10
Trouble Report Id: OTP-19143, OTP-19147, OTP-19152, OTP-19154,
OTP-19157
Seq num: ERIERL-1043, ERIERL-1106, GH-8588, GH-8613,
PR-8619, PR-8627, PR-8638
System: OTP
Release: 26
Application: crypto-5.4.2.1, erts-14.2.5.2, ssl-11.1.4.2,
stdlib-5.2.3.1
Predecessor: OTP 26.2.5.1
Check out the git tag OTP-26.2.5.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.
---------------------------------------------------------------------
--- crypto-5.4.2.1 --------------------------------------------------
---------------------------------------------------------------------
The crypto-5.4.2.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Improvements and New Features ---
OTP-19143 Application(s): crypto
Add warning in documentation to avoid crypto:start/0 as
it does not work for FIPS mode. Use
application:start(crypto) instead.
Full runtime dependencies of crypto-5.4.2.1: erts-9.0, kernel-5.3,
stdlib-3.9
---------------------------------------------------------------------
--- erts-14.2.5.2 ---------------------------------------------------
---------------------------------------------------------------------
The erts-14.2.5.2 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19147 Application(s): erts
Related Id(s): ERIERL-1043, ERIERL-1106, PR-8619
When no time warp mode was enabled, a smaller Erlang
monotonic time could be read than a previously read
time, i.e., breaking the monotonic property. The
runtime system will abort when detecting an issue like
this since OTP 24.3.4.17 and OTP 25.0.
Up until OTP 25 no time warp mode is the default. As of
OTP 26 multi time warp mode is the default.
OTP-19154 Application(s): erts
Related Id(s): GH-8613, PR-8627
A scheduler thread could get stuck when deleting a
memory allocator carrier when adjacent carriers were
deleted and/or inserted simultaneously by other
schedulers. This in turn could cause the other
schedulers to get stuck as well.
Full runtime dependencies of erts-14.2.5.2: kernel-9.0, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- ssl-11.1.4.2 ----------------------------------------------------
---------------------------------------------------------------------
The ssl-11.1.4.2 application can be applied independently of other
applications on a full OTP 26 installation.
--- Improvements and New Features ---
OTP-19152 Application(s): ssl
Related Id(s): GH-8588
When the default value for signature_algs is used,
default the signature_algs_cert to the default value +
rsa_pkcs1_sha1 to allow this algorithms for
certificates but not for the TLS protocol. This is for
better interoperability. If signature_algs is set
explicitly signature_algs_cert must also be set
explicitly if they should be different.
Full runtime dependencies of ssl-11.1.4.2: crypto-5.0, erts-14.0,
inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
--- stdlib-5.2.3.1 --------------------------------------------------
---------------------------------------------------------------------
The stdlib-5.2.3.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19157 Application(s): stdlib
Related Id(s): PR-8638
Fixed a bug that caused the shell completion to crash
when keyword and tuple appeared on the same line.
Full runtime dependencies of stdlib-5.2.3.1: compiler-5.0,
crypto-4.5, erts-13.1, kernel-9.0, sasl-3.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 25.3.2.13
Patch Package: OTP 25.3.2.13
Git Tag: OTP-25.3.2.13
Date: 2024-07-08
Trouble Report Id: OTP-19057, OTP-19109, OTP-19123, OTP-19140,
OTP-19147, OTP-19154
Seq num: ERIERL-1043, ERIERL-1106, GH-7483, GH-8484,
GH-8613, PR-8345, PR-8546, PR-8619, PR-8627
System: OTP
Release: 25
Application: erts-13.2.2.10, ssh-4.15.3.5, ssl-10.9.1.5
Predecessor: OTP 25.3.2.12
Check out the git tag OTP-25.3.2.13, 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-13.2.2.10 --------------------------------------------------
---------------------------------------------------------------------
Note! The erts-13.2.2.10 application *cannot* be applied
independently of other applications on an arbitrary OTP 25
installation.
On a full OTP 25 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-8.5 (first satisfied in OTP 25.1)
-- stdlib-4.1 (first satisfied in OTP 25.1)
--- Fixed Bugs and Malfunctions ---
OTP-19123 Application(s): erts
Related Id(s): GH-8484, PR-8546
'DOWN' messages originating from a monitored port,
contained the atom process instead of the atom port as
the third element when the exit reason was not an
immediate term.
OTP-19147 Application(s): erts
Related Id(s): ERIERL-1043, ERIERL-1106, PR-8619
When no time warp mode was enabled, a smaller Erlang
monotonic time could be read than a previously read
time, i.e., breaking the monotonic property. The
runtime system will abort when detecting an issue like
this since OTP 24.3.4.17 and OTP 25.0.
Up until OTP 25 no time warp mode is the default. As of
OTP 26 multi time warp mode is the default.
OTP-19154 Application(s): erts
Related Id(s): GH-8613, PR-8627
A scheduler thread could get stuck when deleting a
memory allocator carrier when adjacent carriers were
deleted and/or inserted simultaneously by other
schedulers. This in turn could cause the other
schedulers to get stuck as well.
Full runtime dependencies of erts-13.2.2.10: kernel-8.5, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- ssh-4.15.3.5 ----------------------------------------------------
---------------------------------------------------------------------
The ssh-4.15.3.5 application can be applied independently of other
applications on a full OTP 25 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19057 Application(s): ssh
Related Id(s): GH-7483, PR-8345
With this change, ssh client will automatically adjust
transfer window size for commands executed remotely
over SSH.
OTP-19109 Application(s): ssh
Related Id(s): PR-8345
With this change, race condition between connection
closing and automatic window adjustment is fixed.
Full runtime dependencies of ssh-4.15.3.5: crypto-5.0, erts-11.0,
kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
---------------------------------------------------------------------
--- ssl-10.9.1.5 ----------------------------------------------------
---------------------------------------------------------------------
Note! The ssl-10.9.1.5 application *cannot* be applied independently
of other applications on an arbitrary OTP 25 installation.
On a full OTP 25 installation, also the following runtime
dependency has to be satisfied:
-- stdlib-4.1 (first satisfied in OTP 25.1)
--- Fixed Bugs and Malfunctions ---
OTP-19140 Application(s): ssl
TLS-1.3 negotiation now uses SNI based options
correctly instead of ignoring them.
Full runtime dependencies of ssl-10.9.1.5: crypto-5.0, erts-10.0,
inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 26.2.5.1
Patch Package: OTP 26.2.5.1
Git Tag: OTP-26.2.5.1
Date: 2024-06-25
Trouble Report Id: OTP-19057, OTP-19063, OTP-19090, OTP-19091,
OTP-19092, OTP-19094, OTP-19100, OTP-19104,
OTP-19107, OTP-19109, OTP-19121, OTP-19123,
OTP-19140
Seq num: ERIERL-870, GH-7483, GH-8376, GH-8482,
GH-8484, GH-8489, OTP-18835, PR-8345,
PR-8399, PR-8508, PR-8546
System: OTP
Release: 26
Application: diameter-2.3.2.1, erts-14.2.5.1,
kernel-9.2.4.1, public_key-1.15.1.1,
ssh-5.1.4.1, ssl-11.1.4.1
Predecessor: OTP 26.2.5
Check out the git tag OTP-26.2.5.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.
---------------------------------------------------------------------
--- diameter-2.3.2.1 ------------------------------------------------
---------------------------------------------------------------------
The diameter-2.3.2.1 application can be applied independently of
other applications on a full OTP 26 installation.
--- Improvements and New Features ---
OTP-19090 Application(s): diameter
Related Id(s): PR-8399
Pick peer can now also handle request of type
#diameter_packet{}.
Full runtime dependencies of diameter-2.3.2.1: erts-10.0, kernel-3.2,
ssl-9.0, stdlib-5.0
---------------------------------------------------------------------
--- erts-14.2.5.1 ---------------------------------------------------
---------------------------------------------------------------------
The erts-14.2.5.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19063 Application(s): erts, kernel
Related Id(s): OTP-18835
A call to socket:[recv|recvfrom|recvmsg]/* with Timeout
= 0 on Windows could cause a (case clause) crash if
data is immediately available.
OTP-19121 Application(s): erts
Related Id(s): GH-8484
When a port command crashed in the inet driver during
gen_tcp:send/2, a monitor 'DOWN' message could be left
lingering in the caller's mailbox. This has now been
fixed.
OTP-19123 Application(s): erts
Related Id(s): GH-8484, PR-8546
'DOWN' messages originating from a monitored port,
contained the atom process instead of the atom port as
the third element when the exit reason was not an
immediate term.
Full runtime dependencies of erts-14.2.5.1: kernel-9.0, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- kernel-9.2.4.1 --------------------------------------------------
---------------------------------------------------------------------
The kernel-9.2.4.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19063 Application(s): erts, kernel
Related Id(s): OTP-18835
A call to socket:[recv|recvfrom|recvmsg]/* with Timeout
= 0 on Windows could cause a (case clause) crash if
data is immediately available.
OTP-19104 Application(s): kernel
Related Id(s): ERIERL-870
Open a disk_log file and combining head_func with
rotate options did not work.
Full runtime dependencies of kernel-9.2.4.1: crypto-5.0, erts-14.0,
sasl-3.0, stdlib-5.0
---------------------------------------------------------------------
--- public_key-1.15.1.1 ---------------------------------------------
---------------------------------------------------------------------
The public_key-1.15.1.1 application can be applied independently of
other applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19100 Application(s): public_key
Related Id(s): GH-8482, PR-8508
Fix bug in dnsName constraint check, could cause valid
cert to be considered bad during path validation.
Full runtime dependencies of public_key-1.15.1.1: asn1-3.0,
crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- ssh-5.1.4.1 -----------------------------------------------------
---------------------------------------------------------------------
The ssh-5.1.4.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19057 Application(s): ssh
Related Id(s): GH-7483, PR-8345
With this change, ssh client will automatically adjust
transfer window size for commands executed remotely
over SSH.
OTP-19109 Application(s): ssh
Related Id(s): PR-8345
With this change, race condition between connection
closing and automatic window adjustment is fixed.
Full runtime dependencies of ssh-5.1.4.1: crypto-5.0, erts-14.0,
kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
stdlib-5.0
---------------------------------------------------------------------
--- ssl-11.1.4.1 ----------------------------------------------------
---------------------------------------------------------------------
The ssl-11.1.4.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19094 Application(s): ssl
Related Id(s): GH-8489
Check for TLS-1.3 support should check minimum
requirements.
OTP-19107 Application(s): ssl
Related Id(s): GH-8376
If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2
negotiated convert TLS-1.3 ECDSA schemes to TLS-1.2
hash and signature pairs for increased
interoperability.
OTP-19140 Application(s): ssl
TLS-1.3 negotiation now uses SNI based options
correctly instead of ignoring them.
--- Improvements and New Features ---
OTP-19091 Application(s): ssl
Make it easier to distinguish between a invalid
signature and unsupported signature.
OTP-19092 Application(s): ssl
Related Id(s): GH-8482
Enhance ALERT logs to help understand what causes the
alert.
Full runtime dependencies of ssl-11.1.4.1: crypto-5.0, erts-14.0,
inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
--- Thanks to -------------------------------------------------------
---------------------------------------------------------------------
Anupama Singh
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 27.0
Erlang/OTP 27 Released
All artifacts for the release can be downloaded from the Erlang/OTP Github release and you can view the new documentation at https://erlang.org/doc.
You can also install the latest release using kerl like this:
kerl build 27.0 27.0
The new Erlang/OTP 27 release contains new features, improvements as well as a few incompatibilities. Some of the new features are highlighted below.
Many thanks to all contributors!
Documentation
EEP-59 has been implemented. Documentation attributes in source files can now be used to document functions, types, callbacks, and modules.
The entire Erlang/OTP documentation is now using the new documentation system.
New language features
-
Triple-Quoted Strings has been implemented as per EEP 64 to allow a string to encompass a complete paragraph.
-
Adjacent string literals without intervening white space is now a syntax error, to avoid possible confusion with triple-quoted strings.
-
Sigils on string literals (both ordinary and triple-quoted) have been implemented as per EEP 66. For example,
~"BjΓΆrn"
or~b"BjΓΆrn"
are now equivalent to<<"BjΓΆrn"/utf8>>
.
Compiler and JIT improvements
-
The compiler will now merge consecutive updates of the same record.
-
Safe destructive update of tuples has been implemented in the compiler and runtime system. This allows the VM to update tuples in-place when it is safe to do so, thus improving performance by doing less copying but also by producing less garbage.
-
The
maybe
expression is now enabled by default, eliminating the need for enabling themaybe_expr
feature. -
Native coverage support has been implemented in the JIT. It will automatically be used by the
cover
tool to reduce the execution overhead when running cover-compiled code. There are also new APIs to support native coverage without using thecover
tool. -
The compiler will now raise a warning when updating record/map literals to catch a common mistake. For example, the compiler will now emit a warning for
#r{a=1}#r{b=2}
. -
The order in which the compiler looks up options has changed.
When there is a conflict in the compiler options given in the
-compile()
attribute and options given to the compiler, the options given in the-compile()
attribute overrides the option given to the compiler, which in turn overrides options given in theERL_COMPILER_OPTIONS
environment variable.Example:
If
some_module.erl
has the following attribute:-compile([nowarn_missing_spec]).
and the compiler is invoked like so:
% erlc +warn_missing_spec some_module.erl
no warnings will be issued for functions that do not have any specs.
ERTS
-
The
erl
command now supports the-S
flag, which is similar to the-run
flag, but with some of the rough edges filed off. -
By default, escripts will now be compiled instead of interpreted. That means that the
compiler
application must be installed. -
The existing experimental support for archive files will be changed in a future release. The support for having an archive in an escript will remain, but the support for using archives in a release will either become more limited or completely removed.
As of Erlang/OTP 27, the function
code:lib_dir/2
, the-code_path_choice
flag, and usingerl_prim_loader
for reading members of an archive are deprecated.To remain compatible with future version of Erlang/OTP
escript
scripts that need to retrieve data files from its archive should useescript:extract/2
instead oferl_prim_loader
andcode:lib_dir/2
. -
The default process limit has been raised to
1048576
processes. -
The
erlang:system_monitor/2
functionality is now able to monitor long message queues in the system. -
The obsolete and undocumented support for opening a port to an external resource by passing an atom (or a string) as first argument to
open_port()
, implemented by the vanilla driver, has been removed. This feature has been scheduled for removal in OTP 27 since the release of OTP 26. -
The
pid
field has been removed fromerlang:fun_info/1,2
. -
Multiple trace sessions are now supported.
-
configure
now automatically enables support for year-2038-safe timestamps.By default
configure
scripts used when building OTP will now try to enable support for timestamps that will work after mid-January 2038. This has typically only been an issue on 32-bit platforms. Ifconfigure
cannot figure out how to enable such timestamps, it will abort with an error message. If you want to build the system anyway, knowing that the system will not function properly after mid-January 2038, you can pass the--disable-year2038
option toconfigure
, which will enableconfigure
to continue without support for timestamps after mid-January 2038.'
STDLIB
-
There is a new module json for encoding and decoding JSON.
Both encoding and decoding can be customized. Decoding can be done in a SAX-like fashion and handle multiple documents and streams of data.
The new
json
module is used by thejer
(JSON Encoding Rules) for ASN.1 for encoding and decoding JSON. Thus, there is no longer any need to supply an external JSON library. -
Several new functions that accept funs have been added to module
timer
. -
The functions
is_equal/2
,map/2
, andfiltermap/2
have been added to the modulessets
,ordsets
, andgb_sets
. -
There are new efficient
ets
traversal functions with guaranteed atomicity. For example,ets:next/2
followed byets:lookup/2
can now be replaced withets:next_lookup/1
. -
The new function
ets:update_element/4
is similar toets:update_element/3
, but takes a default tuple as the fourth argument, which will be inserted if no previous record with that key exists. -
binary:replace/3,4
now supports using a fun for supplying the replacement binary. -
The new function
proc_lib:set_label/1
can be used to add a descriptive term to any process that does not have a registered name. The name will
be shown by tools such asc:i/0
andobserver
, and it will be included in crash reports produced by processes usinggen_server
,gen_statem
,gen_event
, andgen_fsm
. -
Added functions to retrieve the next higher or lower key/element from
gb_trees
andgb_sets
, as well as returning iterators that start at given keys/elements.
common_test
-
Calls to
ct:capture_start/0
andct:capture_stop/0
are now synchronous to ensure that all output is captured. -
The default CSS will now include a basic dark mode handling if it is preferred by the browser.
crypto
- The functions
crypto_dyn_iv_init/3
andcrypto_dyn_iv_update/3
that were marked as deprecated in Erlang/OTP 25 have been removed.
dialyzer
- The
--gui
option for Dialyzer has been removed.
ssl
- The
ssl
client can negotiate and handle certificate status request (OCSP stapling support on the client side).
tools
- There is a new tool
tprof
, which combines the functionality ofeprof
andcprof
under one interface. It also adds heap profiling.
xmerl
- As an alternative to
xmerl_xml
, a new export modulexmerl_xml_indent
that provides out-of-the box indented output has been added.
For more details about new features and potential incompatibilities see the README.
OTP 26.2.5
Patch Package: OTP 26.2.5
Git Tag: OTP-26.2.5
Date: 2024-05-02
Trouble Report Id: OTP-19061, OTP-19062, OTP-19065, OTP-19067,
OTP-19068, OTP-19069, OTP-19070, OTP-19071,
OTP-19072, OTP-19076, OTP-19078
Seq num: ERIERL-1073, GH-8356, GH-8383, GH-8385,
OTP-18999, PR-8367, PR-8379, PR-8380,
PR-8391, PR-8422
System: OTP
Release: 26
Application: dialyzer-5.1.3, erts-14.2.5, kernel-9.2.4,
mnesia-4.23.1, ssl-11.1.4, stdlib-5.2.3
Predecessor: OTP 26.2.4
Check out the git tag OTP-26.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.
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-19069 Application(s): erts
Added a warning to open_port/2 regarding the BadBatBut
attack affecting Windows.
---------------------------------------------------------------------
--- dialyzer-5.1.3 --------------------------------------------------
---------------------------------------------------------------------
The dialyzer-5.1.3 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19068 Application(s): dialyzer
Related Id(s): GH-8383
Fixed an issue with bitstring type inference on
segments following UTF-8/16/32 segments.
Full runtime dependencies of dialyzer-5.1.3: compiler-8.0, erts-12.0,
kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0
---------------------------------------------------------------------
--- erts-14.2.5 -----------------------------------------------------
---------------------------------------------------------------------
The erts-14.2.5 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19061 Application(s): erts
gen_sctp:send/3,4 now waits for the send to complete
instead of returning an OS result such as
{error,Β ewouldblock}.
OTP-19070 Application(s): erts
Related Id(s): GH-8385
ETS functions did not properly handle keys containing
maps, sometimes matching too many or too few objects.
OTP-19071 Application(s): erts
Related Id(s): PR-8380, OTP-18999
Fix CPU quota determination for cgroups.
The bug was introduced through OTP-18999.
--- Improvements and New Features ---
OTP-19069 Application(s): erts
*** HIGHLIGHT ***
Added a warning to open_port/2 regarding the BadBatBut
attack affecting Windows.
Full runtime dependencies of erts-14.2.5: kernel-9.0, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- kernel-9.2.4 ----------------------------------------------------
---------------------------------------------------------------------
The kernel-9.2.4 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19072 Application(s): kernel, stdlib
Related Id(s): PR-8391
Fix the shell Job Control Mode to not crash when typing
TAB or CTRL+R.
OTP-19078 Application(s): kernel
Related Id(s): PR-8422
Fix calls to blocking application APIs to throw an
exception with reason terminating if called when the
system is terminating.
This is done in order to avoid deadlocks during
shutdown or restart.
Full runtime dependencies of kernel-9.2.4: crypto-5.0, erts-14.0,
sasl-3.0, stdlib-5.0
---------------------------------------------------------------------
--- mnesia-4.23.1 ---------------------------------------------------
---------------------------------------------------------------------
The mnesia-4.23.1 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19076 Application(s): mnesia
Related Id(s): ERIERL-1073
Mnesia could crash during startup if del_table_copy/2
and add_table_copy/3 was invoked when the table was
loading.
Full runtime dependencies of mnesia-4.23.1: erts-9.0, kernel-5.3,
stdlib-5.0
---------------------------------------------------------------------
--- ssl-11.1.4 ------------------------------------------------------
---------------------------------------------------------------------
The ssl-11.1.4 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19065 Application(s): ssl
Related Id(s): GH-8356, PR-8367
Fix certificate authorities check so that CA closest to
peer is not lost. It could manifest itself in a failed
connection as the client failed to realize it had a
valid certificate chain to send to the server.
OTP-19067 Application(s): ssl
Related Id(s): PR-8379
ssl:signature_algs/2 did not list some legacy algorithm
schemes correctly when listing all algorithms
available.
Full runtime dependencies of ssl-11.1.4: crypto-5.0, erts-14.0,
inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
--- stdlib-5.2.3 ----------------------------------------------------
---------------------------------------------------------------------
The stdlib-5.2.3 application can be applied independently of other
applications on a full OTP 26 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19062 Application(s): stdlib
Fix shell expansion of -type a() :: $a. in the erlang
shell.
OTP-19072 Application(s): kernel, stdlib
Related Id(s): PR-8391
Fix the shell Job Control Mode to not crash when typing
TAB or CTRL+R.
Full runtime dependencies of stdlib-5.2.3: compiler-5.0, crypto-4.5,
erts-13.1, kernel-9.0, sasl-3.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 25.3.2.12
Patch Package: OTP 25.3.2.12
Git Tag: OTP-25.3.2.12
Date: 2024-05-02
Trouble Report Id: OTP-19065, OTP-19070, OTP-19071, OTP-19076
Seq num: ERIERL-1073, GH-8356, GH-8385, OTP-18999,
PR-8367, PR-8380
System: OTP
Release: 25
Application: erts-13.2.2.9, mnesia-4.21.4.3, ssl-10.9.1.4
Predecessor: OTP 25.3.2.11
Check out the git tag OTP-25.3.2.12, 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-13.2.2.9 ---------------------------------------------------
---------------------------------------------------------------------
Note! The erts-13.2.2.9 application *cannot* be applied independently
of other applications on an arbitrary OTP 25 installation.
On a full OTP 25 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-8.5 (first satisfied in OTP 25.1)
-- stdlib-4.1 (first satisfied in OTP 25.1)
--- Fixed Bugs and Malfunctions ---
OTP-19070 Application(s): erts
Related Id(s): GH-8385
ETS functions did not properly handle keys containing
maps, sometimes matching too many or too few objects.
OTP-19071 Application(s): erts
Related Id(s): PR-8380, OTP-18999
Fix CPU quota determination for cgroups.
The bug was introduced through OTP-18999.
Full runtime dependencies of erts-13.2.2.9: kernel-8.5, sasl-3.3,
stdlib-4.1
---------------------------------------------------------------------
--- mnesia-4.21.4.3 -------------------------------------------------
---------------------------------------------------------------------
The mnesia-4.21.4.3 application can be applied independently of other
applications on a full OTP 25 installation.
--- Fixed Bugs and Malfunctions ---
OTP-19076 Application(s): mnesia
Related Id(s): ERIERL-1073
Mnesia could crash during startup if del_table_copy/2
and add_table_copy/3 was invoked when the table was
loading.
Full runtime dependencies of mnesia-4.21.4.3: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- ssl-10.9.1.4 ----------------------------------------------------
---------------------------------------------------------------------
Note! The ssl-10.9.1.4 application *cannot* be applied independently
of other applications on an arbitrary OTP 25 installation.
On a full OTP 25 installation, also the following runtime
dependency has to be satisfied:
-- stdlib-4.1 (first satisfied in OTP 25.1)
--- Fixed Bugs and Malfunctions ---
OTP-19065 Application(s): ssl
Related Id(s): GH-8356, PR-8367
Fix certificate authorities check so that CA closest to
peer is not lost. It could manifest itself in a failed
connection as the client failed to realize it had a
valid certificate chain to send to the server.
Full runtime dependencies of ssl-10.9.1.4: crypto-5.0, erts-10.0,
inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
stdlib-4.1
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
OTP 27.0-rc3
OTP 27.0-rc3
Erlang/OTP 27.0-rc3 is the third and final release candidate before the OTP 27.0 release.
The intention with this release is to get feedback from our users. All feedback is welcome, even if it is only to say that it works for you.
We encourage users to try it out and give us feedback either by creating an issue at https://github.com/erlang/otp/issues or by posting to Erlang Forums.
All artifacts for the release can be downloaded from the Erlang/OTP Github release and you can view the new documentation at https://erlang.org/documentation/doc-15.0-rc3/doc.
You can also install the latest release using kerl like this:
kerl build 27.0-rc3 27.0-rc3.
Erlang/OTP 27 is a new major release with new features, improvements as well as a few incompatibilities. Some of the new features are highlighted below.
Many thanks to all contributors!
Notable changes in RC3
- The support for multiple trace sessions is now documented and ready for use.
Highlights for RC2
-
There is a new module json for encoding and decoding JSON.
Both encoding and decoding can be customized. Decoding can be done in a SAX-like fashion and handle multiple documents and streams of data.
The new
json
module is used by thejer
(JSON Encoding Rules) for ASN.1 for encoding and decoding JSON. Thus, there is no longer any need to supply an external JSON library.
Other notable changes in RC2
-
The existing experimental support for archive files will be changed in a future release. The support for having an archive in an escript will remain, but the support for using archives in a release will either become more limited or completely removed.
As of Erlang/OTP 27, the function
code:lib_dir/2
, the-code_path_choice
flag, and usingerl_prim_loader
for reading members of an archive are deprecated.To remain compatible with future version of Erlang/OTP
escript
scripts that need to retrieve data files from its archive should useescript:extract/2
instead oferl_prim_loader
andcode:lib_dir/2
. -
The order in which the compiler looks up options has changed.
When there is a conflict in the compiler options given in the
-compile()
attribute and options given to the compiler, the options given in the-compile()
attribute overrides the option given to the compiler, which in turn overrides options given in theERL_COMPILER_OPTIONS
environment variable.Example:
If
some_module.erl
has the following attribute:-compile([nowarn_missing_spec]).
and the compiler is invoked like so:
% erlc +warn_missing_spec some_module.erl
no warnings will be issued for functions that do not have any specs.
-
configure
now automatically enables support for year-2038-safe timestamps.By default
configure
scripts used when building OTP will now try to enable support for timestamps that will work after mid-January
2038. This has typically only been an issue on 32-bit platforms. Ifconfigure
cannot figure out how to enable such timestamps, it will abort with an error message. If you want to build the system anyway, knowing that the system will not function properly after mid-January 2038, you can pass the--disable-year2038
option toconfigure
, which will enableconfigure
to continue without support for timestamps after mid-January 2038.'
Highlights for RC1
Documentation
EEP-59 has been implemented. Documentation attributes in source files can now be used to document functions, types, callbacks, and modules.
The entire Erlang/OTP documentation is now using the new documentation system.
New language features
-
Triple-Quoted Strings has been implemented as per EEP 64 to allow a string to encompass a complete paragraph.
-
Adjacent string literals without intervening white space is now a syntax error, to avoid possible confusion with triple-quoted strings.
-
Sigils on string literals (both ordinary and triple-quoted) have been implemented as per EEP 66. For example,
~"BjΓΆrn"
or~b"BjΓΆrn"
are now equivalent to<<"BjΓΆrn"/utf8>>
.
Compiler and JIT improvements
-
The compiler will now merge consecutive updates of the same record.
-
Safe destructive update of tuples has been implemented in the compiler and runtime system. This allows the VM to update tuples in-place when it is safe to do so, thus improving performance by doing less copying but also by producing less garbage.
-
The
maybe
expression is now enabled by default, eliminating the need for enabling themaybe_expr
feature. -
Native coverage support has been implemented in the JIT. It will automatically be used by the
cover
tool to reduce the execution overhead when running cover-compiled code. There are also new APIs to support native coverage without using thecover
tool. -
The compiler will now raise a warning when updating record/map literals to catch a common mistake. For example, the compiler will now emit a warning for
#r{a=1}#r{b=2}
.
ERTS
-
The
erl
command now supports the-S
flag, which is similar to the-run
flag, but with some of the rough edges filed off. -
By default, escripts will now be compiled instead of interpreted. That means that the
compiler
application must be installed. -
The default process limit has been raised to
1048576
processes. -
The
erlang:system_monitor/2
functionality is now able to monitor long message queues in the system. -
The obsolete and undocumented support for opening a port to an external resource by passing an atom (or a string) as first argument to
open_port()
, implemented by the vanilla driver, has been removed. This feature has been scheduled for removal in OTP 27 since the release of OTP 26. -
The
pid
field has been removed fromerlang:fun_info/1,2
. -
Multiple trace sessions are now supported.
STDLIB
-
Several new functions that accept funs have been added to module
timer
. -
The functions
is_equal/2
,map/2
, andfiltermap/2
have been added to the modulessets
,ordsets
, andgb_sets
. -
There are new efficient
ets
traversal functions with guaranteed atomicity. For example,ets:next/2
followed byets:lookup/2
can now be replaced withets:next_lookup/1
. -
The new function
ets:update_element/4
is similar toets:update_element/3
, but takes a default tuple as the fourth argument, which will be inserted if no previous record with that key exists. -
binary:replace/3,4
now supports using a fun for supplying the replacement binary. -
The new function
proc_lib:set_label/1
can be used to add a descriptive term to any process that does not have a registered name. The name will
be shown by tools such asc:i/0
andobserver
, and it will be included in crash reports produced by processes usinggen_server
,gen_statem
,gen_event
, andgen_fsm
. -
Added functions to retrieve the next higher or lower key/element from
gb_trees
andgb_sets
, as well as returning iterators that start at given keys/elements.
common_test
-
Calls to
ct:capture_start/0
andct:capture_stop/0
are now synchronous to ensure that all output is captured. -
The default CSS will now include a basic dark mode handling if it is preferred by the browser.
crypto
- The functions
crypto_dyn_iv_init/3
andcrypto_dyn_iv_update/3
that were marked as deprecated in Erlang/OTP 25 have been removed.
dialyzer
- The
--gui
option for Dialyzer has been removed.
ssl
- The
ssl
client can negotiate and handle certificate status request (OCSP stapling support on the client side).
tools
- There is a new tool
tprof
, which combines the functionality ofeprof
andcprof
under one interface. It also adds heap profiling.
xmerl
- As an alternative to
xmerl_xml
, a new export modulexmerl_xml_indent
that provides out-of-the box indented output has been added.
For more details about new features and potential incompatibilities see the README.