Inital Release:          OTP 24.0
Git Tag:                 OTP-24.0
Date:                    2021-05-12
Trouble Report Id:       OTP-10391, OTP-13126, OTP-14485, OTP-14601,
                         OTP-14646, OTP-14647, OTP-14650, OTP-14700,
                         OTP-14753, OTP-14793, OTP-15107, OTP-15523,
                         OTP-16226, OTP-16334, OTP-16517, OTP-16560,
                         OTP-16607, OTP-16611, OTP-16653, OTP-16656,
                         OTP-16678, OTP-16686, OTP-16687, OTP-16698,
                         OTP-16703, OTP-16706, OTP-16712, OTP-16718,
                         OTP-16720, OTP-16722, OTP-16723, OTP-16724,
                         OTP-16725, OTP-16749, OTP-16750, OTP-16788,
                         OTP-16793, OTP-16800, OTP-16809, OTP-16811,
                         OTP-16814, OTP-16822, OTP-16824, OTP-16865,
                         OTP-16867, OTP-16877, OTP-16878, OTP-16879,
                         OTP-16880, OTP-16881, OTP-16882, OTP-16883,
                         OTP-16884, OTP-16885, OTP-16898, OTP-16905,
                         OTP-16910, OTP-16926, OTP-16936, OTP-16940,
                         OTP-16943, OTP-16944, OTP-16945, OTP-16947,
                         OTP-16949, OTP-16950, OTP-16952, OTP-16957,
                         OTP-16963, OTP-16964, OTP-16968, OTP-16970,
                         OTP-16971, OTP-16974, OTP-16980, OTP-16981,
                         OTP-16986, OTP-16987, OTP-16995, OTP-17001,
                         OTP-17005, OTP-17007, OTP-17014, OTP-17015,
                         OTP-17020, OTP-17023, OTP-17024, OTP-17028,
                         OTP-17044, OTP-17049, OTP-17051, OTP-17057,
                         OTP-17059, OTP-17062, OTP-17077, OTP-17078,
                         OTP-17084, OTP-17092, OTP-17095, OTP-17103,
                         OTP-17104, OTP-17105, OTP-17106, OTP-17117,
                         OTP-17118, OTP-17120, OTP-17121, OTP-17122,
                         OTP-17123, OTP-17131, OTP-17132, OTP-17133,
                         OTP-17140, OTP-17142, OTP-17153, OTP-17154,
                         OTP-17155, OTP-17156, OTP-17157, OTP-17168,
                         OTP-17169, OTP-17170, OTP-17171, OTP-17172,
                         OTP-17175, OTP-17177, OTP-17180, OTP-17181,
                         OTP-17183, OTP-17186, OTP-17189, OTP-17192,
                         OTP-17198, OTP-17199, OTP-17201, OTP-17203,
                         OTP-17206, OTP-17207, OTP-17210, OTP-17213,
                         OTP-17214, OTP-17216, OTP-17217, OTP-17219,
                         OTP-17221, OTP-17222, OTP-17226, OTP-17236,
                         OTP-17243, OTP-17254, OTP-17257, OTP-17259,
                         OTP-17260, OTP-17262, OTP-17263, OTP-17266,
                         OTP-17267, OTP-17270, OTP-17272, OTP-17275,
                         OTP-17276, OTP-17277, OTP-17278, OTP-17284,
                         OTP-17285, OTP-17286, OTP-17287, OTP-17288,
                         OTP-17292, OTP-17293, OTP-17294, OTP-17300,
                         OTP-17301, OTP-17302, OTP-17310, OTP-17312,
                         OTP-17313, OTP-17314, OTP-17315, OTP-17321,
                         OTP-17322, OTP-17327, OTP-17329, OTP-17330,
                         OTP-17334, OTP-17341, OTP-17342, OTP-17343,
                         OTP-17344, OTP-17352, OTP-17353, OTP-17354,
                         OTP-17355, OTP-17364, OTP-17368, OTP-17372,
                         OTP-17373, OTP-17374, OTP-17378, OTP-17384,
                         OTP-17385, OTP-17387, OTP-17388
Seq num:                 ERIERL-537, ERIERL-618, ERIERL-619, ERL-1113,
                         ERL-1281, ERL-1308, ERL-1313, ERL-1332,
                         ERL-1335, ERL-1348, ERL-1354, ERL-1367,
                         ERL-1378, ERL-1379, ERL-1380, ERL-1381,
                         ERL-1418, ERL-1430, ERL-1431, ERL-1450,
                         ERL-1480, ERL-892, GH-4019, GH-4033, GH-4230,
                         GH-4360, GH-4469, GH-4473, GH-4493, GH-4525,
                         GH-4544, GH-4588, GH-4621, GH-4624, GH-4626,
                         GH-4631, GH-4636, GH-4637, GH-4650, GH-4680,
                         GH-4725, GH-4800
System:                  OTP
Release:                 24
Application:             asn1-5.0.16, common_test-1.20.3,
                         compiler-8.0, crypto-5.0, debugger-5.1,
                         dialyzer-4.4, edoc-1.0, erl_docgen-1.1,
                         erl_interface-5.0, erts-12.0, et-1.6.5,
                         eunit-2.6.1, ftp-1.1, inets-7.4,
                         jinterface-1.12, kernel-8.0, megaco-4.0,
                         mnesia-4.19.1, observer-2.9.6, odbc-2.13.4,
                         os_mon-2.7, parsetools-2.3, public_key-1.11,
                         reltool-0.9, runtime_tools-1.16.2, sasl-4.1,
                         snmp-5.9, ssh-4.12, ssl-10.4, stdlib-3.15,
                         syntax_tools-2.6, tftp-1.0.3, tools-3.5,
                         wx-2.0, xmerl-1.3.28
Predecessor:             OTP

 Check out the git tag OTP-24.0, and build a full OTP system including
 documentation.

 ---------------------------------------------------------------------
 --- HIGHLIGHTS ------------------------------------------------------
 ---------------------------------------------------------------------

  OTP-10391    Application(s): compiler
               Related Id(s): OTP-16226

               Selective receive optimization will now be applied much
               more often.

               The new recv_opt_info compile flag can be used to print
               diagnostics relating to this optimization.

               You can read more about the selective receive
               optimization in the Efficiency Guide.


  OTP-15523    Application(s): ftp
               Related Id(s): OTP-15352, PR-1968

               Add support for FTPES (explicit FTP over TLS).


  OTP-16611    Application(s): kernel
               Related Id(s): OTP-16749

               A compatibility adaptor for gen_tcp to use the new
               socket API has been implemented (gen_tcp_socket). Used
               when setting the kernel application variable
               inet_backend = socket.


  OTP-16686    Application(s): debugger, erts, kernel, stdlib

               Extended error information for failing BIF calls as
               proposed in EEP 54 has been implemented.

               When a BIF call from the Erlang shell fails, more
               information about which argument or arguments that were
               in error will be printed. The same extended error
               information will by proc_lib, common_test, and qlc when
               BIF calls fail.

               For applications that wish to provide the same extended
               error information, there are new functions
               erl_error:format_exception/3 and
               erl_error:format_exception/4.

               There is a new error/3 BIF that allows applications or
               libraries to provide extended error information in the
               same way for their own exceptions.


  OTP-16706    Application(s): compiler
               Related Id(s): ERL-1281

               Variables bound between the keywords 'try' and 'of' can
               now be used in the clauses following the 'of' keyword
               (that is, in the success case when no exception was
               raised).


  OTP-16718    Application(s): erts, kernel, stdlib
               Related Id(s): PR-2735

               The process alias feature as outlined by EEP 53 has
               been introduced. It is introduced in order to provide a
               lightweight mechanism that can prevent late replies
               after timeout or connection loss. For more information,
               see EEP 53 and the documentation of the new alias/1 BIF
               and the new options to the monitor/3 BIF.

               The call operation in the framework used by gen_server,
               gen_statem, and gen_event has been updated to utilize
               alias in order to prevent late responses. The
               gen_statem behavior still use a proxy process in the
               distributed case, since it has always prevented late
               replies and aliases wont work against pre OTP 24 nodes.
               The proxy process can be removed in OTP 26.

               The alias feature also made it possible to introduce
               new functions similar to the erpc:receive_response()
               function in the gen behaviors, so the new functions
               gen_server:receive_response(),
               gen_statem:receive_response(),
               gen_event:receive_response() have also been introduced.


  OTP-16800    Application(s): wx

               The application has been completely rewritten in order
               to use wxWidgets version 3 as its base.

               Add basic documentation generated from the wxWidgets
               project.


  OTP-16824    Application(s): compiler
               Related Id(s): PR-2664, PR-3006

               *** POTENTIAL INCOMPATIBILITY ***

               Compiler warnings and errors now include column numbers
               in addition to line numbers.

               When a compiler message is emitted, the source line is
               printed along with a marker (a ^ character) that
               indicates the column position of the issue. The option
               'brief' removes the printout of the source line.

               The compiler option {error_location, line | column} has
               been added. The default value is column. Besides adding
               column numbers to compilation warnings and errors, the
               option also determines whether column numbers are
               included in abstract code. If tools stop working,
               setting the environment variable ERL_COMPILER_OPTIONS
               can help (include {error_location, line}).

               The compiler will now call the function
               PT:parse_transform_info/0 in parse transforms (if it
               exists). It can be used by parse transforms to signal
               that they can only handle line numbers in abstract
               code.


  OTP-16885    Application(s): erts
               Related Id(s): PR-2745

               The BeamAsm JIT-compiler has been added to Erlang/OTP.
               The JIT-compiler is enabled by default on most x86
               64-bit platforms that have a C++ compiler that can
               compile C++17. To verify that a JIT enabled emulator is
               running you can use erlang:system_info(emu_flavor).

               For more information see the internal documentation of
               BeamAsm in erts.


  OTP-16949    Application(s): edoc
               Related Id(s): OTP-17192, PR-2803

               *** POTENTIAL INCOMPATIBILITY ***

               EDoc, the Erlang documentation engine, hits version 1.0
               with this release, which means a few changes.

               EDoc is now capable of emitting EEP-48 doc chunks. This
               means that, with some configuration, community projects
               can now provide documentation for shell_docs the same
               way that OTP libraries did since OTP 23.0.

               The @spec and @type EDoc tags have been deprecated.
               These are not supported with the new chunk-generating
               doclet and layout. Moreover, previously when there was
               a redundant @spec tag and -spec attribute defined for
               the same function, the @spec tag would take precedence.
               Now, the -spec attribute takes precedence and is more
               important. The same is true for redundant @type tags
               and -type attributes. Warnings are now emitted when
               such redundant entries are found.

               The ?NO_APP macro in edoc_doclet.hrl has been
               deprecated. Use the atom no_app instead.

               See the Doc chunks chapter in the Edoc User's Guide for
               more details.


  OTP-16964    Application(s): compiler

               Generators in list and binary comprehensions will now
               raise a {bad_generator,Generator} exception if the
               generator has an incorrect type (instead of raising an
               ad-hoc badarg or badarih exception). Similarly, when a
               filter does not evaluate to a boolean, a
               {bad_filter,Filter} exception will be raised. Some
               minor bugs in the compilation of binary comprehensions
               have also been fixed.


  OTP-16981    Application(s): compiler
               Related Id(s): ERL-1113

               Some compiler warnings, such as the warning for an
               expression whose result is ignored, could not be
               suppressed by assigning to a variable beginning with
               '_', but only by assigning to the anonymous variable
               ('_'). This has now been changed so that any warning
               that can be suppressed by assigning to the anonymous
               variable can also be suppressed by assigning to a
               variable beginning with '_'.


  OTP-17044    Application(s): ssl
               Related Id(s): PR-2654

               Make TLS handshakes in Erlang distribution concurrent.


  OTP-17142    Application(s): crypto, public_key, ssl
               Related Id(s): GH-4637, GH-4650, PR-4756

               TLS connections now support EdDSA certificates.


  OTP-17213    Application(s): wx
               Related Id(s): PR-3027

               Added support for wxWebView.


  OTP-17226    Application(s): compiler
               Related Id(s): GH-4019, PR-4545

               The compiler will now inline funs that are used only
               once immediately after their definition.


  OTP-17334    Application(s): stdlib
               Related Id(s): EEP-56, PR-4638

               Implementation of EEP 56 in supervisor. It adds the
               concept of significant children as well as the
               auto_shutdown supervisor flag.

               See the supervisor manual page for more information.


 ---------------------------------------------------------------------
 --- POTENTIAL INCOMPATIBILITIES -------------------------------------
 ---------------------------------------------------------------------

  OTP-15107    Application(s): stdlib
               Related Id(s): ERL-1381, PR-2813

               Time-outs in gen_statem with relative time 0 did not
               behave quite according to the intended model. This has
               now been corrected.

               The correction introduces a small potential
               incompatibility e.g when combining a state time-out
               with inserted events, and the inserted event does a
               state change in the state with the time-out. Before
               this correction the state time-out could be delivered
               even after the second state change, but now it is
               guaranteed that a state time-out is only delivered in
               the state it was started for, even in this corner case.


  OTP-16560    Application(s): megaco

               All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was
               deprecated in OTP-23.0. They have now been removed.


  OTP-16656    Application(s): crypto

               The functions and cipher names that were deprecated in
               OTP-23.0 are now removed.


  OTP-16749    Application(s): erts, kernel
               Related Id(s): OTP-14601

               The experimental new socket API has been further
               developed. Some backwards incompatible changes with
               respect to OTP 23 have been made.

               The control message format has been changed so a
               decoded value is now in the 'value' field instead of in
               the 'data' field. The 'data' field now always contains
               binary data.

               Some type names have been changed regarding message
               headers and control message headers.

               socket:bind/2 now returns plain ok instead of {ok,
               Port} which was only relevant for the inet and inet6
               address families and often not interesting. To find out
               which port was chosen use socket:sockname/1.


  OTP-16809    Application(s): kernel
               Related Id(s): ERL-1313

               Change the value of the tag head returned by
               disk_log:info/1 from {ok, Head} to just Head.


  OTP-16811    Application(s): kernel

               Remove the support for distributed disk logs. The new
               function disk_log:all/0 is to be used instead of
               disk_log:accessible_logs/0. The function
               disk_log:close/1 is to be used instead of
               disk_log:lclose/1,2.


  OTP-16824    Application(s): compiler
               Related Id(s): PR-2664, PR-3006

               *** HIGHLIGHT ***

               Compiler warnings and errors now include column numbers
               in addition to line numbers.

               When a compiler message is emitted, the source line is
               printed along with a marker (a ^ character) that
               indicates the column position of the issue. The option
               'brief' removes the printout of the source line.

               The compiler option {error_location, line | column} has
               been added. The default value is column. Besides adding
               column numbers to compilation warnings and errors, the
               option also determines whether column numbers are
               included in abstract code. If tools stop working,
               setting the environment variable ERL_COMPILER_OPTIONS
               can help (include {error_location, line}).

               The compiler will now call the function
               PT:parse_transform_info/0 in parse transforms (if it
               exists). It can be used by parse transforms to signal
               that they can only handle line numbers in abstract
               code.


  OTP-16878    Application(s): erts

               The code loader has been rewritten in order to be able
               to load JIT:ed code. As a consequence of this, it is no
               longer possible to load HiPE code.


  OTP-16943    Application(s): os_mon
               Related Id(s): OTP-16906

               The temporarily introduced configuration parameter
               memsup_improved_system_memory_data has been removed.


  OTP-16945    Application(s): erts

               Change escripts to output any errors or warnings to
               standard error instead of standard out.


  OTP-16949    Application(s): edoc
               Related Id(s): OTP-17192, PR-2803

               *** HIGHLIGHT ***

               EDoc, the Erlang documentation engine, hits version 1.0
               with this release, which means a few changes.

               EDoc is now capable of emitting EEP-48 doc chunks. This
               means that, with some configuration, community projects
               can now provide documentation for shell_docs the same
               way that OTP libraries did since OTP 23.0.

               The @spec and @type EDoc tags have been deprecated.
               These are not supported with the new chunk-generating
               doclet and layout. Moreover, previously when there was
               a redundant @spec tag and -spec attribute defined for
               the same function, the @spec tag would take precedence.
               Now, the -spec attribute takes precedence and is more
               important. The same is true for redundant @type tags
               and -type attributes. Warnings are now emitted when
               such redundant entries are found.

               The ?NO_APP macro in edoc_doclet.hrl has been
               deprecated. Use the atom no_app instead.

               See the Doc chunks chapter in the Edoc User's Guide for
               more details.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16968    Application(s): kernel

               The pg2 module has been removed.


  OTP-16970    Application(s): erl_interface

               The registry functionality part of erl_interface has
               been removed. It was as of OTP 23 deprecated and
               scheduled for removal in OTP 24.


  OTP-16971    Application(s): stdlib

               The filename:src/1 function which was deprecated in OTP
               20 has been removed. Use filelib:find_source/1,3
               instead.


  OTP-16974    Application(s): ssl

               Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1
               use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3
               instead.


  OTP-16987    Application(s): erts

               The erlang:monitor_node/2 BIF will now fail with a
               notalive exception if distribution has not been started
               on the current node; it used to fail with a badarg
               exception.


  OTP-17062    Application(s): kernel
               Related Id(s): ERIERL-537, ERL-1418, GH-4469

               Let disk_log:open/1 change the size if a wrap log is
               opened for the first time, that is, the disk log
               process does not exist, and the value of option size
               does not match the current size of the disk log.


  OTP-17156    Application(s): kernel

               Fix various issues with the gen_tcp_socket. Including
               documenting some incompatibilities.


  OTP-17216    Application(s): kernel
               Related Id(s): PR-2989

               The behaviour for gen_tcp:connect/3,4 has been changed
               to not per default bind to an address, which allows the
               network stack to delay the address and port selection
               to when the remote address is known. This allows better
               port re-use, and thus enables far more outgoing
               connections, since the ephemeral port range no longer
               has to be a hard limit.

               There is a theoretical possibility that this behaviour
               change can affect the set of possible error values, or
               have other small implications on some platforms.


  OTP-17219    Application(s): wx
               Related Id(s): OTP-16800

               Due to the support of the new backend versions some API
               incompatibilities have been introduced. Examples of
               changes are:

               wxWindowDC default creators have been removed
               wxClientDC default creators have been removed
               wxPaintDC default creators have been removed
               wxWindow:setVirtualSizeHints() has been deprecated in
               wxWidgets and removed
               wxWindow:makeModal() has been deprecated in wxWidgets
               and removed
               wxToolBar:add/insertTool without label have been
               deprecated in wxWidgets and removed
               wxStyledTextCtrl some functions have changed arguments
               from boolean to int
               wxSizerItem:new() Some arguments have become options
               Removed deprecated wxSizerItem:setWindow() use
               assignWindow()
               Removed deprecated wxSizerItem:setSpacer() use
               assignSpacer()
               Removed deprecated wxSizerItem:setSpacer() use
               assignSpacer()
               Removed deprecated wxSizerItem:setSizer() use
               assignSizer()
               wxMenu append/insert/prepend have changed return value
               and lost IsCheckable argument
               wxListCtrl:setItem/4 changed return value
               wxImage:convertToGreyscale() options have changed
               wxGridSizer:wxGridSizer() options have changed
               wxGrid API have many changes
               wxGraphicsRenderer:create*GradientBrush() uses
               GradientStops now
               wxGraphicsRenderer:createPen() have been removed
               wxGraphicsRenderer:create*GradientBrush() uses
               GradientStops now
               wxGLCanvas API is incompatible
               wxFlexGridSizer:wxFlexGridSizer() options have changed
               wxDisplay:new() options have changed
               wxCalendarDateAttr:new(ColText [,OptList]) have been
               removed
               wxBitmapButton:set/getBitmapSelected() have been
               removed


  OTP-17259    Application(s): ssh
               Related Id(s): ERIERL-619, OTP-16511

               The RSA SHA1 sign/verify variants are disabled by
               default. That is, ssh-rsa is disabled by default as
               well as the SHA1 sign/verify with RSA keys from id_rsa
               and ssh_host_rsa_key. All SHA2 sign/verify are enabled
               by default.

               The reason is that SHA1 is now considered easy to
               break.

               To enable RSA with SHA1, for example for a very old and
               unsafe peer, see Example 9 in the User's Guide chapter
               Configuring algorithms in SSH.


  OTP-17275    Application(s): erts
               Related Id(s): PR-4553

               The erl command line arguments +Bi, +Bd, and +B
               erroneously caused reception of the USR1 signal to
               terminate the runtime system without creating a crash
               dump. Reception of the USR1 signal now always cause
               termination *with* creation of a crash dump, regardless
               of command line arguments passed. This bug has existed
               at least since OTP R5B.


  OTP-17355    Application(s): kernel
               Related Id(s): OTP-17154

               The return values from module socket functions send(),
               sendto(), sendmsg(), sendfile() and recv() has been
               changed to return a tuple tagged with select when a
               SelectInfo was returned, and not sometimes tagged with
               ok.

               This is a backwards incompatible change that improves
               usability for code using asynchronous operations.


 ---------------------------------------------------------------------
 --- OTP-24.0 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17272    Application(s): otp
               Related Id(s): GH-4626, PR-4627

               Updated autoconf auxiliary files.


  OTP-17278    Application(s): otp
               Related Id(s): GH-4621

               Do not allow a mandatory application to be disabled
               using the configure switch --without-appname.


  OTP-17373    Application(s): otp
               Related Id(s): PR-4645

               A build of OTP configured with --without-jinterface now
               builds without complaining about missing jinterface
               files.


  OTP-17378    Application(s): otp
               Related Id(s): PR-4791

               The documentation about signaling in Erlang has been
               improved in the Processes chapter of the Erlang
               Reference Manual.


 ---------------------------------------------------------------------
 --- asn1-5.0.16 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17387    Application(s): asn1
               Related Id(s): OTP-17123

               Fixed a bug in the asn1 compiler that potentially could
               cause it to fail to open a file.


 Full runtime dependencies of asn1-5.0.16: erts-7.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- common_test-1.20.3 ----------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16940    Application(s): common_test
               Related Id(s): ERL-1335

               The option release_shell could crash when used together
               with the spec option.


 --- Improvements and New Features ---

  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of common_test-1.20.3: 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-8.0 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17077    Application(s): compiler, erts, stdlib
               Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906

               A floating point zero (0.0) can be both positive (+0.0)
               and negative (-0.0). Multiple bugs in the compiler,
               runtime system, and STDLIB have been fixed to ensure
               that the minus sign on 0.0 is not lost.


  OTP-17104    Application(s): compiler
               Related Id(s): ERL-1380

               A repeated stack trace variable in a try/catch was not
               rejected. The following example will now cause a
               compilation error:

               try E catch _:A:A -> A end.


  OTP-17118    Application(s): compiler, stdlib
               Related Id(s): PR-2825

               Eliminated a Dialyzer crashed when the -MMD option is
               used to generate a dependency file and a BEAM file a
               the same time.


  OTP-17206    Application(s): compiler

               When the makedep option was given, the compiler would
               crash if the dependency output contained non-latin1
               characters. The compiler will now output the dependency
               information encoded in UTF-8 to avoid crashing.


 --- Improvements and New Features ---

  OTP-10391    Application(s): compiler
               Related Id(s): OTP-16226

               *** HIGHLIGHT ***

               Selective receive optimization will now be applied much
               more often.

               The new recv_opt_info compile flag can be used to print
               diagnostics relating to this optimization.

               You can read more about the selective receive
               optimization in the Efficiency Guide.


  OTP-16334    Application(s): compiler

               erlang:throw/1 will no longer build stack traces when
               we can prove that they will never be inspected.


  OTP-16706    Application(s): compiler
               Related Id(s): ERL-1281

               *** HIGHLIGHT ***

               Variables bound between the keywords 'try' and 'of' can
               now be used in the clauses following the 'of' keyword
               (that is, in the success case when no exception was
               raised).


  OTP-16824    Application(s): compiler
               Related Id(s): PR-2664, PR-3006

               *** HIGHLIGHT ***

               *** POTENTIAL INCOMPATIBILITY ***

               Compiler warnings and errors now include column numbers
               in addition to line numbers.

               When a compiler message is emitted, the source line is
               printed along with a marker (a ^ character) that
               indicates the column position of the issue. The option
               'brief' removes the printout of the source line.

               The compiler option {error_location, line | column} has
               been added. The default value is column. Besides adding
               column numbers to compilation warnings and errors, the
               option also determines whether column numbers are
               included in abstract code. If tools stop working,
               setting the environment variable ERL_COMPILER_OPTIONS
               can help (include {error_location, line}).

               The compiler will now call the function
               PT:parse_transform_info/0 in parse transforms (if it
               exists). It can be used by parse transforms to signal
               that they can only handle line numbers in abstract
               code.


  OTP-16867    Application(s): compiler
               Related Id(s): ERL-1354

               Fixed a performance bug that made functions with lots
               of try/after blocks slow to compile.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16964    Application(s): compiler

               *** HIGHLIGHT ***

               Generators in list and binary comprehensions will now
               raise a {bad_generator,Generator} exception if the
               generator has an incorrect type (instead of raising an
               ad-hoc badarg or badarih exception). Similarly, when a
               filter does not evaluate to a boolean, a
               {bad_filter,Filter} exception will be raised. Some
               minor bugs in the compilation of binary comprehensions
               have also been fixed.


  OTP-16981    Application(s): compiler
               Related Id(s): ERL-1113

               *** HIGHLIGHT ***

               Some compiler warnings, such as the warning for an
               expression whose result is ignored, could not be
               suppressed by assigning to a variable beginning with
               '_', but only by assigning to the anonymous variable
               ('_'). This has now been changed so that any warning
               that can be suppressed by assigning to the anonymous
               variable can also be suppressed by assigning to a
               variable beginning with '_'.


  OTP-17078    Application(s): compiler
               Related Id(s): ERL-1430, PR-2918

               The previously undocumented compiler options
               warn_missing_spec and warn_missing_spec_all are now
               documented.


  OTP-17123    Application(s): compiler

               The compiler will now emit warnings when (previously
               bound) underscore-prefixed variables are matched.


  OTP-17168    Application(s): compiler

               Erlang source files not encoded in utf-8 will no longer
               be accepted by the compiler unless it contains a
               "coding: latin-1" comment.


  OTP-17172    Application(s): compiler

               New compiler options from_abstr and no_lint have been
               added. They are useful when implementing other
               languages running on the BEAM.


  OTP-17207    Application(s): compiler, erts

               The bit matching and construction syntax now supports
               16-bit floats (IEEE 754-2008).


  OTP-17226    Application(s): compiler
               Related Id(s): GH-4019, PR-4545

               *** HIGHLIGHT ***

               The compiler will now inline funs that are used only
               once immediately after their definition.


  OTP-17260    Application(s): compiler

               It is now possible to disable warnings emitted from the
               compiler's optimization passes with the new options
               nowarn_opportunistic, nowarn_nomatch, nowarn_ignored,
               and nowarn_failed.


  OTP-17301    Application(s): compiler, erts
               Related Id(s): GH-4636

               Introduce new types nonempty_binary() and
               nonempty_bitstring().


  OTP-17330    Application(s): compiler, stdlib

               Add compiler option {nowarn_unused_record,
               RecordNames}. Document compiler option
               nowarn_unused_type.


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


 ---------------------------------------------------------------------
 --- crypto-5.0 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16882    Application(s): crypto

               Add /usr/local/opt/openssl to the openssl configure
               search path. This path is where some tools on OS X
               place openssl.


  OTP-17105    Application(s): crypto, erts, odbc, wx
               Related Id(s): PR-2872

               Fix compiler warnings produced by the clang compiler.


  OTP-17254    Application(s): crypto, erts
               Related Id(s): ERIERL-618, GH-4230

               The configure scripts in crypto and erts now fail if a
               requested feature cannot be enabled.

               Large parts of the configure script of crypto have been
               rewritten with various improvements and bug fixes. It
               is now better at finding usable OpenSSL libraries, but
               will in the following cases fail to detect OpenSSL
               libraries where it previously sometimes detected the
               libraries by chance:

               -- OpenSSL installations with include directory and lib
               directory parts installed in different base
               directories. In order to detect such installations
               after this change, the user must explicitly specify the
               locations using the --with-ssl=<path> and the
               --with-ssl-incl=<path> configure command line
               arguments.

               -- When building with old gcc compilers or other
               compilers on Debian derivatives with multiarch
               directories under the lib directory. In order to detect
               such installations after this change, the user must
               explicitly specify the multiarch directory name using
               the --with-ssl-lib-subdir=lib/<multiarch-dir> configure
               command line argument.


  OTP-17312    Application(s): crypto
               Related Id(s): PR-4723

               The value 'none' was missing in the specs of
               crypto:sign/4 and crypto:verify/6.


 --- Improvements and New Features ---

  OTP-16656    Application(s): crypto

               *** POTENTIAL INCOMPATIBILITY ***

               The functions and cipher names that were deprecated in
               OTP-23.0 are now removed.


  OTP-17001    Application(s): crypto
               Related Id(s): PR-2852

               Removed installed directory priv/obj/ containing
               superfluous object files.


  OTP-17142    Application(s): crypto, public_key, ssl
               Related Id(s): GH-4637, GH-4650, PR-4756

               *** HIGHLIGHT ***

               TLS connections now support EdDSA certificates.


  OTP-17313    Application(s): crypto
               Related Id(s): PR-4686

               Add prop_aead attribute to map from
               crypto:cipher_info/1.


 Full runtime dependencies of crypto-5.0: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- debugger-5.1 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16686    Application(s): debugger, erts, kernel, stdlib

               *** HIGHLIGHT ***

               Extended error information for failing BIF calls as
               proposed in EEP 54 has been implemented.

               When a BIF call from the Erlang shell fails, more
               information about which argument or arguments that were
               in error will be printed. The same extended error
               information will by proc_lib, common_test, and qlc when
               BIF calls fail.

               For applications that wish to provide the same extended
               error information, there are new functions
               erl_error:format_exception/3 and
               erl_error:format_exception/4.

               There is a new error/3 BIF that allows applications or
               libraries to provide extended error information in the
               same way for their own exceptions.


 Full runtime dependencies of debugger-5.1: compiler-5.0, erts-9.0,
 kernel-5.3, stdlib-3.4, wx-1.2


 ---------------------------------------------------------------------
 --- dialyzer-4.4 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16883    Application(s): dialyzer

               Some internal HiPE modules have been moved into the
               dialyzer application so that dialyzer works when HiPE
               is disabled.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16986    Application(s): dialyzer
               Related Id(s): ERL-1379, ERL-1480, GH-4033

               Add warning option no_underspecs.


  OTP-16995    Application(s): dialyzer
               Related Id(s): ERL-1348

               Report filename and location for warnings returned due
               to the -Wunknown option. When used from the
               command-line, one location per file is printed.


  OTP-17084    Application(s): dialyzer

               Add types and specifications for documentation.


  OTP-17177    Application(s): dialyzer
               Related Id(s): OTP-16824

               Add option error_location. The option is recognized if
               included in the environment variable
               ERL_COMPILER_OPTIONS.


  OTP-17183    Application(s): dialyzer
               Related Id(s): ERL-892, GH-4493

               Clarify how to declare records used in match patterns.


 Full runtime dependencies of dialyzer-4.4: compiler-7.0, erts-9.0,
 kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2


 ---------------------------------------------------------------------
 --- edoc-1.0 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17092    Application(s): edoc

               Fix so that the edoc_doclet option file_suffix also
               effects the links emitted into the module index.


 --- Improvements and New Features ---

  OTP-16949    Application(s): edoc
               Related Id(s): OTP-17192, PR-2803

               *** HIGHLIGHT ***

               *** POTENTIAL INCOMPATIBILITY ***

               EDoc, the Erlang documentation engine, hits version 1.0
               with this release, which means a few changes.

               EDoc is now capable of emitting EEP-48 doc chunks. This
               means that, with some configuration, community projects
               can now provide documentation for shell_docs the same
               way that OTP libraries did since OTP 23.0.

               The @spec and @type EDoc tags have been deprecated.
               These are not supported with the new chunk-generating
               doclet and layout. Moreover, previously when there was
               a redundant @spec tag and -spec attribute defined for
               the same function, the @spec tag would take precedence.
               Now, the -spec attribute takes precedence and is more
               important. The same is true for redundant @type tags
               and -type attributes. Warnings are now emitted when
               such redundant entries are found.

               The ?NO_APP macro in edoc_doclet.hrl has been
               deprecated. Use the atom no_app instead.

               See the Doc chunks chapter in the Edoc User's Guide for
               more details.


  OTP-17095    Application(s): edoc
               Related Id(s): PR-2914

               Edoc has been updated to use -spec to document its own
               interface instead of @doc@ tags.

               Together with this change the inter-application linking
               for -spec style documentation has been improved.


  OTP-17153    Application(s): edoc
               Related Id(s): PR-2674

               Allow user defined edoc macros to be functions.


 Full runtime dependencies of edoc-1.0: erts-6.0, inets-5.10,
 kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7


 ---------------------------------------------------------------------
 --- erl_docgen-1.1 --------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17122    Application(s): erl_docgen, stdlib

               Fixed bug in shell_docs and erl_docgen that interpreted
               em tags as strong.


  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


  OTP-17257    Application(s): erl_docgen

               Fix bug where see* elements within type/name were
               removed when generating html. Bug has been present
               since OTP-21.


 --- Improvements and New Features ---

  OTP-16877    Application(s): erl_docgen

               Add support for displaying .svg images.


  OTP-17192    Application(s): erl_docgen
               Related Id(s): PR-2803

               Updated the way specs are generated after changes in
               edoc.


 Full runtime dependencies of erl_docgen-1.1: edoc-1.0, erts-9.0,
 kernel-8.0, stdlib-3.15, xmerl-1.3.7


 ---------------------------------------------------------------------
 --- erl_interface-5.0 -----------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17132    Application(s): erl_interface, kernel

               Two options have been added to erl_call. The
               -fetch_stdout option fetches stdout data resulting from
               the code invoked by erl_call. The -fetch_stdout option
               disables printing of the result term. In order to
               implement the first of these two options a new function
               called ei_xrpc_from has been added to erl_interface.
               For details see the erl_call documentation and
               erl_interface documentation.


 --- Improvements and New Features ---

  OTP-16720    Application(s): erl_interface, erts, jinterface
               Related Id(s): PR-2680

               Accept 64-bit process identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit pids in a future OTP release.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16970    Application(s): erl_interface

               *** POTENTIAL INCOMPATIBILITY ***

               The registry functionality part of erl_interface has
               been removed. It was as of OTP 23 deprecated and
               scheduled for removal in OTP 24.


  OTP-17005    Application(s): erl_interface, erts, jinterface,
               kernel, stdlib
               Related Id(s): OTP-16718

               Accept references up to a size of 160-bits from remote
               nodes. This is the first step in an upgrade path toward
               using references up to 160-bits in a future OTP
               release.


  OTP-17007    Application(s): erl_interface, erts, jinterface

               Accept 64-bit port identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit port identifiers in a future OTP release.


  OTP-17270    Application(s): erl_interface
               Related Id(s): OTP-17127

               Support the new link protocol in order to be able to
               phase out the old link protocol in the future.
               erl_interface does not support setting up or removing
               links from the erl_interface side, so the bug present
               with the old protocol did not effect erl_interface.
               This since both participants of a link simultaneously
               needed to operate on the link in order to trigger the
               bug.


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

 --- Fixed Bugs and Malfunctions ---

  OTP-16822    Application(s): erts
               Related Id(s): PR-2723

               file:open/2 now throws an badarg error when opened with
               both the ram and raw options.


  OTP-16879    Application(s): erts

               The estone benchmark has been updated to better reflect
               changes in the compiler and run-time system.


  OTP-16880    Application(s): erts

               Fix profile guided optimization of run-time system when
               using GCC 7 or later.


  OTP-16884    Application(s): erts

               Fix double close of fd when creating crash dump.


  OTP-17014    Application(s): erts

               Improve erl error message when unable to open included
               args_file.


  OTP-17020    Application(s): erts

               Remove warning text about the -- operation from
               documentation

               The -- operation was optimized in Erlang/OTP 22 so that
               its worst case complexity is O(N*log(N)), where N is
               the total size of the input lists. Therefore, the
               warning in the documentation saying that the time
               complexity is proportional to length(A)*length(B) is
               incorrect and is no longer needed. Notice that
               Erlang/OTP 21 will no longer be supported when
               Erlang/OTP 24 gets released.


  OTP-17077    Application(s): compiler, erts, stdlib
               Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906

               A floating point zero (0.0) can be both positive (+0.0)
               and negative (-0.0). Multiple bugs in the compiler,
               runtime system, and STDLIB have been fixed to ensure
               that the minus sign on 0.0 is not lost.


  OTP-17105    Application(s): crypto, erts, odbc, wx
               Related Id(s): PR-2872

               Fix compiler warnings produced by the clang compiler.


  OTP-17131    Application(s): erts
               Related Id(s): GH-4360, PR-3031

               Windows process erl.exe killed if its service process
               erlsrv.exe terminates.


  OTP-17254    Application(s): crypto, erts
               Related Id(s): ERIERL-618, GH-4230

               The configure scripts in crypto and erts now fail if a
               requested feature cannot be enabled.

               Large parts of the configure script of crypto have been
               rewritten with various improvements and bug fixes. It
               is now better at finding usable OpenSSL libraries, but
               will in the following cases fail to detect OpenSSL
               libraries where it previously sometimes detected the
               libraries by chance:

               -- OpenSSL installations with include directory and lib
               directory parts installed in different base
               directories. In order to detect such installations
               after this change, the user must explicitly specify the
               locations using the --with-ssl=<path> and the
               --with-ssl-incl=<path> configure command line
               arguments.

               -- When building with old gcc compilers or other
               compilers on Debian derivatives with multiarch
               directories under the lib directory. In order to detect
               such installations after this change, the user must
               explicitly specify the multiarch directory name using
               the --with-ssl-lib-subdir=lib/<multiarch-dir> configure
               command line argument.


  OTP-17275    Application(s): erts
               Related Id(s): PR-4553

               *** POTENTIAL INCOMPATIBILITY ***

               The erl command line arguments +Bi, +Bd, and +B
               erroneously caused reception of the USR1 signal to
               terminate the runtime system without creating a crash
               dump. Reception of the USR1 signal now always cause
               termination *with* creation of a crash dump, regardless
               of command line arguments passed. This bug has existed
               at least since OTP R5B.


  OTP-17314    Application(s): erts
               Related Id(s): GH-4624, OTP-15926, PR-

               Add check to make sure that when passing an option to
               erl that requires an argument, but none is given, we
               report an error. This fixes a bug introduced in
               OTP-22.1 via OTP-15926.


  OTP-17329    Application(s): erts
               Related Id(s): PR-4730

               The "Last calls" section in crash dumps have been
               updated to print newlines after each non-function
               save_calls state (send, receive, timeout).


  OTP-17372    Application(s): erts, kernel

               Sockets created with socket:accept not counted
               (socket:info/0).


 --- Improvements and New Features ---

  OTP-14601    Application(s): erts, kernel
               Related Id(s): OTP-16749, PR-2641, PR-2670

               The experimental socket module can now use any protocol
               (by name) the OS supports. Suggested in PR-2641,
               implemented in PR-2670.


  OTP-14753    Application(s): erts

               New functions enif_dynamic_resource_call enables NIFs
               to call native code in another NIF module. The call is
               done via a resource callback function dyncall supplied
               by the user with the new enif_init_resource_type.


  OTP-16226    Application(s): erts
               Related Id(s): OTP-10391

               Runtime support for new improved selective receive
               optimization.


  OTP-16653    Application(s): erts

               The deprecated function erlang:get_stacktrace/0 has
               been removed. Use the new syntax in try/catch to
               retrieve the stack backtrace.


  OTP-16678    Application(s): erts, stdlib, syntax_tools, tools
               Related Id(s): PR-2627

               Support for handling abstract code created before OTP
               R15 has been dropped.


  OTP-16686    Application(s): debugger, erts, kernel, stdlib

               *** HIGHLIGHT ***

               Extended error information for failing BIF calls as
               proposed in EEP 54 has been implemented.

               When a BIF call from the Erlang shell fails, more
               information about which argument or arguments that were
               in error will be printed. The same extended error
               information will by proc_lib, common_test, and qlc when
               BIF calls fail.

               For applications that wish to provide the same extended
               error information, there are new functions
               erl_error:format_exception/3 and
               erl_error:format_exception/4.

               There is a new error/3 BIF that allows applications or
               libraries to provide extended error information in the
               same way for their own exceptions.


  OTP-16687    Application(s): erts
               Related Id(s): PR-2762, PR-2996

               The erlang module documentation has been updated to
               improve clarity and description of edge cases.


  OTP-16703    Application(s): erts, kernel
               Related Id(s): PR-2620

               An example implementation of Erlang distribution over
               UDS using distribution processes has been introduced.

               Thanks to Jérôme de Bretagne


  OTP-16712    Application(s): erts

               Improve code generation when creating funs by adding a
               new beam instruction make_fun3 that does not do GC and
               allows for better register allocation.


  OTP-16718    Application(s): erts, kernel, stdlib
               Related Id(s): PR-2735

               *** HIGHLIGHT ***

               The process alias feature as outlined by EEP 53 has
               been introduced. It is introduced in order to provide a
               lightweight mechanism that can prevent late replies
               after timeout or connection loss. For more information,
               see EEP 53 and the documentation of the new alias/1 BIF
               and the new options to the monitor/3 BIF.

               The call operation in the framework used by gen_server,
               gen_statem, and gen_event has been updated to utilize
               alias in order to prevent late responses. The
               gen_statem behavior still use a proxy process in the
               distributed case, since it has always prevented late
               replies and aliases wont work against pre OTP 24 nodes.
               The proxy process can be removed in OTP 26.

               The alias feature also made it possible to introduce
               new functions similar to the erpc:receive_response()
               function in the gen behaviors, so the new functions
               gen_server:receive_response(),
               gen_statem:receive_response(),
               gen_event:receive_response() have also been introduced.


  OTP-16720    Application(s): erl_interface, erts, jinterface
               Related Id(s): PR-2680

               Accept 64-bit process identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit pids in a future OTP release.


  OTP-16749    Application(s): erts, kernel
               Related Id(s): OTP-14601

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental new socket API has been further
               developed. Some backwards incompatible changes with
               respect to OTP 23 have been made.

               The control message format has been changed so a
               decoded value is now in the 'value' field instead of in
               the 'data' field. The 'data' field now always contains
               binary data.

               Some type names have been changed regarding message
               headers and control message headers.

               socket:bind/2 now returns plain ok instead of {ok,
               Port} which was only relevant for the inet and inet6
               address families and often not interesting. To find out
               which port was chosen use socket:sockname/1.


  OTP-16788    Application(s): erts

               Remove old unused +MYm and ERL_MALLOC_LIB options.


  OTP-16814    Application(s): erts
               Related Id(s): PR-2704

               Increase timer resolution on windows.


  OTP-16878    Application(s): erts

               *** POTENTIAL INCOMPATIBILITY ***

               The code loader has been rewritten in order to be able
               to load JIT:ed code. As a consequence of this, it is no
               longer possible to load HiPE code.


  OTP-16881    Application(s): erts

               Add support in the Erlang/OTP build system to generate
               a compilation database that can be used by third-party
               tools (such as irony in Emacs) to compile the erts C
               and C++ source code. Create the database using make
               compdb.


  OTP-16885    Application(s): erts
               Related Id(s): PR-2745

               *** HIGHLIGHT ***

               The BeamAsm JIT-compiler has been added to Erlang/OTP.
               The JIT-compiler is enabled by default on most x86
               64-bit platforms that have a C++ compiler that can
               compile C++17. To verify that a JIT enabled emulator is
               running you can use erlang:system_info(emu_flavor).

               For more information see the internal documentation of
               BeamAsm in erts.


  OTP-16898    Application(s): erts
               Related Id(s): OTP-16856

               By default all ERTS internal memory allocators based on
               alloc_util will now use their own separate carrier pool
               for migration of carriers instead of using a node
               global carrier pool. This was the default behavior
               between OTP 17 and OTP 21, but changed to use a node
               global carrier pool as of OTP 22.0. Usage of the node
               global carrier pool proved troublesome since it had a
               tendency to spread long lived blocks into allocators
               with normally short lived blocks causing increased
               memory fragmentation. The node global carrier pool
               behavior as well as other behaviors can be configured
               using the +M<S>cp command line argument.


  OTP-16936    Application(s): erts, stdlib
               Related Id(s): ERL-1367

               New functions have been added to the maps module:
               merge_with/3, intersect/2, intersect_with/3,
               filtermap/2, from_keys/2, and maps:foreach/2.

               maps:merge_with/3 is the same as merge/2 but takes an
               extra fun that is used to combine items with the same
               key.

               maps:intersect/2 computes the intersection of two maps.

               maps:intersect_with/3 is the same as intersect/2 but
               takes an extra fun that is used to combine intersecting
               items.

               maps:filtermap/2 allows filtering and mapping of a map
               in a single pass.

               maps:from_keys/2 constructs a map from a list of keys
               and a single value and can be used to to optimize sets
               operations such as from_list/1, filter/2,
               intersection/2, and subtract/2.

               maps:foreach/2 allows iteration over a map without
               returning any value.


  OTP-16945    Application(s): erts

               *** POTENTIAL INCOMPATIBILITY ***

               Change escripts to output any errors or warnings to
               standard error instead of standard out.


  OTP-16952    Application(s): erts, kernel

               A new erl parameter for specifying a file descriptor
               with configuration data has been added. This makes it
               possible to pass the parameter "-configfd FD" when
               executing the erl command. When this option is given,
               the system will try to read and parse configuration
               parameters from the file descriptor.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16980    Application(s): erts, stdlib
               Related Id(s): ERL-1308

               The pretty printer for floating point number have been
               changed to make it easier to see if the integer part of
               the number has been rounded. After the change the digit
               that may have been rounded always appears last or just
               before the exponent character (e or E). This is
               accomplished by always printing the number using
               scientific notation if it is so large that the integer
               part could be rounded.


  OTP-16987    Application(s): erts

               *** POTENTIAL INCOMPATIBILITY ***

               The erlang:monitor_node/2 BIF will now fail with a
               notalive exception if distribution has not been started
               on the current node; it used to fail with a badarg
               exception.


  OTP-17005    Application(s): erl_interface, erts, jinterface,
               kernel, stdlib
               Related Id(s): OTP-16718

               Accept references up to a size of 160-bits from remote
               nodes. This is the first step in an upgrade path toward
               using references up to 160-bits in a future OTP
               release.


  OTP-17007    Application(s): erl_interface, erts, jinterface

               Accept 64-bit port identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit port identifiers in a future OTP release.


  OTP-17028    Application(s): erts

               One can now pass the ERL_ROOTDIR environment variable
               to the erl and start scrips. This makes it easier to
               use Erlang for Android apps. On Android, apps don't
               control where they will be installed.


  OTP-17057    Application(s): erts, stdlib

               All long running functions in the maps API are now
               yielding. In previous releases the functions
               maps:from_list/1, maps:keys/1 and maps:values/1 did not
               yield. This could cause unfair scheduling of processes.


  OTP-17154    Application(s): erts, kernel
               Related Id(s): OTP-16749

               socket:sendfile/2,3,4,5 has been implemented, for
               platforms that support the underlying socket library
               call.


  OTP-17207    Application(s): compiler, erts

               The bit matching and construction syntax now supports
               16-bit floats (IEEE 754-2008).


  OTP-17285    Application(s): erts
               Related Id(s): PR-4651

               Add process_flag(fullsweep_after, N) to change
               fullsweep_after value in an already spawned process.


  OTP-17293    Application(s): erts
               Related Id(s): PR-4672

               The max_heap_size error report has been updated to
               include the message queue size.


  OTP-17301    Application(s): compiler, erts
               Related Id(s): GH-4636

               Introduce new types nonempty_binary() and
               nonempty_bitstring().


  OTP-17310    Application(s): erts
               Related Id(s): PR-4656

               Optimize updates of large maps with identical keys and
               values. E.g. in the example below the original Map will
               be reused as the return of the second update.

               1> Map = LargeMap#{ a => b }.

               2> Map#{ a := b }.

               The same optimization was done for small maps (< 33
               keys) in erts-10.4 (OTP 22.0).


  OTP-17341    Application(s): erts
               Related Id(s): PR-2945

               The previously undocumented internal -no_epmd option
               has been made documented and public.


  OTP-17368    Application(s): erts

               Reduce memory carrier super alignment on 64-bit
               architectures. In practice allows more fine grained
               control over configuration of memory carrier sizes,
               from increments of 256kb to 16kb.


 Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3,
 stdlib-3.13


 ---------------------------------------------------------------------
 --- et-1.6.5 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of et-1.6.5: erts-9.0, kernel-5.3,
 runtime_tools-1.10, stdlib-3.4, wx-1.2


 ---------------------------------------------------------------------
 --- eunit-2.6.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17300    Application(s): eunit
               Related Id(s): PR-4695

               The eunit_surefire report handler has been updated to
               automatically create the directories needed to store
               the surefire xml file.


 Full runtime dependencies of eunit-2.6.1: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- ftp-1.1 ---------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-16926    Application(s): ftp
               Related Id(s): ERL-1450, GH-4473

               Use OTP supervisor as intended, avoiding surprising
               behavior as the killing of the user's process. Also,
               FTP state handling logic is improved to avoid race
               conditions that could result in unexpected errors.


  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


 --- Improvements and New Features ---

  OTP-15523    Application(s): ftp
               Related Id(s): OTP-15352, PR-1968

               *** HIGHLIGHT ***

               Add support for FTPES (explicit FTP over TLS).


 Full runtime dependencies of ftp-1.1: erts-7.0, kernel-6.0,
 runtime_tools-1.15.1, ssl-10.2, stdlib-3.5


 ---------------------------------------------------------------------
 --- inets-7.4 -------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16722    Application(s): inets

               Drop all support for ftp and tftp in inets code.


  OTP-16723    Application(s): inets

               Deprecate following functions in httpd_util module:
               flatlength/1, lhexlist_to_integer/1,
               integer_to_hexlist/1, strip/1, and suffix/1.


  OTP-16724    Application(s): inets

               Remove support of HTTP 0.9 in httpd.


  OTP-16725    Application(s): inets

               Remove support of HTTP 0.9 in httpc.


  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of inets-7.4: erts-6.0, kernel-3.0,
 mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5


 ---------------------------------------------------------------------
 --- jinterface-1.12 -------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16720    Application(s): erl_interface, erts, jinterface
               Related Id(s): PR-2680

               Accept 64-bit process identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit pids in a future OTP release.


  OTP-17005    Application(s): erl_interface, erts, jinterface,
               kernel, stdlib
               Related Id(s): OTP-16718

               Accept references up to a size of 160-bits from remote
               nodes. This is the first step in an upgrade path toward
               using references up to 160-bits in a future OTP
               release.


  OTP-17007    Application(s): erl_interface, erts, jinterface

               Accept 64-bit port identifiers from external nodes.
               This is the first step in an upgrade path toward using
               64-bit port identifiers in a future OTP release.


  OTP-17170    Application(s): jinterface
               Related Id(s): PR-3005

               Make OtpErlangExternalFun's fields module, function and
               arity public.


 ---------------------------------------------------------------------
 --- kernel-8.0 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-14700    Application(s): kernel
               Related Id(s): PR-2848

               A bug has been fixed for the internal inet_res resolver
               cache that handled a resolver configuration file status
               timer incorrectly and caused performance problems due
               to many unnecessary file system accesses.


  OTP-16809    Application(s): kernel
               Related Id(s): ERL-1313

               *** POTENTIAL INCOMPATIBILITY ***

               Change the value of the tag head returned by
               disk_log:info/1 from {ok, Head} to just Head.


  OTP-17132    Application(s): erl_interface, kernel

               Two options have been added to erl_call. The
               -fetch_stdout option fetches stdout data resulting from
               the code invoked by erl_call. The -fetch_stdout option
               disables printing of the result term. In order to
               implement the first of these two options a new function
               called ei_xrpc_from has been added to erl_interface.
               For details see the erl_call documentation and
               erl_interface documentation.


  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


  OTP-17262    Application(s): kernel
               Related Id(s): GH-4588, OTP-16487, PR-4604

               inet:get_rc/0 has been corrected to return host entries
               as separate entries instead of (incorrectly) in a list
               within the list. This bug was introduced by OTP-16487
               in OTP-23.0-rc1.


  OTP-17277    Application(s): kernel

               The type gen_tcp:option_name() had a duplicate
               pktoptions value.


  OTP-17286    Application(s): kernel
               Related Id(s): PR-4619

               Fixed removal of empty groups from internal state in
               pg.


  OTP-17287    Application(s): kernel
               Related Id(s): PR-4581

               erl -remsh now prints an error message when it fails to
               connect to the remote node.


  OTP-17288    Application(s): kernel
               Related Id(s): PR-4581

               Fix bugs related to corrupt shell history files.

               Error messages printed by shell history are now logged
               as logger error reports instead of written to standard
               error.


  OTP-17315    Application(s): kernel
               Related Id(s): GH-4626

               A logger warning is now issues when too many arguments
               are given to -name or -sname. Example: erl -name a b.


  OTP-17344    Application(s): kernel
               Related Id(s): GH-4631, OTP-12136, OTP-14485, PR-4633

               The cache used by inet_res now, again, can handle
               multiple IP addresses per domain name, and thus fixes a
               bug introduced in PR-3041 (OTP-13126) and PR-2891
               (OTP-14485).


  OTP-17372    Application(s): erts, kernel

               Sockets created with socket:accept not counted
               (socket:info/0).


  OTP-17374    Application(s): kernel
               Related Id(s): GH-4680, OTP-17216, PR-2989, PR-4787

               The {fd, Fd} option to gen_tcp:listen/2 did not work
               for inet_backend socket, which has been fixed.


 --- Improvements and New Features ---

  OTP-13126    Application(s): kernel
               Related Id(s): PR-3041

               The cache used by the DNS resolver inet_res has been
               improved to use ETS lookups instead of server calls.
               This is a considerable speed improvement for cache
               hits.


  OTP-14485    Application(s): kernel
               Related Id(s): PR-2891

               The cache ETS table type for the internal DNS resolver
               inet_res has changed type (internally) to get better
               speed and atomicity.


  OTP-14601    Application(s): erts, kernel
               Related Id(s): OTP-16749, PR-2641, PR-2670

               The experimental socket module can now use any protocol
               (by name) the OS supports. Suggested in PR-2641,
               implemented in PR-2670.


  OTP-16517    Application(s): kernel
               Related Id(s): PR-2827

               The DNS resolver inet_res has been updated to support
               CAA (RFC 6844) and URI (RFC 7553) records.


  OTP-16611    Application(s): kernel
               Related Id(s): OTP-16749

               *** HIGHLIGHT ***

               A compatibility adaptor for gen_tcp to use the new
               socket API has been implemented (gen_tcp_socket). Used
               when setting the kernel application variable
               inet_backend = socket.


  OTP-16686    Application(s): debugger, erts, kernel, stdlib

               *** HIGHLIGHT ***

               Extended error information for failing BIF calls as
               proposed in EEP 54 has been implemented.

               When a BIF call from the Erlang shell fails, more
               information about which argument or arguments that were
               in error will be printed. The same extended error
               information will by proc_lib, common_test, and qlc when
               BIF calls fail.

               For applications that wish to provide the same extended
               error information, there are new functions
               erl_error:format_exception/3 and
               erl_error:format_exception/4.

               There is a new error/3 BIF that allows applications or
               libraries to provide extended error information in the
               same way for their own exceptions.


  OTP-16698    Application(s): kernel
               Related Id(s): PR-2634

               The file server can now be bypassed in file:delete/1,2
               with the raw option.


  OTP-16703    Application(s): erts, kernel
               Related Id(s): PR-2620

               An example implementation of Erlang distribution over
               UDS using distribution processes has been introduced.

               Thanks to Jérôme de Bretagne


  OTP-16718    Application(s): erts, kernel, stdlib
               Related Id(s): PR-2735

               *** HIGHLIGHT ***

               The process alias feature as outlined by EEP 53 has
               been introduced. It is introduced in order to provide a
               lightweight mechanism that can prevent late replies
               after timeout or connection loss. For more information,
               see EEP 53 and the documentation of the new alias/1 BIF
               and the new options to the monitor/3 BIF.

               The call operation in the framework used by gen_server,
               gen_statem, and gen_event has been updated to utilize
               alias in order to prevent late responses. The
               gen_statem behavior still use a proxy process in the
               distributed case, since it has always prevented late
               replies and aliases wont work against pre OTP 24 nodes.
               The proxy process can be removed in OTP 26.

               The alias feature also made it possible to introduce
               new functions similar to the erpc:receive_response()
               function in the gen behaviors, so the new functions
               gen_server:receive_response(),
               gen_statem:receive_response(),
               gen_event:receive_response() have also been introduced.


  OTP-16749    Application(s): erts, kernel
               Related Id(s): OTP-14601

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental new socket API has been further
               developed. Some backwards incompatible changes with
               respect to OTP 23 have been made.

               The control message format has been changed so a
               decoded value is now in the 'value' field instead of in
               the 'data' field. The 'data' field now always contains
               binary data.

               Some type names have been changed regarding message
               headers and control message headers.

               socket:bind/2 now returns plain ok instead of {ok,
               Port} which was only relevant for the inet and inet6
               address families and often not interesting. To find out
               which port was chosen use socket:sockname/1.


  OTP-16793    Application(s): kernel
               Related Id(s): ERL-1332, PR-2740

               New function os:env/0 returns all OS environment
               variables as a list of 2-tuples.


  OTP-16811    Application(s): kernel

               *** POTENTIAL INCOMPATIBILITY ***

               Remove the support for distributed disk logs. The new
               function disk_log:all/0 is to be used instead of
               disk_log:accessible_logs/0. The function
               disk_log:close/1 is to be used instead of
               disk_log:lclose/1,2.


  OTP-16947    Application(s): kernel
               Related Id(s): PR-2781

               Expand the spec for erl_epmd:listen_port_please/2 to
               mirror erl_epmd:port_please/2.


  OTP-16952    Application(s): erts, kernel

               A new erl parameter for specifying a file descriptor
               with configuration data has been added. This makes it
               possible to pass the parameter "-configfd FD" when
               executing the erl command. When this option is given,
               the system will try to read and parse configuration
               parameters from the file descriptor.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16968    Application(s): kernel

               *** POTENTIAL INCOMPATIBILITY ***

               The pg2 module has been removed.


  OTP-17005    Application(s): erl_interface, erts, jinterface,
               kernel, stdlib
               Related Id(s): OTP-16718

               Accept references up to a size of 160-bits from remote
               nodes. This is the first step in an upgrade path toward
               using references up to 160-bits in a future OTP
               release.


  OTP-17015    Application(s): kernel

               Allow utf-8 binaries as parts of logger_formatter
               template.


  OTP-17062    Application(s): kernel
               Related Id(s): ERIERL-537, ERL-1418, GH-4469

               *** POTENTIAL INCOMPATIBILITY ***

               Let disk_log:open/1 change the size if a wrap log is
               opened for the first time, that is, the disk log
               process does not exist, and the value of option size
               does not match the current size of the disk log.


  OTP-17103    Application(s): kernel
               Related Id(s): PR-2949

               Allow the shell history of an erlang node to be fetched
               and stores using a custom callback module. See
               shell_history configuration parameter in the kernel
               documentation for more details.


  OTP-17106    Application(s): kernel
               Related Id(s): PR-2885

               The simple logger (used to log events that happen
               before kernel has been started) has been improved to
               print prettier error messages.


  OTP-17154    Application(s): erts, kernel
               Related Id(s): OTP-16749

               socket:sendfile/2,3,4,5 has been implemented, for
               platforms that support the underlying socket library
               call.


  OTP-17155    Application(s): kernel

               Add socket monitor(s) for all types sockets.


  OTP-17156    Application(s): kernel

               *** POTENTIAL INCOMPATIBILITY ***

               Fix various issues with the gen_tcp_socket. Including
               documenting some incompatibilities.


  OTP-17157    Application(s): kernel

               inet:i/0 now also shows existing gen_tcp compatibility
               sockets (based on 'socket').


  OTP-17181    Application(s): kernel
               Related Id(s): PR-2457

               Added support in logger for setting primary metadata.
               The primary metadata is passed as a base metadata to
               all log events in the system. See Metadata in the
               Logger chapter of the Kernel User's Guide for more
               details.


  OTP-17189    Application(s): kernel, reltool, sasl
               Related Id(s): PR-2675

               Recognize new key 'optional_applications' in
               application resource files.


  OTP-17198    Application(s): kernel
               Related Id(s): PR-2721

               The Fun's passed to logger:log/2,3,4 can now return
               metadata that will only be fetched when needed. See
               logger:log/2,3,4 for more details.


  OTP-17201    Application(s): kernel
               Related Id(s): PR-4534

               erpc:multicall() has been rewritten to be able to
               utilize the newly introduced and improved selective
               receive optimization.


  OTP-17203    Application(s): kernel
               Related Id(s): OTP-17156

               Add utility fiunction inet:info/1 to provide
               miscellaneous info about a socket.


  OTP-17216    Application(s): kernel
               Related Id(s): PR-2989

               *** POTENTIAL INCOMPATIBILITY ***

               The behaviour for gen_tcp:connect/3,4 has been changed
               to not per default bind to an address, which allows the
               network stack to delay the address and port selection
               to when the remote address is known. This allows better
               port re-use, and thus enables far more outgoing
               connections, since the ephemeral port range no longer
               has to be a hard limit.

               There is a theoretical possibility that this behaviour
               change can affect the set of possible error values, or
               have other small implications on some platforms.


  OTP-17266    Application(s): kernel
               Related Id(s): PR-4564

               An option {nxdomain_reply, boolean()} has been
               implemented in the DNS resolver inet_res. It is useful
               since an nxdomain error from a name server does contain
               the SOA record if the domain exists at all. This record
               is useful to determine a TTL for negative caching of
               the failed entry.


  OTP-17284    Application(s): kernel
               Related Id(s): PR-4615

               Optimized lookup of local processes part of groups in
               pg.


  OTP-17355    Application(s): kernel
               Related Id(s): OTP-17154

               *** POTENTIAL INCOMPATIBILITY ***

               The return values from module socket functions send(),
               sendto(), sendmsg(), sendfile() and recv() has been
               changed to return a tuple tagged with select when a
               SelectInfo was returned, and not sometimes tagged with
               ok.

               This is a backwards incompatible change that improves
               usability for code using asynchronous operations.


  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of kernel-8.0: crypto-5.0, erts-12.0,
 sasl-3.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- megaco-4.0 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16560    Application(s): megaco

               *** POTENTIAL INCOMPATIBILITY ***

               All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was
               deprecated in OTP-23.0. They have now been removed.


  OTP-17049    Application(s): megaco, snmp

               Removed deprecated functions marked for removal.


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

 --- Fixed Bugs and Malfunctions ---

  OTP-17217    Application(s): mnesia

               Suppression of deprecation warnings has been added to
               the source files of the Mnesia application.


  OTP-17294    Application(s): mnesia
               Related Id(s): GH-4525, PR-4674

               Fixed that the backend plugin initialization is done
               only once.


 Full runtime dependencies of mnesia-4.19.1: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- observer-2.9.6 --------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17214    Application(s): observer

               Updated gui parts to work with the new wx version.


 Full runtime dependencies of observer-2.9.6: erts-11.0, et-1.5,
 kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2


 ---------------------------------------------------------------------
 --- odbc-2.13.4 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17105    Application(s): crypto, erts, odbc, wx
               Related Id(s): PR-2872

               Fix compiler warnings produced by the clang compiler.


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


 ---------------------------------------------------------------------
 --- os_mon-2.7 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16943    Application(s): os_mon
               Related Id(s): OTP-16906

               *** POTENTIAL INCOMPATIBILITY ***

               The temporarily introduced configuration parameter
               memsup_improved_system_memory_data has been removed.


  OTP-16944    Application(s): os_mon
               Related Id(s): PR-2787

               Fix disk_sup to also search the system PATH on linux
               when looking for the df program.


 Full runtime dependencies of os_mon-2.7: erts-6.0, kernel-3.0,
 sasl-2.4, stdlib-2.0


 ---------------------------------------------------------------------
 --- parsetools-2.3 --------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16957    Application(s): parsetools, tools

               Add types and specifications for documentation.


  OTP-17023    Application(s): parsetools

               Let Leex and Yecc recognize the environment variable
               ERL_COMPILER_OPTIONS. Add Yecc option {error_location,
               column | line}.


 Full runtime dependencies of parsetools-2.3: erts-6.0, kernel-3.0,
 stdlib-2.5


 ---------------------------------------------------------------------
 --- public_key-1.11 -------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17142    Application(s): crypto, public_key, ssl
               Related Id(s): GH-4637, GH-4650, PR-4756

               *** HIGHLIGHT ***

               TLS connections now support EdDSA certificates.


  OTP-17352    Application(s): public_key, ssh

               The functions public_key:ssh_encode/2,
               public_key:ssh_decode/2,
               public_key:ssh_hostkey_fingerprint/1 and
               public_key:ssh_hostkey_fingerprint/2 are deprecated.

               Replacement functions are available in SSH, see the
               Deprecations chapter in the Erlang/OTP documentation.


  OTP-17384    Application(s): public_key, ssl
               Related Id(s): GH-4800

               Enhance documentation and logging of certificate
               handling.


 Full runtime dependencies of public_key-1.11: asn1-3.0, crypto-3.8,
 erts-6.0, kernel-3.0, stdlib-3.5


 ---------------------------------------------------------------------
 --- reltool-0.9 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17189    Application(s): kernel, reltool, sasl
               Related Id(s): PR-2675

               Recognize new key 'optional_applications' in
               application resource files.


  OTP-17292    Application(s): reltool, sasl
               Related Id(s): PR-4684, PR-4685

               Removed timestamps from files generated by sasl and
               reltool to enable deterministic builds.


 Full runtime dependencies of reltool-0.9: erts-7.0, kernel-3.0,
 sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2


 ---------------------------------------------------------------------
 --- runtime_tools-1.16.2 --------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


 Full runtime dependencies of runtime_tools-1.16.2: erts-11.0,
 kernel-7.0, mnesia-4.12, stdlib-3.13


 ---------------------------------------------------------------------
 --- sasl-4.1 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-17189    Application(s): kernel, reltool, sasl
               Related Id(s): PR-2675

               Recognize new key 'optional_applications' in
               application resource files.


  OTP-17292    Application(s): reltool, sasl
               Related Id(s): PR-4684, PR-4685

               Removed timestamps from files generated by sasl and
               reltool to enable deterministic builds.


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


 ---------------------------------------------------------------------
 --- snmp-5.9 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Improvements and New Features ---

  OTP-17049    Application(s): megaco, snmp

               Removed deprecated functions marked for removal.


  OTP-17354    Application(s): snmp

               Removed timestamps from files generated by snmp to
               enable deterministic builds.


  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of snmp-5.9: crypto-3.3, erts-6.0,
 kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5


 ---------------------------------------------------------------------
 --- ssh-4.12 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


  OTP-17353    Application(s): ssh

               The send window handling is changed to not initialize a
               too large window on some occasions.


 --- Improvements and New Features ---

  OTP-16750    Application(s): ssh

               Removed usage of erlang:is_port/1 from the SSH
               implementation.


  OTP-17051    Application(s): ssh

               Internal connection setup refactoring.


  OTP-17140    Application(s): ssh

               Refactor SSH fsm into a (hopefully) more comprehensible
               set of gen_statem callback-files.


  OTP-17259    Application(s): ssh
               Related Id(s): ERIERL-619, OTP-16511

               *** POTENTIAL INCOMPATIBILITY ***

               The RSA SHA1 sign/verify variants are disabled by
               default. That is, ssh-rsa is disabled by default as
               well as the SHA1 sign/verify with RSA keys from id_rsa
               and ssh_host_rsa_key. All SHA2 sign/verify are enabled
               by default.

               The reason is that SHA1 is now considered easy to
               break.

               To enable RSA with SHA1, for example for a very old and
               unsafe peer, see Example 9 in the User's Guide chapter
               Configuring algorithms in SSH.


  OTP-17322    Application(s): ssh
               Related Id(s): EEP-56, OTP-17334, PR-4638

               Adapt ssh supervisors to the new 'significant' and
               'auto_shutdown' flags in supervisor.


  OTP-17352    Application(s): public_key, ssh

               The functions public_key:ssh_encode/2,
               public_key:ssh_decode/2,
               public_key:ssh_hostkey_fingerprint/1 and
               public_key:ssh_hostkey_fingerprint/2 are deprecated.

               Replacement functions are available in SSH, see the
               Deprecations chapter in the Erlang/OTP documentation.


 Full runtime dependencies of ssh-4.12: crypto-5.0, erts-9.0,
 kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15


 ---------------------------------------------------------------------
 --- ssl-10.4 --------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


  OTP-17343    Application(s): ssl

               TLS handshake should fail if OCSP staple is requested
               but missing. Note that OCSP support is still considered
               experimental and only partially implemented.


 --- Improvements and New Features ---

  OTP-16974    Application(s): ssl

               *** POTENTIAL INCOMPATIBILITY ***

               Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1
               use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3
               instead.


  OTP-17044    Application(s): ssl
               Related Id(s): PR-2654

               *** HIGHLIGHT ***

               Make TLS handshakes in Erlang distribution concurrent.


  OTP-17117    Application(s): ssl
               Related Id(s): PR-2933

               Randomize internal {active,n} optimization when running
               Erlang distribution over TLS to spread RAM/CPU spike
               that may occur when starting up a big cluster.


  OTP-17142    Application(s): crypto, public_key, ssl
               Related Id(s): GH-4637, GH-4650, PR-4756

               *** HIGHLIGHT ***

               TLS connections now support EdDSA certificates.


  OTP-17384    Application(s): public_key, ssl
               Related Id(s): GH-4800

               Enhance documentation and logging of certificate
               handling.


 Full runtime dependencies of ssl-10.4: crypto-4.2, erts-10.0,
 inets-5.10.7, kernel-6.0, public_key-1.8, runtime_tools-1.15.1,
 stdlib-3.12


 ---------------------------------------------------------------------
 --- stdlib-3.15 -----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-15107    Application(s): stdlib
               Related Id(s): ERL-1381, PR-2813

               *** POTENTIAL INCOMPATIBILITY ***

               Time-outs in gen_statem with relative time 0 did not
               behave quite according to the intended model. This has
               now been corrected.

               The correction introduces a small potential
               incompatibility e.g when combining a state time-out
               with inserted events, and the inserted event does a
               state change in the state with the time-out. Before
               this correction the state time-out could be delivered
               even after the second state change, but now it is
               guaranteed that a state time-out is only delivered in
               the state it was started for, even in this corner case.


  OTP-16865    Application(s): stdlib

               Fix bugs in erl_eval concerning bitstring
               comprehensions.


  OTP-16905    Application(s): stdlib

               File names that start with a dot (such as ".gitignore"
               are now treated as file names and not extensions by
               filename:extension/1 and filename:rootname/1.


  OTP-16950    Application(s): stdlib
               Related Id(s): ERL-1378

               Fixed a bug where beam_lib:chunks/3 with the
               allow_missing_chunks option would crash if a named
               chunk was missing.


  OTP-17077    Application(s): compiler, erts, stdlib
               Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906

               A floating point zero (0.0) can be both positive (+0.0)
               and negative (-0.0). Multiple bugs in the compiler,
               runtime system, and STDLIB have been fixed to ensure
               that the minus sign on 0.0 is not lost.


  OTP-17118    Application(s): compiler, stdlib
               Related Id(s): PR-2825

               Eliminated a Dialyzer crashed when the -MMD option is
               used to generate a dependency file and a BEAM file a
               the same time.


  OTP-17122    Application(s): erl_docgen, stdlib

               Fixed bug in shell_docs and erl_docgen that interpreted
               em tags as strong.


  OTP-17133    Application(s): stdlib

               On Solaris, the math:acos/1 and math:asin/1 functions
               would not fail for arguments outside the valid domain.


  OTP-17186    Application(s): stdlib

               Silence unused_record warnings when using ms_transform.
               The parse transform ms_transform replaces records with
               tuples, which can cause the Erlang code linter to emit
               warnings about unused records.


  OTP-17222    Application(s): stdlib
               Related Id(s): GH-4544

               Documented a deficiency in the re module regarding the
               [:ascii:] character class matching Latin-1 characters.


  OTP-17342    Application(s): stdlib
               Related Id(s): GH-4725, PR-4726

               Fixed spec of start functions in generic behaviors.


  OTP-17364    Application(s): stdlib
               Related Id(s): PR-4747

               Supervisors rejected child specs with a shutdown value
               of 0.


 --- Improvements and New Features ---

  OTP-14646    Application(s): stdlib
               Related Id(s): PR-2920

               In the rand module it is now possible to seed the
               default algorithm using an algorithm alias: default.

               Generating pseudo random binaries has been implemented
               with rand:bytes/1 and rand:bytes_s/2.


  OTP-14647    Application(s): stdlib
               Related Id(s): PR-2910

               New functions have been added to the proplists module:
               to_map/1,2 and from_map/1.


  OTP-14650    Application(s): stdlib
               Related Id(s): PR-2850

               New functions have been added to the queue module:
               all/2, any/2, delete/2, delete_r/2, delete_with/2, and
               delete_with_r/2.


  OTP-14793    Application(s): stdlib
               Related Id(s): PR-2791

               New function have been added to the queue module:
               fold/2 and filtermap/2.


  OTP-16678    Application(s): erts, stdlib, syntax_tools, tools
               Related Id(s): PR-2627

               Support for handling abstract code created before OTP
               R15 has been dropped.


  OTP-16686    Application(s): debugger, erts, kernel, stdlib

               *** HIGHLIGHT ***

               Extended error information for failing BIF calls as
               proposed in EEP 54 has been implemented.

               When a BIF call from the Erlang shell fails, more
               information about which argument or arguments that were
               in error will be printed. The same extended error
               information will by proc_lib, common_test, and qlc when
               BIF calls fail.

               For applications that wish to provide the same extended
               error information, there are new functions
               erl_error:format_exception/3 and
               erl_error:format_exception/4.

               There is a new error/3 BIF that allows applications or
               libraries to provide extended error information in the
               same way for their own exceptions.


  OTP-16718    Application(s): erts, kernel, stdlib
               Related Id(s): PR-2735

               *** HIGHLIGHT ***

               The process alias feature as outlined by EEP 53 has
               been introduced. It is introduced in order to provide a
               lightweight mechanism that can prevent late replies
               after timeout or connection loss. For more information,
               see EEP 53 and the documentation of the new alias/1 BIF
               and the new options to the monitor/3 BIF.

               The call operation in the framework used by gen_server,
               gen_statem, and gen_event has been updated to utilize
               alias in order to prevent late responses. The
               gen_statem behavior still use a proxy process in the
               distributed case, since it has always prevented late
               replies and aliases wont work against pre OTP 24 nodes.
               The proxy process can be removed in OTP 26.

               The alias feature also made it possible to introduce
               new functions similar to the erpc:receive_response()
               function in the gen behaviors, so the new functions
               gen_server:receive_response(),
               gen_statem:receive_response(),
               gen_event:receive_response() have also been introduced.


  OTP-16910    Application(s): stdlib
               Related Id(s): PR-2771

               Improved documentation about exit signals emitted when
               a gen_server terminates.


  OTP-16936    Application(s): erts, stdlib
               Related Id(s): ERL-1367

               New functions have been added to the maps module:
               merge_with/3, intersect/2, intersect_with/3,
               filtermap/2, from_keys/2, and maps:foreach/2.

               maps:merge_with/3 is the same as merge/2 but takes an
               extra fun that is used to combine items with the same
               key.

               maps:intersect/2 computes the intersection of two maps.

               maps:intersect_with/3 is the same as intersect/2 but
               takes an extra fun that is used to combine intersecting
               items.

               maps:filtermap/2 allows filtering and mapping of a map
               in a single pass.

               maps:from_keys/2 constructs a map from a list of keys
               and a single value and can be used to to optimize sets
               operations such as from_list/1, filter/2,
               intersection/2, and subtract/2.

               maps:foreach/2 allows iteration over a map without
               returning any value.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-16971    Application(s): stdlib

               *** POTENTIAL INCOMPATIBILITY ***

               The filename:src/1 function which was deprecated in OTP
               20 has been removed. Use filelib:find_source/1,3
               instead.


  OTP-16980    Application(s): erts, stdlib
               Related Id(s): ERL-1308

               The pretty printer for floating point number have been
               changed to make it easier to see if the integer part of
               the number has been rounded. After the change the digit
               that may have been rounded always appears last or just
               before the exponent character (e or E). This is
               accomplished by always printing the number using
               scientific notation if it is so large that the integer
               part could be rounded.


  OTP-17005    Application(s): erl_interface, erts, jinterface,
               kernel, stdlib
               Related Id(s): OTP-16718

               Accept references up to a size of 160-bits from remote
               nodes. This is the first step in an upgrade path toward
               using references up to 160-bits in a future OTP
               release.


  OTP-17024    Application(s): stdlib

               Add option location to erl_parse:abstract/2.


  OTP-17057    Application(s): erts, stdlib

               All long running functions in the maps API are now
               yielding. In previous releases the functions
               maps:from_list/1, maps:keys/1 and maps:values/1 did not
               yield. This could cause unfair scheduling of processes.


  OTP-17059    Application(s): stdlib
               Related Id(s): PR-2864

               The sets module now has an optional map-based
               implementation, as described in EEP 50.

               To use this implementation, pass the {version,2} option
               to sets:new/1 or sets:from_list/2.


  OTP-17120    Application(s): stdlib

               Added shell_docs:supported_tags/0. This function can be
               used to retrieve the tags currently supported by
               shell_docs.


  OTP-17121    Application(s): stdlib

               The application/erlang+html documentation storage
               format used by shell_docs has been updated to include
               the tags b, strong, h4, h5 and h6.


  OTP-17169    Application(s): stdlib
               Related Id(s): PR-2584

               Do not pretty-print catch expressions with unnecessary
               parentheses. The re-write of the Erlang parser grammar
               in PR-2584 implies that parentheses around catch
               expressions are in many cases no longer required.


  OTP-17171    Application(s): stdlib
               Related Id(s): PR-3011

               Improved explanation of {continue,Continue} in
               Module:init/1 of the gen_server documentation.


  OTP-17175    Application(s): stdlib

               The erl_eval module now accepts a map for keeping track
               of bindings. Using an orddict for bindings will still
               work.


  OTP-17199    Application(s): stdlib
               Related Id(s): PR-2658

               Documented epp:scan_erl_form/1 and added
               epp:scan_file/2.


  OTP-17210    Application(s): stdlib

               The standard floating point printing algorithm used by
               the io and io_lib modules has been changed from the
               algorithm described in [1] to the Ryu algorithm [2].
               This gives a significant speed improvement for the
               printing of most floating point numbers and a small
               memory consumption improvement.

               [1]: Robert G. Burger and R. Kent Dybvig. 1996.
               Printing floating-point numbers quickly and accurately.
               In Proceedings of the ACM SIGPLAN 1996 conference on
               Programming language design and implementation (PLDI
               '96). Association for Computing Machinery, New York,
               NY, USA, 108–116.
               DOI:https://doi.org/10.1145/231379.231397

               [2]: Ulf Adams. 2018. Ryū: fast float-to-string
               conversion. In Proceedings of the 39th ACM SIGPLAN
               Conference on Programming Language Design and
               Implementation (PLDI 2018). Association for Computing
               Machinery, New York, NY, USA, 270–282.
               DOI:https://doi.org/10.1145/3192366.3192369

               Thanks to Thomas Depierre


  OTP-17236    Application(s): stdlib
               Related Id(s): PR-3014

               Add hex encoding and decoding functions in the binary
               module.


  OTP-17263    Application(s): stdlib

               The undocumented and partially broken ets:filter/3
               function has been removed.


  OTP-17267    Application(s): stdlib

               Add support in shell_docs to display any "text"
               documentation format. This means that h(Module) in the
               shell now can display the "text/markdown" of Elixir
               documentation.


  OTP-17276    Application(s): stdlib
               Related Id(s): PR-2979

               The internal hashing of keys within ETS tables of types
               set, bag, duplicate_bag has been salted to diverge from
               erlang:phash2. This to avoid bad hashing if phash2 is
               used to distribute the keys over separate tables/nodes.


  OTP-17327    Application(s): stdlib
               Related Id(s): PR-4707

               Updated to the Unicode 13.0 specification.


  OTP-17330    Application(s): compiler, stdlib

               Add compiler option {nowarn_unused_record,
               RecordNames}. Document compiler option
               nowarn_unused_type.


  OTP-17334    Application(s): stdlib
               Related Id(s): EEP-56, PR-4638

               *** HIGHLIGHT ***

               Implementation of EEP 56 in supervisor. It adds the
               concept of significant children as well as the
               auto_shutdown supervisor flag.

               See the supervisor manual page for more information.


  OTP-17385    Application(s): common_test, et, inets, kernel, snmp,
               stdlib
               Related Id(s): OTP-17123

               Fixed warnings in code matching on underscore prefixed
               variables.


 Full runtime dependencies of stdlib-3.15: compiler-5.0, crypto-3.3,
 erts-12.0, kernel-7.0, sasl-3.0


 ---------------------------------------------------------------------
 --- syntax_tools-2.6 ------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17302    Application(s): syntax_tools
               Related Id(s): PR-4705

               The type spec of erl_syntax:function_type/2 has been
               fixed.


  OTP-17321    Application(s): syntax_tools

               Output parentheses around BitStringExpr when
               pretty-printing binary comprehensions.


 --- Improvements and New Features ---

  OTP-16678    Application(s): erts, stdlib, syntax_tools, tools
               Related Id(s): PR-2627

               Support for handling abstract code created before OTP
               R15 has been dropped.


  OTP-17180    Application(s): syntax_tools

               The igor and erl_tidy modules have been the removed and
               are now maintained by their original author Richard
               Carlsson. They can be found at github.com/richcarl/igor
               and github.com/richcarl/erl_tidy, respectively.


 Full runtime dependencies of syntax_tools-2.6: compiler-7.0,
 erts-9.0, kernel-5.0, stdlib-3.4


 ---------------------------------------------------------------------
 --- tftp-1.0.3 ------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17243    Application(s): erl_docgen, ftp, kernel, ssh, ssl,
               tftp
               Related Id(s): PR-4557

               Missing runtime dependencies has been added to this
               application.


 Full runtime dependencies of tftp-1.0.3: erts-6.0, kernel-6.0,
 stdlib-3.5


 ---------------------------------------------------------------------
 --- tools-3.5 -------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17221    Application(s): tools
               Related Id(s): PR-4547

               For cover-compiled code, the error behaviour of list
               and binary comprehensions that used andalso/orelse in
               guards could be changed so that a filter that was
               supposed be evaluated in guard context was evaluated in
               body context. That is, there was a possibility that
               comprehensions that did not raise exceptions could
               raise exceptions when being run using cover.


 --- Improvements and New Features ---

  OTP-16678    Application(s): erts, stdlib, syntax_tools, tools
               Related Id(s): PR-2627

               Support for handling abstract code created before OTP
               R15 has been dropped.


  OTP-16957    Application(s): parsetools, tools

               Add types and specifications for documentation.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


 Full runtime dependencies of tools-3.5: compiler-5.0, erts-11.0,
 erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4


 ---------------------------------------------------------------------
 --- wx-2.0 ----------------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17105    Application(s): crypto, erts, odbc, wx
               Related Id(s): PR-2872

               Fix compiler warnings produced by the clang compiler.


 --- Improvements and New Features ---

  OTP-16800    Application(s): wx

               *** HIGHLIGHT ***

               The application has been completely rewritten in order
               to use wxWidgets version 3 as its base.

               Add basic documentation generated from the wxWidgets
               project.


  OTP-16963    Application(s): common_test, compiler, dialyzer,
               erl_interface, erts, kernel, runtime_tools, sasl,
               stdlib, tools, wx

               *** POTENTIAL INCOMPATIBILITY ***

               The experimental HiPE application has been removed,
               together with all related functionality in other
               applications.


  OTP-17213    Application(s): wx
               Related Id(s): PR-3027

               *** HIGHLIGHT ***

               Added support for wxWebView.


  OTP-17219    Application(s): wx
               Related Id(s): OTP-16800

               *** POTENTIAL INCOMPATIBILITY ***

               Due to the support of the new backend versions some API
               incompatibilities have been introduced. Examples of
               changes are:

               wxWindowDC default creators have been removed
               wxClientDC default creators have been removed
               wxPaintDC default creators have been removed
               wxWindow:setVirtualSizeHints() has been deprecated in
               wxWidgets and removed
               wxWindow:makeModal() has been deprecated in wxWidgets
               and removed
               wxToolBar:add/insertTool without label have been
               deprecated in wxWidgets and removed
               wxStyledTextCtrl some functions have changed arguments
               from boolean to int
               wxSizerItem:new() Some arguments have become options
               Removed deprecated wxSizerItem:setWindow() use
               assignWindow()
               Removed deprecated wxSizerItem:setSpacer() use
               assignSpacer()
               Removed deprecated wxSizerItem:setSpacer() use
               assignSpacer()
               Removed deprecated wxSizerItem:setSizer() use
               assignSizer()
               wxMenu append/insert/prepend have changed return value
               and lost IsCheckable argument
               wxListCtrl:setItem/4 changed return value
               wxImage:convertToGreyscale() options have changed
               wxGridSizer:wxGridSizer() options have changed
               wxGrid API have many changes
               wxGraphicsRenderer:create*GradientBrush() uses
               GradientStops now
               wxGraphicsRenderer:createPen() have been removed
               wxGraphicsRenderer:create*GradientBrush() uses
               GradientStops now
               wxGLCanvas API is incompatible
               wxFlexGridSizer:wxFlexGridSizer() options have changed
               wxDisplay:new() options have changed
               wxCalendarDateAttr:new(ColText [,OptList]) have been
               removed
               wxBitmapButton:set/getBitmapSelected() have been
               removed


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


 ---------------------------------------------------------------------
 --- xmerl-1.3.28 ----------------------------------------------------
 ---------------------------------------------------------------------

 --- Fixed Bugs and Malfunctions ---

  OTP-17388    Application(s): xmerl
               Related Id(s): OTP-17123

               Fixed a bug that could cause parsing to crash.


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


 ---------------------------------------------------------------------
 --- Thanks to -------------------------------------------------------
 ---------------------------------------------------------------------

 Alexander Clouter, Alexander Petrovsky, Andreas Schultz, Bryan
 Paxton, Cheng Zhe, Dominic Letz, Eksperimental, Erlend Hamberg,
 Filipe Cristovao, Frej Drejhammar, Henrik Lagebrand, Jesper Eskilson,
 Jonathan Klabunde Tomer, José Valim, João Henrique Ferreira de
 Freitas, Jérôme de Bretagne, Leo Liu, Linus.yuan, Loïc Hoguin, Luca
 Favatella, Luis Rascao, Luke Bakken, Maria Scott, Maria-12648430,
 Mariano Guerra, Mattias Hansson, Max Nordlund, Maxim Fedorov, Michal
 Palka, Michal Piotrowski, Michal Slaski, Michał Muskała, Mikael
 Pettersson, Nalin Ranjan, Nelson Vides, Nico Piderman, Oskar, Paulo
 F. Oliveira, Philip Kuryloski, Philipp Klaus Krause, Pierre Allix,
 Péter Gömöri, Radek Szymczyszyn, Richard Carlsson, Ruud Kamphuis,
 Stavros Aronis, Taras Halturin, Thomas Depierre, Tianon Gravi, Tony
 Rogvall, Ulf Wiger, Viktor Söderqvist, Wojtek Mach, Zeyu Zhang, ergl,
 gearnode, ilya-klyuchnikov, juhlig, lagebr, plan-do-break-fix,
 skatepalli, vans163, yfractal, Łukasz Niemier


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