Inital Release: OTP 23.0
Git Tag: OTP-23.0
Date: 2020-02-27
Trouble Report Id: OTP-10278, OTP-11688, OTP-13450, OTP-14708,
OTP-14734, OTP-14790, OTP-15077, OTP-15232,
OTP-15251, OTP-15299, OTP-15434, OTP-15517,
OTP-15603, OTP-15618, OTP-15695, OTP-15744,
OTP-15812, OTP-15835, OTP-15837, OTP-15840,
OTP-15842, OTP-15866, OTP-15868, OTP-15915,
OTP-15925, OTP-15948, OTP-15950, OTP-15956,
OTP-15967, OTP-15995, OTP-15998, OTP-15999,
OTP-16005, OTP-16007, OTP-16008, OTP-16014,
OTP-16026, OTP-16029, OTP-16055, OTP-16072,
OTP-16073, OTP-16105, OTP-16120, OTP-16127,
OTP-16128, OTP-16148, OTP-16155, OTP-16160,
OTP-16168, OTP-16171, OTP-16189, OTP-16210,
OTP-16214, OTP-16215, OTP-16222, OTP-16229,
OTP-16232, OTP-16237, OTP-16244, OTP-16251,
OTP-16252, OTP-16264, OTP-16270, OTP-16273,
OTP-16275, OTP-16276, OTP-16283, OTP-16284,
OTP-16289, OTP-16327, OTP-16328, OTP-16329,
OTP-16345, OTP-16346, OTP-16347, OTP-16362,
OTP-16363, OTP-16367, OTP-16368, OTP-16369,
OTP-16370, OTP-16386, OTP-16394, OTP-16395,
OTP-16398, OTP-16400, OTP-16402, OTP-16406,
OTP-16419, OTP-16432, OTP-16453, OTP-16454,
OTP-16455, OTP-16469, OTP-16470, OTP-16478,
OTP-16480, OTP-16482, OTP-16483, OTP-16484,
OTP-16487, OTP-16489, OTP-16490, OTP-16492,
OTP-16494, OTP-16495, OTP-16496, OTP-16497,
OTP-16499, OTP-16500, OTP-16501, OTP-16502,
OTP-16503
Seq num: ERIERL-402, ERL-1002, ERL-1003, ERL-1051,
ERL-1053, ERL-1057, ERL-1115, ERL-1134,
ERL-1150, ERL-1154, ERL-496, ERL-560,
ERL-700, ERL-708, ERL-927, ERL-991
System: OTP
Release: 23
Application: asn1-5.0.10, common_test-1.19, compiler-7.6,
crypto-4.7, debugger-5.0, dialyzer-4.2,
edoc-0.12, erl_docgen-1.0,
erl_interface-3.14, erts-11.0, eunit-2.5,
hipe-4.0, inets-7.2, jinterface-1.11,
kernel-7.0, megaco-3.18.8, mnesia-4.17,
observer-2.9.4, odbc-2.13, os_mon-2.5.2,
parsetools-2.2, public_key-1.7.2,
runtime_tools-1.15, sasl-3.5, snmp-5.5,
ssh-4.9, ssl-10.0, stdlib-3.12,
syntax_tools-2.3, tools-3.4, wx-1.9.1
Predecessor: OTP
Check out the git tag OTP-23.0, and build a full OTP system including
documentation.
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** POTENTIAL INCOMPATIBILITY ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14708 Application(s): compiler, debugger, erts
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-15251 Application(s): erts
Improvements of distributed spawn operations. These
include both scalability and performance improvements
as well as new functionality.
New functionality:
-- A distributed spawn_monitor() BIF.
-- Support for monitor option in the distributed
spawn_opt() BIF.
-- New spawn_request() BIFs for asynchronous spawn of
processes. spawn_request() supports all options that
spawn_opt() support plus a few more.
OTP-15434 Application(s): ssh
OpenSSH 6.5 introduced a new file representation of
keys called openssh-key-v1.
OTP/SSH had an experimental implementation of this
format. That implementation is now improved and
supported with the exception of handling encrypted
keys.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-15998 Application(s): ssh
Related Id(s): PR-2368, PR-2376
TCP/IP port forwarding, a.k.a tunneling a.k.a as
tcp-forward/direct-tcp is implemented. In the OpenSSH
client, this corresponds to the options -L and -R.
The client or server listens to a specified socket, and
when something connects to it with TCP/IP, that
connection is forwarded in an encrypted tunnel to the
peer. The peer then connects to a predefined IP/port
pair and then acts as a proxy.
See the manual, ssh:tcpip_tunnel_to_server/6 and
ssh:tcpip_tunnel_from_server/6.
The functionality is disabled per default but can be
enabled if wanted when starting a daemon.
OTP-16007 Application(s): compiler
Related Id(s): PR-2324
Allow underscores in numeric literals to improve
readability. Examples: 123_456_789, 16#1234_ABCD.
OTP-16214 Application(s): compiler
Related Id(s): PR-2460
Improved the type optimization pass' inference of types
that depend on themselves, giving us more accurate
types and letting us track the content types of lists.
OTP-16222 Application(s): stdlib
New functions have been added to c(3) for printing
embedded documentation for Erlang modules. The
functions are:
-- h/1,2,3 -- Print the documentation for a
Module:Function/Arity.
-- ht/1,2,3 -- Print the type documentation for a
Module:Type/Arity.
The embedded documentation is created when building the
Erlang/OTP documentation.
OTP-16232 Application(s): crypto
As announced in OTP 22.0, a New API was introduced in
CRYPTO. See the New and Old API chapter in the CRYPTO
User's Guide for more information and suggested
replacement functions.
The Old API is now deprecated in OTP-23.0 and will be
removed in OTP-24.0.
OTP-16406 Application(s): erl_docgen, otp
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16453 Application(s): kernel
Related Id(s): PR-2524
A new implementation of distributed named process
groups has been introduced. It is available in the pg
module.
Note that this pg module only has the name in common
with the experimental pg module that was present in
stdlib up until OTP 17.
Thanks to Maxim Fedorov for the implementation.
OTP-16484 Application(s): debugger, erts, hipe
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16501 Application(s): stdlib
Related Id(s): ERL-708, OTP-16222, OTP-16406,
OTP-16494, OTP-16499, OTP-16500, PR-2545
Module and function auto-completion in the shell now
looks at all available modules instead of only those
loaded. A module is considered available if it either
is loaded already or would be loaded if called.
The auto-completion has also been expanded to work in
the new h/1,2,3 function in c(3).
---------------------------------------------------------------------
--- POTENTIAL INCOMPATIBILITIES -------------------------------------
---------------------------------------------------------------------
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** HIGHLIGHT ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-14790 Application(s): ssl
Drop support for SSL-3.0. Support for this legacy TLS
version has not been enabled by default since OTP 19.
Now all code to support it has been removed, that is
SSL-3.0 protocol version can not be used and is
considered invalid.
OTP-16168 Application(s): erts
Related Id(s): ERL-1053
erlang:decode_packet with type set to httph no longer
accepts http headers that have whitespaces in between
the header name and the colon. That is:
Content-Type : text/html
is no longer allowed. This has been changed to conform
with RFC 7230 and thus protect against http desync
attacks.
OTP-16215 Application(s): erts
Removed the scheduler_poll and async I/O dtrace and
LTTng trace probes.
OTP-16244 Application(s): erts
Related Id(s): ERL-1051
Fix the quoting rules in erl -args_file, ERL_FLAGS,
ERL_AFLAGS and ERL_ZFLAGS to work as unix sh quoting.
This bug fix can make previous configuration options to
erl passed through ERL_FLAGS, ERL_AFLAGS, ERL_ZFLAGS or
-args_file not be interpreted in the same way as before
the fix.
OTP-16329 Application(s): erl_interface, erts, otp
Related Id(s): OTP-15621
As announced in OTP 22.0, the previously existing
limited support for VxWorks has now been removed.
OTP-16400 Application(s): ssl
This change adds TLS-1.3 to the list of default
supported versions. That is, TLS-1.3 and TLS-1.2 are
configured when ssl option 'versions' is not explicitly
set.
OTP-16455 Application(s): kernel
The pg2 module has been deprecated. It has also been
scheduled for removal in OTP 24.
You are advised to replace the usage of pg2 with the
newly introduced pg module. pg has a similar API, but
with a more scalable implementation.
OTP-16484 Application(s): debugger, erts, hipe
*** HIGHLIGHT ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16495 Application(s): kernel
As of OTP 23, the distributed disk_log feature has been
deprecated. It has also been scheduled for removal in
OTP 24.
OTP-16502 Application(s): kernel
code:lib_dir/1 has been fixed to also return the lib
dir for erts.
This is been marked as an incompatibility for any
application that depended on {error,bad_name} to be
returned for erts.
OTP-16503 Application(s): erl_docgen
The dtds of all documentation files have been trimmed
from all unused or rarely-used tags.
Unused dtds have been removed.
---------------------------------------------------------------------
--- OTP-23.0 --------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16394 Application(s): otp
Related Id(s): PR-2450
The Android cross-compilation support has been updated
to support Android 4.1 and 5.0.
--- Improvements and New Features ---
OTP-15812 Application(s): otp
Add new "make test" target for simplified test
execution. Read more in HOWTO/TESTING.md.
OTP-15915 Application(s): otp
Added make dialyzer to top-level makefile and each
application.
OTP-16264 Application(s): otp
Updated the Android build instructions
OTP-16329 Application(s): erl_interface, erts, otp
Related Id(s): OTP-15621
*** POTENTIAL INCOMPATIBILITY ***
As announced in OTP 22.0, the previously existing
limited support for VxWorks has now been removed.
OTP-16406 Application(s): erl_docgen, otp
*** HIGHLIGHT ***
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
---------------------------------------------------------------------
--- asn1-5.0.10 -----------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16490 Application(s): asn1
Adhere to the ASN.1 specification for hstring &
bstring lexical items. That is they may include white
space.
--- Improvements and New Features ---
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of asn1-5.0.10: erts-7.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
--- common_test-1.19 ------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16029 Application(s): common_test
Related Id(s): PR-2145
The function ct_property_test:init_tool/1 is added for
the cases when the user does not want ct_property_test
to compile properties. init_tool/1 can be used to set
the property_test_tool config value.
OTP-16273 Application(s): common_test
The built-in Common Test Hook, cth_log_redirect, has
been updated to use the system default Logger handler's
configuration instead of its own. See the section on
Built-in Hooks in the Common Test User's Guide.
OTP-16346 Application(s): common_test, public_key, snmp, ssh,
ssl
Calls of deprecated functions in the Old Crypto API are
replaced by calls of their substitutions.
Full runtime dependencies of common_test-1.19: 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 ----------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-15837 Application(s): compiler, erts
erlang:fun_info(fun foo/1, name/1) used to return a
function name based on the name of the function that
fun foo/1 was used in. The name returned is now
-fun.foo/1-.
--- Improvements and New Features ---
OTP-14708 Application(s): compiler, debugger, erts
*** HIGHLIGHT ***
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-16007 Application(s): compiler
Related Id(s): PR-2324
*** HIGHLIGHT ***
Allow underscores in numeric literals to improve
readability. Examples: 123_456_789, 16#1234_ABCD.
OTP-16214 Application(s): compiler
Related Id(s): PR-2460
*** HIGHLIGHT ***
Improved the type optimization pass' inference of types
that depend on themselves, giving us more accurate
types and letting us track the content types of lists.
OTP-16367 Application(s): compiler
Related Id(s): OTP-15251
Support message queue optimization also for references
returned from the new spawn_request() BIFs.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of compiler-7.6: crypto-3.6, erts-11.0,
hipe-3.12, kernel-7.0, stdlib-3.12
---------------------------------------------------------------------
--- crypto-4.7 ------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15967 Application(s): crypto
Related Id(s): PR-2329
Support for ed25519 and ed448 added to
crypto:generate_key.
OTP-16160 Application(s): crypto
The new crypto functions api (crypto_init,
crypto_update and crypto_one_time) has been updated.
There is now a function crypto_final/1 and a
possibility to set options in crypto_init/3 and
crypto_init/4. See the manual for details.
OTP-16232 Application(s): crypto
*** HIGHLIGHT ***
As announced in OTP 22.0, a New API was introduced in
CRYPTO. See the New and Old API chapter in the CRYPTO
User's Guide for more information and suggested
replacement functions.
The Old API is now deprecated in OTP-23.0 and will be
removed in OTP-24.0.
OTP-16369 Application(s): crypto
Related Id(s): PR-2474
Fix C-compilation without deprecated OpenSSL cryptolib
APIs
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of crypto-4.7: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- debugger-5.0 ----------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-14708 Application(s): compiler, debugger, erts
*** HIGHLIGHT ***
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-16484 Application(s): debugger, erts, hipe
*** HIGHLIGHT ***
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
Full runtime dependencies of debugger-5.0: compiler-5.0, erts-9.0,
kernel-5.3, stdlib-3.4, wx-1.2
---------------------------------------------------------------------
--- dialyzer-4.2 ----------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16055 Application(s): dialyzer
Related Id(s): ERL-1002
Improve handling of maps:remove/2.
Full runtime dependencies of dialyzer-4.2: compiler-7.0, erts-9.0,
hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2
---------------------------------------------------------------------
--- edoc-0.12 -------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15999 Application(s): edoc
Related Id(s): PR-2317
Remove Inets dependency from EDoc.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of edoc-0.12: erts-6.0, kernel-3.0,
stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7
---------------------------------------------------------------------
--- erl_docgen-1.0 --------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16406 Application(s): erl_docgen, otp
*** HIGHLIGHT ***
Embedded documentation (also known as Documentation
Chunks) is now also available in the form of files
according to EEP-48. The Documentation Chunks are
produced by default when building the other Erlang/OTP
documentation. If you want to only build the embedded
documentation you can pass the DOC_TARGETS=chunks
environment variable to make.
OTP-16497 Application(s): erl_docgen
Minor DTD additions.
OTP-16503 Application(s): erl_docgen
*** POTENTIAL INCOMPATIBILITY ***
The dtds of all documentation files have been trimmed
from all unused or rarely-used tags.
Unused dtds have been removed.
Full runtime dependencies of erl_docgen-1.0: edoc-0.7.13, erts-9.0,
stdlib-3.4, xmerl-1.3.7
---------------------------------------------------------------------
--- erl_interface-3.14 ----------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15603 Application(s): erl_interface, erts, jinterface
Increased size of node incarnation numbers (aka
"creation"), from 2 bits to 32 bits. This will reduce
the risk of pids/ports/refs, from different node
incarnation with the same name, being mixed up.
OTP-15866 Application(s): erl_interface, erts
Related Id(s): PR-2110
Fix various build issues when compiling Erlang/OTP to
the IBM AIX platform.
OTP-16229 Application(s): erl_interface, jinterface, kernel
Improved node connection setup handshake protocol. Made
possible to agree on protocol version without
dependence on epmd or other prior knowledge of peer
node version. Also added exchange of node incarnation
("creation") values and expanded the distribution
capability flag field from 32 to 64 bits.
OTP-16251 Application(s): erl_interface
New erl_call option -address [Host]:Port to connect
directly to a node without being dependent on epmd to
resolve the node name.
OTP-16328 Application(s): erl_interface, odbc
Removed the deprecated parts of erl_interface
(essentially all C functions with prefix erl_).
OTP-16329 Application(s): erl_interface, erts, otp
Related Id(s): OTP-15621
*** POTENTIAL INCOMPATIBILITY ***
As announced in OTP 22.0, the previously existing
limited support for VxWorks has now been removed.
OTP-16496 Application(s): erl_interface
Related Id(s): OTP-16251
New function ei_connect_host_port and friends to allow
node connection without being dependent on epmd for
node name resolution.
---------------------------------------------------------------------
--- erts-11.0 -------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-14734 Application(s): erts
Related Id(s): ERL-496
BIFs now behave like ordinary functions with regard to
tracing, allowing call_count tracing and fixing a few
bugs where return trace messages were lost when BIFs
tail-called themselves or other functions ("trapping").
OTP-15837 Application(s): compiler, erts
erlang:fun_info(fun foo/1, name/1) used to return a
function name based on the name of the function that
fun foo/1 was used in. The name returned is now
-fun.foo/1-.
OTP-16155 Application(s): erts
Related Id(s): PR-2408
file:allocate/3 will now update the file size on all
platforms.
OTP-16168 Application(s): erts
Related Id(s): ERL-1053
*** POTENTIAL INCOMPATIBILITY ***
erlang:decode_packet with type set to httph no longer
accepts http headers that have whitespaces in between
the header name and the colon. That is:
Content-Type : text/html
is no longer allowed. This has been changed to conform
with RFC 7230 and thus protect against http desync
attacks.
OTP-16244 Application(s): erts
Related Id(s): ERL-1051
*** POTENTIAL INCOMPATIBILITY ***
Fix the quoting rules in erl -args_file, ERL_FLAGS,
ERL_AFLAGS and ERL_ZFLAGS to work as unix sh quoting.
This bug fix can make previous configuration options to
erl passed through ERL_FLAGS, ERL_AFLAGS, ERL_ZFLAGS or
-args_file not be interpreted in the same way as before
the fix.
OTP-16284 Application(s): erts, kernel
Fix the Erlang distribution to handle the scenario when
a node connects that can handle message fragmentation
but can not handle the atom cache. This bug only
affects users that have implemented a custom
distribution carrier. It has been present since OTP-21.
The DFLAG_FRAGMENT distribution flag was added to the
set of flags that can be rejected by a distribution
implementation.
OTP-16478 Application(s): erts
Related Id(s): ERL-1115
Fixed a bug that prevented Erlang from being started on
Windows if it were installed on certain paths.
--- Improvements and New Features ---
OTP-10278 Application(s): erts
Improved concurrency of erlang:load_nif/2 as it does no
longer block other schedulers from executing during
initial load of a NIF library.
OTP-14708 Application(s): compiler, debugger, erts
*** HIGHLIGHT ***
EEP-52 has been implemented.
In binary matching, the size of the segment to be
matched is now allowed to be a guard expression, and
similarly in map matching the keys can now be guard
expressions. See the Erlang Reference Manual and
Programming Examples for more details.
Language compilers or code generators that generate
Core Erlang code may need to be updated to be
compatible with the compiler in OTP 23. For more
details, see the section Backwards Compatibility in EEP
52.
OTP-15077 Application(s): erts
Internally in BEAM, handling of continuation pointers
has been simplified. This change is not user-visible,
except when examing a process stack in the crashdump
viewer. The continuation pointer for a function will
now be stored below the y(0) for that function.
OTP-15232 Application(s): erts
Related Id(s): ERL-700
seq_trace tokens are now propagated to spawned
processes.
OTP-15251 Application(s): erts
*** HIGHLIGHT ***
Improvements of distributed spawn operations. These
include both scalability and performance improvements
as well as new functionality.
New functionality:
-- A distributed spawn_monitor() BIF.
-- Support for monitor option in the distributed
spawn_opt() BIF.
-- New spawn_request() BIFs for asynchronous spawn of
processes. spawn_request() supports all options that
spawn_opt() support plus a few more.
OTP-15517 Application(s): erts
Related Id(s): ERL-560
Make ets:insert/2 and ets:insert_new/2 yield scheduler
execution on long lists of records to insert.
OTP-15603 Application(s): erl_interface, erts, jinterface
Increased size of node incarnation numbers (aka
"creation"), from 2 bits to 32 bits. This will reduce
the risk of pids/ports/refs, from different node
incarnation with the same name, being mixed up.
OTP-15618 Application(s): erts
The runtime system can now encode Erlang terms to the
Erlang external term format as I/O vectors. The main
benefit of this is that reference counted binaries can
be referred to directly instead of copied into a new
binary.
The default Erlang distribution over TCP will always
utilize this. Alternate distribution implementations
utilizing a port as distribution controller will
utilize this if the driver implements the outputv
callback. Alternate Erlang distribution implementations
utilizing a process as distribution controller will
utilize this if I/O vectors are utilized by the
functionality that processes the data returned from
erlang:dist_ctrl_get_data().
The return type for data returned by
erlang:dist_ctrl_get_data() has been changed from
iodata() to iovec(). Note that iovec() data is valid
iodata() so old implementations using
erlang:dist_ctrl_get_data() do not need to be changed,
but may benefit from being changed depending on usage
scenario.
The new BIFs term_to_iovec/1 and term_to_iovec/2 have
been introduced. These work exactly as term_to_binary()
with the corresponding arity except the return type.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
*** HIGHLIGHT ***
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-15835 Application(s): erts, kernel
Related Id(s): PR-2212
Directories can now be opened by file:open/2 when
passing the directory option.
OTP-15840 Application(s): erts
Add Hygon Dhyana as known processor to enable support
for atomic operations.
OTP-15842 Application(s): erts
Related Id(s): PR-2182
Make erlang:phash2 functions consume reductions
proportional to the size of the input term and yield
scheduler when reductions are depleted.
OTP-15866 Application(s): erl_interface, erts
Related Id(s): PR-2110
Fix various build issues when compiling Erlang/OTP to
the IBM AIX platform.
OTP-15868 Application(s): erts
Add configure options --enable-pie and --disable-pie to
control the build of position independent executables.
OTP-15956 Application(s): erts, kernel
Related Id(s): PR-2231
file:read_file_info/2 can now be used on opened files
and directories.
OTP-15995 Application(s): erts
Related Id(s): PR-2358
Add arity-1 versions of atom_to_binary, binary_to_atom
and binary_to_existing_atom, all with utf8 as default
encoding.
OTP-16014 Application(s): erts
Related Id(s): PR-2345
Optimized the erts internal hash table implementation
for faster lookups. The internal hash is used for
things like; the process registry, executing
erlang:apply/2, executing M:func(test), and more.
OTP-16105 Application(s): erts
Related Id(s): ERL-927
CPU quotas are now taken into account when deciding the
default number of online schedulers, improving
performance in container environments where quotas are
applied, such as docker with the --cpus flag.
OTP-16148 Application(s): erts, kernel
Related Id(s): PR-2373
The -config option to erl now can take multiple config
files without repeating the -config option. Example:
erl -config sys local
OTP-16215 Application(s): erts
*** POTENTIAL INCOMPATIBILITY ***
Removed the scheduler_poll and async I/O dtrace and
LTTng trace probes.
OTP-16237 Application(s): erts
Related Id(s): PR-2389
Optimized persistent_term:put/2 and erase/1 to consume
less CPU in many cases.
OTP-16270 Application(s): erts
On systems without closefrom(), such as Linux,
iterating over all possible file descriptors and
calling close() for each is inefficient. This is
markedly so when the maximum number of file descriptors
has been tuned to a large number.
Instead, in erl_child_setup, walk the open descriptors
under /dev/fd and close only those which are open.
This optimization affects the CPU usage of starting a
new Erlang instance.
OTP-16283 Application(s): erts
Related Id(s): PR-2441
Optimized maps:merge/2 for trivial cases of an empty
map(s) or same map.
OTP-16327 Application(s): erts, runtime_tools, tools
Improved the presentation of allocations and carriers
in the instrument module.
OTP-16329 Application(s): erl_interface, erts, otp
Related Id(s): OTP-15621
*** POTENTIAL INCOMPATIBILITY ***
As announced in OTP 22.0, the previously existing
limited support for VxWorks has now been removed.
OTP-16347 Application(s): erts
Related Id(s): PR-2466
The return value when using the httph and httph_bin
option to erlang:decode_packet/3 and inet:setopts/2 has
been changed to also include the original header
unmodified. See the erlang:decode_packet/3. Example:
> erlang:decode_packet(httph_bin,>,[]).
{ok,{http_header,0,>,>,>},>}
OTP-16362 Application(s): erts
Ensure net_kernel:monitor_nodes/1 sends nodedown
messages of a failed connection before nodeup messages
of a reestablished connection toward the same node.
OTP-16370 Application(s): erts, kernel
Related Id(s): OTP-15232, OTP-15251
Update of sequential tracing to also support other
information transfers than message passing.
OTP-16398 Application(s): erts
Related Id(s): ERL-1154
socket: It is now possible to create a socket from an
already existing file descriptor.
OTP-16432 Application(s): erts
socket: The socket:supports/1 function now also report
if netns is supported or not.
OTP-16454 Application(s): erts
=:= has been optimized to return false immediately when
comparing two maps of different sizes.
OTP-16482 Application(s): erts
Changed the behaviour of passing the erl command line
argument +A 0 to silently imply +A 1. That is, it will
no longer be possible to completely disable the async
thread pool. Disabling of the async thread pool has
since OTP 21 had no benefits; only lots of drawbacks.
OTP-16484 Application(s): debugger, erts, hipe
*** HIGHLIGHT ***
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
OTP-16492 Application(s): erts
Related Id(s): PR-2461
init:restart/1 has been introduced. init:restart/1 can
be utilized for changing the code loading mode during a
restart.
Full runtime dependencies of erts-11.0: kernel-7.0, sasl-3.3,
stdlib-3.12
---------------------------------------------------------------------
--- eunit-2.5 -------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15950 Application(s): eunit
Related Id(s): ERL-991, PR-2316
Let eunit_surefire skip invalid XML 1.0 characters.
OTP-16275 Application(s): eunit
Related Id(s): PR-2424
Add new macro ?capturedOutput for enabling to write
test cases that verify data printed to standard out
Full runtime dependencies of eunit-2.5: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- hipe-4.0 --------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16470 Application(s): hipe
Fixed a rare miss-compilation of tuple matching.
--- Improvements and New Features ---
OTP-16484 Application(s): debugger, erts, hipe
*** HIGHLIGHT ***
*** POTENTIAL INCOMPATIBILITY ***
The deprecated erlang:get_stacktrace/0 BIF now returns
an empty list instead of a stacktrace. To retrieve the
stacktrace, use the extended try/catch syntax that was
introduced in OTP 21. erlang:get_stacktrace/0 is
scheduled for removal in OTP 24.
Full runtime dependencies of hipe-4.0: compiler-5.0, erts-9.3,
kernel-5.3, stdlib-3.4, syntax_tools-1.6.14
---------------------------------------------------------------------
--- inets-7.2 -------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16252 Application(s): inets
Remove support for deprecated functionality. Support
for mod_esi eval scheme, mod_htacess, mod_browser,
apache config files and deprecated httpd_conf functions
are dropped. Module http_uri is deprecated.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of inets-7.2: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
--- jinterface-1.11 -------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15603 Application(s): erl_interface, erts, jinterface
Increased size of node incarnation numbers (aka
"creation"), from 2 bits to 32 bits. This will reduce
the risk of pids/ports/refs, from different node
incarnation with the same name, being mixed up.
OTP-16229 Application(s): erl_interface, jinterface, kernel
Improved node connection setup handshake protocol. Made
possible to agree on protocol version without
dependence on epmd or other prior knowledge of peer
node version. Also added exchange of node incarnation
("creation") values and expanded the distribution
capability flag field from 32 to 64 bits.
---------------------------------------------------------------------
--- kernel-7.0 ------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16008 Application(s): kernel
Related Id(s): PR-2302
Fix race condition during shutdown when shell_history
is enabled. The race condition would trigger crashes in
disk_log.
OTP-16284 Application(s): erts, kernel
Fix the Erlang distribution to handle the scenario when
a node connects that can handle message fragmentation
but can not handle the atom cache. This bug only
affects users that have implemented a custom
distribution carrier. It has been present since OTP-21.
The DFLAG_FRAGMENT distribution flag was added to the
set of flags that can be rejected by a distribution
implementation.
OTP-16395 Application(s): kernel
Related Id(s): PR-2444
Fix bug where a binary was not allowed to be the format
string in calls to logger:log.
OTP-16489 Application(s): kernel
Related Id(s): ERL-1134
Fix bug where logger would end up in an infinite loop
when trying to log the crash of a handler or formatter.
OTP-16502 Application(s): kernel
*** POTENTIAL INCOMPATIBILITY ***
code:lib_dir/1 has been fixed to also return the lib
dir for erts.
This is been marked as an incompatibility for any
application that depended on {error,bad_name} to be
returned for erts.
--- Improvements and New Features ---
OTP-13450 Application(s): kernel
Related Id(s): OTP-15251
*** HIGHLIGHT ***
*** POTENTIAL INCOMPATIBILITY ***
A new module erpc has been introduced in the kernel
application. The erpc module implements an enhanced
subset of the operations provided by the rpc module.
Enhanced in the sense that it makes it possible to
distinguish between returned value, raised exceptions,
and other errors. erpc also has better performance and
scalability than the original rpc implementation. This
by utilizing the newly introduced spawn_request() BIF.
Also the rpc module benefits from these improvements by
utilizing erpc when it is possible.
This change has been marked as a potential
incompatibility since rpc:block_call() now only is
guaranteed to block other block_call() operations. The
documentation previously claimed that it would block
all rpc operations. This has however never been the
case. It previously did not block node-local
block_call() operations.
OTP-15299 Application(s): kernel, stdlib
Improved the printout of single line logger events for
most of the OTP behaviours in STDLIB and Kernel. This
includes proc_lib, gen_server, gen_event, gen_statem,
gen_fsm, supervisor, supervisor_bridge and application.
Improved the chars_limit and depth handling in proc_lib
and when formatting of exceptions.
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
OTP-15835 Application(s): erts, kernel
Related Id(s): PR-2212
Directories can now be opened by file:open/2 when
passing the directory option.
OTP-15948 Application(s): kernel
Related Id(s): PR-2356
The check of whether to log or not based on the log
level in logger has been optimized by using
persistent_term to store the log level.
OTP-15956 Application(s): erts, kernel
Related Id(s): PR-2231
file:read_file_info/2 can now be used on opened files
and directories.
OTP-16148 Application(s): erts, kernel
Related Id(s): PR-2373
The -config option to erl now can take multiple config
files without repeating the -config option. Example:
erl -config sys local
OTP-16229 Application(s): erl_interface, jinterface, kernel
Improved node connection setup handshake protocol. Made
possible to agree on protocol version without
dependence on epmd or other prior knowledge of peer
node version. Also added exchange of node incarnation
("creation") values and expanded the distribution
capability flag field from 32 to 64 bits.
OTP-16345 Application(s): kernel
Replace usage of deprecated function in the group
module.
OTP-16368 Application(s): kernel, observer, runtime_tools,
stdlib, tools
Related Id(s): OTP-15251
Minor updates due to the new spawn improvements made.
OTP-16370 Application(s): erts, kernel
Related Id(s): OTP-15232, OTP-15251
Update of sequential tracing to also support other
information transfers than message passing.
OTP-16402 Application(s): kernel
code:module_status/1 now accepts a list of modules.
code:module_status/0, which returns the statuses for
all loaded modules, has been added.
OTP-16419 Application(s): kernel
filelib:wildcard/1,2 is now twice as fast when a double
star (**) is part of the pattern.
OTP-16453 Application(s): kernel
Related Id(s): PR-2524
*** HIGHLIGHT ***
A new implementation of distributed named process
groups has been introduced. It is available in the pg
module.
Note that this pg module only has the name in common
with the experimental pg module that was present in
stdlib up until OTP 17.
Thanks to Maxim Fedorov for the implementation.
OTP-16455 Application(s): kernel
*** POTENTIAL INCOMPATIBILITY ***
The pg2 module has been deprecated. It has also been
scheduled for removal in OTP 24.
You are advised to replace the usage of pg2 with the
newly introduced pg module. pg has a similar API, but
with a more scalable implementation.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
OTP-16487 Application(s): kernel
Related Id(s): PR-2516
The internal hosts file resolver cache inet_hosts has
been rewritten to behave better when the hosts file
changes. For example the cache is updated per entry
instead of cleared and reloaded so lookups do not
temporarily fail during reloading, and; when multiple
processes simultaneously request reload these are now
folded into one instead of all done in sequence.
Reported and first solution suggestion by Maxim
Fedorov.
OTP-16494 Application(s): kernel
Add code:all_available/0 that can be used to get all
available modules.
OTP-16495 Application(s): kernel
*** POTENTIAL INCOMPATIBILITY ***
As of OTP 23, the distributed disk_log feature has been
deprecated. It has also been scheduled for removal in
OTP 24.
OTP-16499 Application(s): kernel
Add the function code:fetch_docs/1 for fetching
embedded documentation for aa Erlang module.
Full runtime dependencies of kernel-7.0: erts-11.0, sasl-3.0,
stdlib-3.12
---------------------------------------------------------------------
--- megaco-3.18.8 ---------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of megaco-3.18.8: asn1-3.0, debugger-4.0,
erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- mnesia-4.17 -----------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16072 Application(s): mnesia
Related Id(s): PR-2320
Make mnesia:create_table/2 return correct badarg value.
--- Improvements and New Features ---
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
OTP-16189 Application(s): mnesia
Avoid using rpc calls to do table reads, which will
reduce the load on rpc server and improve performance.
Full runtime dependencies of mnesia-4.17: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- observer-2.9.4 --------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16368 Application(s): kernel, observer, runtime_tools,
stdlib, tools
Related Id(s): OTP-15251
Minor updates due to the new spawn improvements made.
Full runtime dependencies of observer-2.9.4: erts-11.0, et-1.5,
kernel-7.0, runtime_tools-1.8.14, stdlib-3.12, wx-1.2
---------------------------------------------------------------------
--- odbc-2.13 -------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16328 Application(s): erl_interface, odbc
Removed the deprecated parts of erl_interface
(essentially all C functions with prefix erl_).
Full runtime dependencies of odbc-2.13: erts-6.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
--- os_mon-2.5.2 ----------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of os_mon-2.5.2: erts-6.0, kernel-3.0,
sasl-2.4, stdlib-2.0
---------------------------------------------------------------------
--- parsetools-2.2 --------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
Full runtime dependencies of parsetools-2.2: erts-6.0, kernel-3.0,
stdlib-2.5
---------------------------------------------------------------------
--- public_key-1.7.2 ------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16346 Application(s): common_test, public_key, snmp, ssh,
ssl
Calls of deprecated functions in the Old Crypto API are
replaced by calls of their substitutions.
Full runtime dependencies of public_key-1.7.2: asn1-3.0, crypto-3.8,
erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- runtime_tools-1.15 ----------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16327 Application(s): erts, runtime_tools, tools
Improved the presentation of allocations and carriers
in the instrument module.
OTP-16368 Application(s): kernel, observer, runtime_tools,
stdlib, tools
Related Id(s): OTP-15251
Minor updates due to the new spawn improvements made.
Full runtime dependencies of runtime_tools-1.15: erts-11.0,
kernel-7.0, mnesia-4.12, stdlib-3.12
---------------------------------------------------------------------
--- sasl-3.5 --------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
Full runtime dependencies of sasl-3.5: erts-10.2, kernel-5.3,
stdlib-3.4, tools-2.6.14
---------------------------------------------------------------------
--- snmp-5.5 --------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
OTP-16346 Application(s): common_test, public_key, snmp, ssh,
ssl
Calls of deprecated functions in the Old Crypto API are
replaced by calls of their substitutions.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of snmp-5.5: crypto-3.3, erts-6.0,
kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- ssh-4.9 ---------------------------------------------------------
---------------------------------------------------------------------
--- Fixed Bugs and Malfunctions ---
OTP-16363 Application(s): ssh
Fix error in ssh_sftpd typespec.
--- Improvements and New Features ---
OTP-11688 Application(s): ssh
Related Id(s): OTP-12699
The plug-in file ssh_file.erl, that is responsible for
default file handling, is re-factored, optimized and
re-written.
OTP-15434 Application(s): ssh
*** HIGHLIGHT ***
OpenSSH 6.5 introduced a new file representation of
keys called openssh-key-v1.
OTP/SSH had an experimental implementation of this
format. That implementation is now improved and
supported with the exception of handling encrypted
keys.
OTP-15998 Application(s): ssh
Related Id(s): PR-2368, PR-2376
*** HIGHLIGHT ***
TCP/IP port forwarding, a.k.a tunneling a.k.a as
tcp-forward/direct-tcp is implemented. In the OpenSSH
client, this corresponds to the options -L and -R.
The client or server listens to a specified socket, and
when something connects to it with TCP/IP, that
connection is forwarded in an encrypted tunnel to the
peer. The peer then connects to a predefined IP/port
pair and then acts as a proxy.
See the manual, ssh:tcpip_tunnel_to_server/6 and
ssh:tcpip_tunnel_from_server/6.
The functionality is disabled per default but can be
enabled if wanted when starting a daemon.
OTP-16026 Application(s): ssh
Related Id(s): (OTP-15998), PR-2368
The client-side of the supervisor tree (under sshc_sup)
was previously not complete; the channel handling
processes were handled with links but had no
supervisors.
This is now corrected with a client-side supervisor
tree under sshc_sup, similar to the server-side
supervisor tree under sshd_sup.
OTP-16289 Application(s): ssh
Related Id(s): PR-2448
The extension [email protected] is added to the
ssh/sftp rename operation.
OTP-16346 Application(s): common_test, public_key, snmp, ssh,
ssl
Calls of deprecated functions in the Old Crypto API are
replaced by calls of their substitutions.
Full runtime dependencies of ssh-4.9: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
--- ssl-10.0 --------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-14790 Application(s): ssl
*** POTENTIAL INCOMPATIBILITY ***
Drop support for SSL-3.0. Support for this legacy TLS
version has not been enabled by default since OTP 19.
Now all code to support it has been removed, that is
SSL-3.0 protocol version can not be used and is
considered invalid.
OTP-16127 Application(s): ssl
Related Id(s): OTP-15618
Utilize new properties of erlang:dist_ctrl_get_data()
for performance improvement of Erlang distribution over
TLS.
OTP-16346 Application(s): common_test, public_key, snmp, ssh,
ssl
Calls of deprecated functions in the Old Crypto API are
replaced by calls of their substitutions.
OTP-16400 Application(s): ssl
*** POTENTIAL INCOMPATIBILITY ***
This change adds TLS-1.3 to the list of default
supported versions. That is, TLS-1.3 and TLS-1.2 are
configured when ssl option 'versions' is not explicitly
set.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of ssl-10.0: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.12 -----------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15299 Application(s): kernel, stdlib
Improved the printout of single line logger events for
most of the OTP behaviours in STDLIB and Kernel. This
includes proc_lib, gen_server, gen_event, gen_statem,
gen_fsm, supervisor, supervisor_bridge and application.
Improved the chars_limit and depth handling in proc_lib
and when formatting of exceptions.
OTP-15695 Application(s): kernel, mnesia, parsetools, sasl,
snmp, stdlib
Remove usage and documentation of old requests of the
I/O-protocol.
OTP-15744 Application(s): erts, stdlib
Related Id(s): OTP-15623, PR-2229
*** HIGHLIGHT ***
Improved ETS scalability of concurrent calls that
change the size of a table, like ets:insert/2 and
ets:delete/2.
This performance feature was implemented for
ordered_set in OTP 22.0 and does now apply for all ETS
table types.
The improved scalability may come at the cost of longer
latency of ets:info(T,size) and ets:info(T,memory). A
new table option decentralized_counters has therefore
been added. It is default true for ordered_set with
write_concurrency enabled and default false for all
other table types.
OTP-16005 Application(s): stdlib
Related Id(s): ERL-1003, ERL-1150
Handle Unicode filenames in the zip module.
OTP-16073 Application(s): stdlib
Related Id(s): PR-2339
Unicode support was updated to the Unicode 12.1
standard.
OTP-16120 Application(s): stdlib
Related Id(s): ERIERL-402, PR-2427
All of the modules proc_lib, gen_server, gen_statem,
and gen_event have been extended with a start_monitor()
function. For more information, see the documentation
of start_monitor() for these modules.
OTP-16128 Application(s): stdlib, tools
Related Id(s): OTP-15618
Updates for new erlang:term_to_iovec() BIF.
OTP-16171 Application(s): stdlib
Related Id(s): ERL-1057
Documented a quirk regarding extraction from file
descriptors in erl_tar.
OTP-16210 Application(s): stdlib
Related Id(s): PR-2411
Added ok as return value to gen_server:reply/2
OTP-16222 Application(s): stdlib
*** HIGHLIGHT ***
New functions have been added to c(3) for printing
embedded documentation for Erlang modules. The
functions are:
-- h/1,2,3 -- Print the documentation for a
Module:Function/Arity.
-- ht/1,2,3 -- Print the type documentation for a
Module:Type/Arity.
The embedded documentation is created when building the
Erlang/OTP documentation.
OTP-16276 Application(s): stdlib
Related Id(s): PR-2443
Add indent and linewidth to the options of the erl_pp
module's functions.
OTP-16368 Application(s): kernel, observer, runtime_tools,
stdlib, tools
Related Id(s): OTP-15251
Minor updates due to the new spawn improvements made.
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
OTP-16480 Application(s): stdlib
Extend erl_parse:abstract/1,2 to handle external fun
expressions (fun M:F/A).
OTP-16483 Application(s): stdlib
Related Id(s): PR-2542
Added filelib:safe_relative_path/2 to replace
filename:safe_relative_path/1, which did not safely
handle symbolic links.
filename:safe_relative_path/1 has been deprecated.
OTP-16500 Application(s): stdlib
The module shell_docs has been added. The module
contains functions for rendering, validating and
normalizing embedded documentation.
OTP-16501 Application(s): stdlib
Related Id(s): ERL-708, OTP-16222, OTP-16406,
OTP-16494, OTP-16499, OTP-16500, PR-2545
*** HIGHLIGHT ***
Module and function auto-completion in the shell now
looks at all available modules instead of only those
loaded. A module is considered available if it either
is loaded already or would be loaded if called.
The auto-completion has also been expanded to work in
the new h/1,2,3 function in c(3).
Full runtime dependencies of stdlib-3.12: compiler-5.0, crypto-3.3,
erts-11.0, kernel-7.0, sasl-3.0
---------------------------------------------------------------------
--- syntax_tools-2.3 ------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-15925 Application(s): syntax_tools
Related Id(s): PR-2304
Remove incomplete support for cond expressions.
OTP-16386 Application(s): syntax_tools
Related Id(s): PR-2451
Improved indentation for code generated with
erl_prettypr and tidier.
Full runtime dependencies of syntax_tools-2.3: compiler-7.0,
erts-9.0, kernel-5.0, stdlib-3.4
---------------------------------------------------------------------
--- tools-3.4 -------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16128 Application(s): stdlib, tools
Related Id(s): OTP-15618
Updates for new erlang:term_to_iovec() BIF.
OTP-16327 Application(s): erts, runtime_tools, tools
Improved the presentation of allocations and carriers
in the instrument module.
OTP-16368 Application(s): kernel, observer, runtime_tools,
stdlib, tools
Related Id(s): OTP-15251
Minor updates due to the new spawn improvements made.
Full runtime dependencies of tools-3.4: compiler-5.0, erts-11.0,
erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
---------------------------------------------------------------------
--- wx-1.9.1 --------------------------------------------------------
---------------------------------------------------------------------
--- Improvements and New Features ---
OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets,
kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx
Refactored the internal handling of deprecated and
removed functions.
Full runtime dependencies of wx-1.9.1: erts-6.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------