Inital Release:          OTP 23.0
Git Tag:                 OTP-23.0
Date:                    2020-05-13
Trouble Report Id:       OTP-10278, OTP-11688, OTP-13450, OTP-13812,
                         OTP-14708, OTP-14734, OTP-14790, OTP-15077,
                         OTP-15232, OTP-15247, OTP-15251, OTP-15299,
                         OTP-15434, OTP-15517, OTP-15589, OTP-15603,
                         OTP-15618, OTP-15695, OTP-15744, OTP-15800,
                         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-16250,
                         OTP-16251, OTP-16252, OTP-16260, OTP-16264,
                         OTP-16270, OTP-16273, OTP-16275, OTP-16276,
                         OTP-16283, OTP-16284, OTP-16289, OTP-16312,
                         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-16391, OTP-16394, OTP-16395,
                         OTP-16398, OTP-16400, OTP-16402, OTP-16406,
                         OTP-16407, OTP-16419, OTP-16429, OTP-16431,
                         OTP-16432, OTP-16453, OTP-16454, OTP-16455,
                         OTP-16463, 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, OTP-16504, OTP-16505, OTP-16506,
                         OTP-16508, OTP-16509, OTP-16510, OTP-16511,
                         OTP-16512, OTP-16513, OTP-16516, OTP-16519,
                         OTP-16521, OTP-16523, OTP-16530, OTP-16531,
                         OTP-16532, OTP-16533, OTP-16535, OTP-16540,
                         OTP-16541, OTP-16543, OTP-16544, OTP-16545,
                         OTP-16547, OTP-16549, OTP-16550, OTP-16551,
                         OTP-16552, OTP-16554, OTP-16557, OTP-16561,
                         OTP-16562, OTP-16563, OTP-16570, OTP-16571,
                         OTP-16573, OTP-16576, OTP-16579, OTP-16583,
                         OTP-16584, OTP-16585, OTP-16589, OTP-16594,
                         OTP-16596, OTP-16601, OTP-16602, OTP-16603,
                         OTP-16604, OTP-16607, OTP-16615, OTP-16616,
                         OTP-16617, OTP-16620, OTP-16622, OTP-16623,
                         OTP-16624, OTP-16626, OTP-16627, OTP-16630,
                         OTP-16632, OTP-16633, OTP-16634, OTP-16635,
                         OTP-16638
Seq num:                 ERIERL-402, ERIERL-476, ERIERL-477, ERL-1002,
                         ERL-1003, ERL-1051, ERL-1053, ERL-1057,
                         ERL-1058, ERL-1105, ERL-1115, ERL-1134,
                         ERL-1150, ERL-1154, ERL-1168, ERL-1178,
                         ERL-1186, ERL-1189, ERL-1196, ERL-1206,
                         ERL-1208, ERL-1227, ERL-1232, ERL-1234,
                         ERL-303, ERL-476, ERL-496, ERL-560, ERL-592,
                         ERL-700, ERL-708, ERL-716, ERL-825, ERL-927,
                         ERL-991
System:                  OTP
Release:                 23
Application:             asn1-5.0.13, 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-4.0,
                         erts-11.0, eunit-2.5, hipe-4.0, inets-7.2,
                         jinterface-1.11, kernel-7.0, megaco-3.19,
                         mnesia-4.17, observer-2.9.4, odbc-2.13,
                         os_mon-2.5.2, parsetools-2.2, public_key-1.8,
                         runtime_tools-1.15, sasl-4.0, snmp-5.6,
                         ssh-4.10, ssl-10.0, stdlib-3.13,
                         syntax_tools-2.3, tools-3.4, wx-1.9.1,
                         xmerl-1.3.25
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-15247    Application(s): public_key, ssl

               Added support for RSA-PSS signature schemes


  OTP-15251    Application(s): erts

               Improvements of distributed spawn operations. These
               include both scalability and performance improvements
               as well as new functionality.

               New functionality:

               -- A distributed spawn_monitor() BIF.

               -- Support for monitor option in the distributed
               spawn_opt() BIF.

               -- New spawn_request() BIFs for asynchronous spawn of
               processes. spawn_request() supports all options that
               spawn_opt() support plus a few more.


  OTP-15434    Application(s): ssh

               OpenSSH 6.5 introduced a new file representation of
               keys called openssh-key-v1.

               OTP/SSH had an experimental implementation of this
               format. That implementation is now improved and
               supported with the exception of handling encrypted
               keys.


  OTP-15589    Application(s): ssl

               Improve interoperability by implementing the middlebox
               compatiblity mode.

               The middlebox compatibility mode makes the TLS 1.3
               handshake look more like a TLS 1.2 handshake and
               increases the chance of successfully establishing TLS
               1.3 connections through legacy middleboxes.


  OTP-15744    Application(s): erts, stdlib
               Related Id(s): OTP-15623, PR-2229

               Improved ETS scalability of concurrent calls that
               change the size of a table, like ets:insert/2 and
               ets:delete/2.

               This performance feature was implemented for
               ordered_set in OTP 22.0 and does now apply for all ETS
               table types.

               The improved scalability may come at the cost of longer
               latency of ets:info(T,size) and ets:info(T,memory). A
               new table option decentralized_counters has therefore
               been added. It is default true for ordered_set with
               write_concurrency enabled and default false for all
               other table types.


  OTP-15998    Application(s): ssh
               Related Id(s): PR-2368, PR-2376

               TCP/IP port forwarding, a.k.a tunneling a.k.a
               tcp-forward/direct-tcp is implemented. In the OpenSSH
               client, this corresponds to the options -L and -R.

               The client or server listens to a specified socket, and
               when something connects to it with TCP/IP, that
               connection is forwarded in an encrypted tunnel to the
               peer. The peer then connects to a predefined IP/port
               pair and then acts as a proxy.

               See the manual, ssh:tcpip_tunnel_to_server/6 and
               ssh:tcpip_tunnel_from_server/6.

               The functionality is disabled per default but can be
               enabled when starting a daemon.


  OTP-16007    Application(s): compiler
               Related Id(s): PR-2324

               Allow underscores in numeric literals to improve
               readability. Examples: 123_456_789, 16#1234_ABCD.


  OTP-16214    Application(s): compiler
               Related Id(s): PR-2460

               Improved the type optimization pass' inference of types
               that depend on themselves, giving us more accurate
               types and letting us track the content types of lists.


  OTP-16222    Application(s): stdlib

               New functions have been added to c(3) for printing
               embedded documentation for Erlang modules. The
               functions are:

               -- h/1,2,3 -- Print the documentation for a
               Module:Function/Arity.

               -- ht/1,2,3 -- Print the type documentation for a
               Module:Type/Arity.

               The embedded documentation is created when building the
               Erlang/OTP documentation.


  OTP-16232    Application(s): crypto

               As announced in OTP 22.0, a New API was introduced in
               CRYPTO. See the New and Old API chapter in the CRYPTO
               User's Guide for more information and suggested
               replacement functions.

               The Old API is now deprecated in OTP-23.0 and will be
               removed in OTP-24.0.

               This deprecation includes cipher names. See the section
               Retired cipher names in the crypto User's Guide,
               chapter The Old API.


  OTP-16250    Application(s): erts, kernel

               The possibility to run Erlang distribution without
               relying on EPMD has been extended. To achieve this a
               couple of new options to the inet distribution has been
               added.

               -- -dist_listen false -- Setup the distribution
               channel, but do not listen for incoming connection.
               This is useful when you want to use the current node to
               interact with another node on the same machine without
               it joining the entire cluster.

               -- -erl_epmd_port Port -- Configure a default port that
               the built-in EPMD client should return. This allows the
               local node to know the port to connect to for any other
               node in the cluster.

               The erl_epmd callback API has also been extended to
               allow returning -1 as the creation which means that a
               random creation will be created by the node.

               In addition a new callback function called
               listen_port_please has been added that allows the
               callback to return which listen port the distribution
               should use. This can be used instead of
               inet_dist_listen_min/max if the listen port is to be
               fetched from an external service.


  OTP-16260    Application(s): kernel
               Related Id(s): OTP-15403

               A first EXPERIMENTAL module that is a socket backend to
               gen_tcp and inet has been implemented. Others will
               follow. Feedback will be appreciated.


  OTP-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-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).


  OTP-16506    Application(s): ssh

               The default known_hosts file handling is improved to
               include ports.

               The handling of the contents in that file is updated to
               support the full syntax, with exception of 1) the
               wildcard '?', 2) wildcards in canonical names and 3)
               the option '@cert-authority'


  OTP-16513    Application(s): ssh

               The ssh agent is now implemented in the ssh_agent key
               callback module.

               Enable with the the option {key_cb, {ssh_agent, []}} in
               for example ssh:connect/3.

               See the ssh_agent manual for details.


  OTP-16540    Application(s): ssh

               Algorithm configuration could now be done in a .config
               file.

               This is useful for example to enable an algorithm that
               is disabled by default. It could now be enabled in an
               .config-file without changing the code,

               See the SSH User's Guide chapter "Configuration in
               SSH".


 ---------------------------------------------------------------------
 --- 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-16328    Application(s): erl_interface

               As announced in OTP 22.0, the deprecated parts of
               erl_interface have now been removed (essentially all C
               functions with prefix erl_).


  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

               *** HIGHLIGHT ***

               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 seealso tag has been replaced with type aware tags
               instead. The new tags are:
               seemfa|seeerl|seetype|seeapp|seecom|seecref|seefile|seeguide.

               fsdescription has been added for adding a title to
               groups of functions, for instance Module Callbacks.

               The dtds of all documentation files have been trimmed
               from all unused or rarely-used tags.

               Unused dtds have been removed.


  OTP-16509    Application(s): ssh

               The key-exchange algorithms
               'diffie-hellman-group14-sha1' and
               'diffie-hellman-group-exchange-sha1' are disabled per
               default. The reason is that SHA1 now is considered
               insecure.

               They can be enabled if needed, see SSH (App).


  OTP-16510    Application(s): ssh

               The public key algorithm 'ssh-dss' is disabled per
               default. The reason is that it is now considered as
               insecure.

               It can be enabled if needed, see SSH (App).


  OTP-16511    Application(s): ssh

               The public key 'ssh-rsa' is now considered as insecure
               because of its usage of SHA1.

               It is therefore deprecated and will no longer be
               enabled per default in OTP-24.0.


  OTP-16603    Application(s): sasl

               systools:make_tar/1,2 now filters out any tools from
               erts if included in the release tar ball. See the
               documentation for more details.


  OTP-16630    Application(s): erl_interface

               The erl_interface registry functionality is deprecated
               as of OTP 23, and will be removed in OTP 24. Reasonably
               new gcc compilers will issue deprecation warnings when
               using this functionality. In order to disable these
               warnings, define the macro EI_NO_DEPR_WARN.


 ---------------------------------------------------------------------
 --- 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.


  OTP-16551    Application(s): otp

               Starting from OTP 23, the pages in the documentation
               for which functions that are deprecated and scheduled
               for removal are now up to date.


 ---------------------------------------------------------------------
 --- asn1-5.0.13 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- 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.


  OTP-16554    Application(s): asn1
               Related Id(s): ERL-1189

               Improve handling of ellipsis in a CHOICE


 Full runtime dependencies of asn1-5.0.13: 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-.


  OTP-16516    Application(s): compiler, stdlib

               Initialization of record fields using _ is no longer
               allowed if the number of affected fields is zero.


 --- 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-16429    Application(s): compiler, stdlib
               Related Id(s): ERL-303

               The compiler will now raise a warning when inlining is
               used in modules that load NIFs.


  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-16505    Application(s): compiler
               Related Id(s): ERL-1178

               Line information was sometimes incorrect for
               floating-point math exceptions.


  OTP-16523    Application(s): compiler
               Related Id(s): ERL-1058

               The debug_info option can now be specified in
               -compile() attributes.


  OTP-16543    Application(s): compiler, erts
               Related Id(s): ERL-1186

               Reduced the resource usage of erlc in parallel builds
               (e.g. make -j128).


 Full runtime dependencies of compiler-7.6: crypto-3.6, erts-11.0,
 hipe-3.12, kernel-7.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- crypto-4.7 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16579    Application(s): crypto
               Related Id(s): ERL-825

               Crypto reported unsupported elliptic curves as
               supported on e.g Fedora distros.


 --- 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.

               This deprecation includes cipher names. See the section
               Retired cipher names in the crypto User's Guide,
               chapter The Old API.


  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.


  OTP-16583    Application(s): crypto

               Added missing 'eddh' to crypto:supports(public_keys).


 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-16407    Application(s): edoc
               Related Id(s): PR-2430

               Add support for overloaded Erlang specifications.


  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 seealso tag has been replaced with type aware tags
               instead. The new tags are:
               seemfa|seeerl|seetype|seeapp|seecom|seecref|seefile|seeguide.

               fsdescription has been added for adding a title to
               groups of functions, for instance Module Callbacks.

               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-4.0 -----------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-15800    Application(s): erl_interface, erts, odbc, os_mon, wx

               Fix various compiler warnings on 64-bit Windows.


  OTP-16604    Application(s): erl_interface

               erl_call will now work properly on systems that cannot
               resolve their own hostname.


  OTP-16623    Application(s): erl_interface

               Various bug fixes:

               -- Internal error checking in various functions.

               -- ei_rpc() accepted any 2-tuple message as an rpc
               response.

               -- ei_decode_ref() now refuse to write outside of
               allocated memory in case a huge reference is decoded.

               -- ei_decode_ei_term() now reports the same term types
               as ei_get_type().


 --- Improvements and New Features ---

  OTP-13812    Application(s): erl_interface, kernel

               A client node can receive its node name dynamically
               from the node that it first connects to. This featured
               can by used by

               -- starting with erl -sname undefined

               -- erl_interface functions ei_connect_init and friends

               -- erl_call -R


  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

               *** POTENTIAL INCOMPATIBILITY ***

               As announced in OTP 22.0, the deprecated parts of
               erl_interface have now been removed (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.


  OTP-16594    Application(s): erl_interface

               A number of new functions have been added to the
               erl_interface API:

               -- ei_cmp_pids()

               -- ei_cmp_ports()

               -- ei_cmp_refs()

               -- ei_decode_iodata()

               -- ei_make_pid()

               -- ei_make_ref()


  OTP-16624    Application(s): erl_interface

               Added a -timeout option to erl_call.


  OTP-16630    Application(s): erl_interface

               *** POTENTIAL INCOMPATIBILITY ***

               The erl_interface registry functionality is deprecated
               as of OTP 23, and will be removed in OTP 24. Reasonably
               new gcc compilers will issue deprecation warnings when
               using this functionality. In order to disable these
               warnings, define the macro EI_NO_DEPR_WARN.


  OTP-16633    Application(s): erl_interface

               Documentation improvements.


 --- Known Bugs and Problems ---

  OTP-16607    Application(s): erl_interface
               Related Id(s): OTP-16608

               The ei API for decoding/encoding terms is not fully
               64-bit compatible since terms that have a
               representation on the external term format larger than
               2 GB cannot be handled.


 ---------------------------------------------------------------------
 --- 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-15800    Application(s): erl_interface, erts, odbc, os_mon, wx

               Fix various compiler warnings on 64-bit Windows.


  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-16431    Application(s): erts, stdlib
               Related Id(s): ERL-592

               Compiling a match specification with excessive nesting
               caused the runtime system to crash due to scheduler
               stack exhaustion. Instead of crashing the runtime
               system, effected functions will now raise a
               system_limit error exception in this situation.


  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.


  OTP-16521    Application(s): erts
               Related Id(s): ERL-716

               Fix bug on Windows causing bad performance when
               standard input is closed, especially if the VM is only
               assigned one CPU core. Could be provoked for example by
               starting erl or escript via function os:cmd/1. Could be
               avoided with command line option -noinput.

               The bad performance was caused by an io thread spinning
               indefinitely.


  OTP-16571    Application(s): erts

               Fixed a bug on Unix platforms that would cause
               file:read_file_info/1 to return incorrect results if
               the emulator's effective user or group id differed from
               its actual ones.


  OTP-16576    Application(s): erts
               Related Id(s): ERL-1208

               socket: Compile problems on Android when
               PACKET_FASTROUTE and PACKET_USER are both defined and
               has the same value. Use of PACKET_FASTROUTE has been
               removed as it may be unused and also only for none
               user-land.


  OTP-16596    Application(s): erts
               Related Id(s): ERL-1105, PR-2606

               Fixed bug in erl_crash.dump generation that could cause
               a SEGV core dump if a recently cancelled timer was
               found.


 --- 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-16250    Application(s): erts, kernel

               *** HIGHLIGHT ***

               The possibility to run Erlang distribution without
               relying on EPMD has been extended. To achieve this a
               couple of new options to the inet distribution has been
               added.

               -- -dist_listen false -- Setup the distribution
               channel, but do not listen for incoming connection.
               This is useful when you want to use the current node to
               interact with another node on the same machine without
               it joining the entire cluster.

               -- -erl_epmd_port Port -- Configure a default port that
               the built-in EPMD client should return. This allows the
               local node to know the port to connect to for any other
               node in the cluster.

               The erl_epmd callback API has also been extended to
               allow returning -1 as the creation which means that a
               random creation will be created by the node.

               In addition a new callback function called
               listen_port_please has been added that allows the
               callback to return which listen port the distribution
               should use. This can be used instead of
               inet_dist_listen_min/max if the listen port is to be
               fetched from an external service.


  OTP-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-16312    Application(s): erts, kernel

               The new experimental socket module has been moved to
               the Kernel application.


  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 erlang:decode_packet/3. Example:

               > erlang:decode_packet(httph_bin,<<"HELLO:
               hi\r\n\r\n">>,[]).
               {ok,{http_header,0,<<"Hello">>,<<"HELLO">>,<<"hi">>},<<"\r\n">>}


  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.


  OTP-16530    Application(s): erts, kernel
               Related Id(s): OTP-16464

               Improve configure for the net nif, which should
               increase portability.


  OTP-16535    Application(s): erts, kernel

               socket: Socket counters and socket global counters are
               now represented as maps (instead of property lists).


  OTP-16543    Application(s): compiler, erts
               Related Id(s): ERL-1186

               Reduced the resource usage of erlc in parallel builds
               (e.g. make -j128).


  OTP-16550    Application(s): erts, kernel
               Related Id(s): ERIERL-476

               The experimental socket module has gotten restrictions
               removed so now the 'seqpacket' socket type should work
               for any communication domain (protocol family) where
               the OS supports it, typically the Unix Domain.


  OTP-16557    Application(s): erts, stdlib

               Updated the internal pcre library to 8.44.


  OTP-16601    Application(s): erts
               Related Id(s): OTP-16577

               There is now cost in terms of reductions when copying
               binary data using the binary syntax.


  OTP-16602    Application(s): erts

               The executable erl_call is now part of the erts
               distribution in addition to erl_interface.


  OTP-16615    Application(s): erts

               Fix a buffer overflow bug that caused EPMD to consume
               100% CPU after many nodes had been connected on the
               same time on NetBSD.


  OTP-16616    Application(s): erts

               erl -remsh now uses the dynamic node names feature by
               default. See the erl documentation for details.


  OTP-16620    Application(s): erts, kernel

               socket: By default the socket options rcvtimeo and
               sndtimeo are now disabled. To enable these, OTP now has
               to be built with the configure option
               --enable-esock-rcvsndtimeo


  OTP-16635    Application(s): erts
               Related Id(s): ERL-476, PR-2390

               The environment variable $HOME does no longer have to
               be set before Erlang can be started.


 Full runtime dependencies of erts-11.0: kernel-7.0, sasl-3.3,
 stdlib-3.13


 ---------------------------------------------------------------------
 --- 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


  OTP-16549    Application(s): eunit
               Related Id(s): PR-2532

               Add option to limit print depth of exceptions generated
               by eunit test suites.


 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.


  OTP-16504    Application(s): kernel
               Related Id(s): PR-2328

               The application stop/1 callback was not called if the
               application master of the application terminated.


  OTP-16627    Application(s): kernel
               Related Id(s): PR-2601

               Fix bug in application:loaded_applications/0 that could
               cause it to fail with badarg if for example a
               concurrent upgrade/downgrade is running.


 --- 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-13812    Application(s): erl_interface, kernel

               A client node can receive its node name dynamically
               from the node that it first connects to. This featured
               can by used by

               -- starting with erl -sname undefined

               -- erl_interface functions ei_connect_init and friends

               -- erl_call -R


  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-16250    Application(s): erts, kernel

               *** HIGHLIGHT ***

               The possibility to run Erlang distribution without
               relying on EPMD has been extended. To achieve this a
               couple of new options to the inet distribution has been
               added.

               -- -dist_listen false -- Setup the distribution
               channel, but do not listen for incoming connection.
               This is useful when you want to use the current node to
               interact with another node on the same machine without
               it joining the entire cluster.

               -- -erl_epmd_port Port -- Configure a default port that
               the built-in EPMD client should return. This allows the
               local node to know the port to connect to for any other
               node in the cluster.

               The erl_epmd callback API has also been extended to
               allow returning -1 as the creation which means that a
               random creation will be created by the node.

               In addition a new callback function called
               listen_port_please has been added that allows the
               callback to return which listen port the distribution
               should use. This can be used instead of
               inet_dist_listen_min/max if the listen port is to be
               fetched from an external service.


  OTP-16260    Application(s): kernel
               Related Id(s): OTP-15403

               *** HIGHLIGHT ***

               A first EXPERIMENTAL module that is a socket backend to
               gen_tcp and inet has been implemented. Others will
               follow. Feedback will be appreciated.


  OTP-16312    Application(s): erts, kernel

               The new experimental socket module has been moved to
               the Kernel application.


  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.


  OTP-16530    Application(s): erts, kernel
               Related Id(s): OTP-16464

               Improve configure for the net nif, which should
               increase portability.


  OTP-16535    Application(s): erts, kernel

               socket: Socket counters and socket global counters are
               now represented as maps (instead of property lists).


  OTP-16550    Application(s): erts, kernel
               Related Id(s): ERIERL-476

               The experimental socket module has gotten restrictions
               removed so now the 'seqpacket' socket type should work
               for any communication domain (protocol family) where
               the OS supports it, typically the Unix Domain.


  OTP-16563    Application(s): kernel
               Related Id(s): PR-2523

               Allow using custom IO devices in logger_std_h.


  OTP-16570    Application(s): kernel
               Related Id(s): PR-2565

               Added file:del_dir_r/1 which deletes a directory
               together with all of its contents, similar to rm -rf on
               Unix systems.


  OTP-16620    Application(s): erts, kernel

               socket: By default the socket options rcvtimeo and
               sndtimeo are now disabled. To enable these, OTP now has
               to be built with the configure option
               --enable-esock-rcvsndtimeo


  OTP-16632    Application(s): kernel
               Related Id(s): ERL-1234

               The experimental gen_tcp compatibility code utilizing
               the socket module could loose buffered data when
               receiving a specified number of bytes. This bug has
               been fixed. Reported by Maksim Lapshin on
               bugs.erlang.org ERL-1234


 Full runtime dependencies of kernel-7.0: erts-11.0, sasl-3.0,
 stdlib-3.13


 ---------------------------------------------------------------------
 --- megaco-3.19 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- 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.


  OTP-16531    Application(s): megaco

               The preliminary version 3 codec(s) prev3a, prev3b and
               prev3c has been deprecated and will be *removed* in OTP
               24. The encoding config option 'version3' will continue
               to work until OTP 24.


 Full runtime dependencies of megaco-3.19: 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.


  OTP-16634    Application(s): mnesia
               Related Id(s): ERL-1227, PR-2610

               Fixed a bug where mnesia was sometimes not waiting
               during start for a commit decision on asymmetric
               transactions.


 --- 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.13, wx-1.2


 ---------------------------------------------------------------------
 --- odbc-2.13 -------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-15800    Application(s): erl_interface, erts, odbc, os_mon, wx

               Fix various compiler warnings on 64-bit Windows.


 --- Improvements and New Features ---

  OTP-16544    Application(s): odbc
               Related Id(s): OTP-16328

               Rewrite due to the removal of erl_interface legacy
               functions.


 Full runtime dependencies of odbc-2.13: erts-6.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- os_mon-2.5.2 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-15800    Application(s): erl_interface, erts, odbc, os_mon, wx

               Fix various compiler warnings on 64-bit Windows.


 --- 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.8 --------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-15247    Application(s): public_key, ssl

               *** HIGHLIGHT ***

               Added support for RSA-PSS signature schemes


  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.8: 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.13


 ---------------------------------------------------------------------
 --- sasl-4.0 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- 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-16561    Application(s): sasl
               Related Id(s): PR-2420

               systools:make_script/2 now accepts the name of the boot
               file to create, it is not restricted to only
               RelName.boot or start.boot.

               systools:make_tar/2 now accepts the option extra_files
               to add any extra non release related files to the tar
               file.


  OTP-16603    Application(s): sasl

               *** POTENTIAL INCOMPATIBILITY ***

               systools:make_tar/1,2 now filters out any tools from
               erts if included in the release tar ball. See the
               documentation for more details.


 Full runtime dependencies of sasl-4.0: erts-10.2, kernel-5.3,
 stdlib-3.4, tools-2.6.14


 ---------------------------------------------------------------------
 --- snmp-5.6 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16541    Application(s): snmp
               Related Id(s): #2544

               For manager, fix PrivParams for SNMPv3 USM with AES
               privacy; * In `snmp_usm:do_decrypt/3`, pass full
               UsmSecParams to `snmp_usm:try_decrypt/5` as expected by
               AES clause. * Change `snmpm_usm:aes_encrypt/3` to use
               EngineBoots and EngineTime as cached by
               `snmpm_config:get_usm_eboots/1` and
               `snmpm_config:get_usm_etime/1` instead of
               `snmpm_config:get_engine_boots/0` and
               `snmpm_config:get_engine_time/0`. This ensures correct
               msgPrivacyParameters are sent when AES is used. * Add
               test `snmp.snmp_manager_SUITE.usm_priv_aes/1` to avoid
               regression.


  OTP-16552    Application(s): snmp
               Related Id(s): ERL-1196

               Invalid character in (manager) usm config entry
               generator function.


 --- 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-16463    Application(s): snmp

               Finalize deprecation. Already deprecated functions has
               a "remove version 24" set and "new" functions added to
               list of deprecated functions.


  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.6: crypto-3.3, erts-6.0,
 kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5


 ---------------------------------------------------------------------
 --- ssh-4.10 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- 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
               tcp-forward/direct-tcp is implemented. In the OpenSSH
               client, this corresponds to the options -L and -R.

               The client or server listens to a specified socket, and
               when something connects to it with TCP/IP, that
               connection is forwarded in an encrypted tunnel to the
               peer. The peer then connects to a predefined IP/port
               pair and then acts as a proxy.

               See the manual, ssh:tcpip_tunnel_to_server/6 and
               ssh:tcpip_tunnel_from_server/6.

               The functionality is disabled per default but can be
               enabled when starting a daemon.


  OTP-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 posix-rename@openssh.com 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.


  OTP-16506    Application(s): ssh

               *** HIGHLIGHT ***

               The default known_hosts file handling is improved to
               include ports.

               The handling of the contents in that file is updated to
               support the full syntax, with exception of 1) the
               wildcard '?', 2) wildcards in canonical names and 3)
               the option '@cert-authority'


  OTP-16508    Application(s): ssh

               The MAC (Message Authorization Code) algorithms

               -- hmac-sha1-etm@openssh.com

               -- hmac-sha2-256-etm@openssh.com

               -- hmac-sha2-512-etm@openssh.com

               are implemented.


  OTP-16509    Application(s): ssh

               *** POTENTIAL INCOMPATIBILITY ***

               The key-exchange algorithms
               'diffie-hellman-group14-sha1' and
               'diffie-hellman-group-exchange-sha1' are disabled per
               default. The reason is that SHA1 now is considered
               insecure.

               They can be enabled if needed, see SSH (App).


  OTP-16510    Application(s): ssh

               *** POTENTIAL INCOMPATIBILITY ***

               The public key algorithm 'ssh-dss' is disabled per
               default. The reason is that it is now considered as
               insecure.

               It can be enabled if needed, see SSH (App).


  OTP-16511    Application(s): ssh

               *** POTENTIAL INCOMPATIBILITY ***

               The public key 'ssh-rsa' is now considered as insecure
               because of its usage of SHA1.

               It is therefore deprecated and will no longer be
               enabled per default in OTP-24.0.


  OTP-16512    Application(s): ssh

               An option optimize (optimize_key_lookup) is introduced
               for the file interface ssh_file.erl

               The option enables the user to select between the
               default handling which is fast but memory consuming vs
               memory efficient but not as fast. The effect might be
               observable only for large files.

               See the manual for ssh_file:is_host_key/5 and
               ssh_file:is_auth_key/3.


  OTP-16513    Application(s): ssh

               *** HIGHLIGHT ***

               The ssh agent is now implemented in the ssh_agent key
               callback module.

               Enable with the the option {key_cb, {ssh_agent, []}} in
               for example ssh:connect/3.

               See the ssh_agent manual for details.


  OTP-16540    Application(s): ssh

               *** HIGHLIGHT ***

               Algorithm configuration could now be done in a .config
               file.

               This is useful for example to enable an algorithm that
               is disabled by default. It could now be enabled in an
               .config-file without changing the code,

               See the SSH User's Guide chapter "Configuration in
               SSH".


  OTP-16589    Application(s): ssh

               Documented which gen_tcp socket options can't be used
               in calls to ssh:connect and ssh:daemon.


  OTP-16622    Application(s): ssh
               Related Id(s): PR-2604

               Added kb_int_fun_4() to the
               authentication_daemon_options() to enable generating
               dynamic keyboard-interactive prompts from the user's
               state returned from the authentication fun pwdfun_4().


 Full runtime dependencies of ssh-4.10: crypto-4.6.4, erts-9.0,
 kernel-5.3, public_key-1.6.1, stdlib-3.4.1


 ---------------------------------------------------------------------
 --- ssl-10.0 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16562    Application(s): ssl
               Related Id(s): ERL-1168

               Fix a bug that causes cross-build failure.

               This change excludes the ssl.d dependency file from the
               source tar balls.


  OTP-16573    Application(s): ssl
               Related Id(s): ERIERL-477

               Correct translation of OpenSSL legacy names for two
               legacy cipher suites


  OTP-16585    Application(s): ssl

               Correct documentation for PSK identity and SRP
               username.


  OTP-16626    Application(s): ssl
               Related Id(s): ERL-1232

               Make sure client hostname check is run when client uses
               its own verify_fun


  OTP-16638    Application(s): ssl
               Related Id(s): ERL-1206

               Improved signature selection mechanism in TLS 1.3 for
               increased interoperability.


 --- 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-15247    Application(s): public_key, ssl

               *** HIGHLIGHT ***

               Added support for RSA-PSS signature schemes


  OTP-15589    Application(s): ssl

               *** HIGHLIGHT ***

               Improve interoperability by implementing the middlebox
               compatiblity mode.

               The middlebox compatibility mode makes the TLS 1.3
               handshake look more like a TLS 1.2 handshake and
               increases the chance of successfully establishing TLS
               1.3 connections through legacy middleboxes.


  OTP-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-16391    Application(s): ssl

               Implement cipher suite TLS_AES_128_CCM_8_SHA256.


  OTP-16400    Application(s): ssl

               *** HIGHLIGHT ***

               *** 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.


  OTP-16519    Application(s): ssl

               Extended ssl:versions so that it lists supported,
               available and implemented TLS/DTLS versions.


  OTP-16532    Application(s): ssl

               Added new option exclusive for ssl:cipher_suites/2,3


  OTP-16533    Application(s): ssl

               Avoid DoS attack against stateful session_tickets by
               making session ticket ids unpredictable.


  OTP-16547    Application(s): ssl
               Related Id(s): PR-2547

               Add support for the max_fragment_length extension (RFC
               6066).


  OTP-16584    Application(s): ssl

               Add srp_username in ssl:connection_info, update the
               document with types of this function.


 Full runtime dependencies of ssl-10.0: crypto-4.2, erts-10.0,
 inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.5


 ---------------------------------------------------------------------
 --- stdlib-3.13 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16431    Application(s): erts, stdlib
               Related Id(s): ERL-592

               Compiling a match specification with excessive nesting
               caused the runtime system to crash due to scheduler
               stack exhaustion. Instead of crashing the runtime
               system, effected functions will now raise a
               system_limit error exception in this situation.


  OTP-16516    Application(s): compiler, stdlib

               Initialization of record fields using _ is no longer
               allowed if the number of affected fields is zero.


  OTP-16545    Application(s): stdlib

               Fix bugs in eval_bits.


 --- 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-16429    Application(s): compiler, stdlib
               Related Id(s): ERL-303

               The compiler will now raise a warning when inlining is
               used in modules that load NIFs.


  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).


  OTP-16557    Application(s): erts, stdlib

               Updated the internal pcre library to 8.44.


 Full runtime dependencies of stdlib-3.13: 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 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-15800    Application(s): erl_interface, erts, odbc, os_mon, wx

               Fix various compiler warnings on 64-bit Windows.


 --- 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


 ---------------------------------------------------------------------
 --- xmerl-1.3.25 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16617    Application(s): xmerl

               Fix a bug that the function name didn't get normalized
               in some case which left white spaces in links.


 Full runtime dependencies of xmerl-1.3.25: erts-6.0, kernel-3.0,
 stdlib-2.5


 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------