From ba23aade881051bbc01c8a4238064738871c921c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sat, 24 Apr 2021 15:33:50 +0200 Subject: OTP-24.0-rc3 --- early-plugins.mk | 4 +- release-notes/OTP-24.0-rc1.README.txt | 2658 +++++++++++++++++++++++++++ release-notes/OTP-24.0-rc2.README.txt | 2965 ++++++++++++++++++++++++++++++ release-notes/OTP-24.0-rc3.README.txt | 3215 +++++++++++++++++++++++++++++++++ 4 files changed, 8840 insertions(+), 2 deletions(-) create mode 100644 release-notes/OTP-24.0-rc1.README.txt create mode 100644 release-notes/OTP-24.0-rc2.README.txt create mode 100644 release-notes/OTP-24.0-rc3.README.txt diff --git a/early-plugins.mk b/early-plugins.mk index 9301e68..b3691da 100644 --- a/early-plugins.mk +++ b/early-plugins.mk @@ -18,7 +18,7 @@ OTP-20 := OTP-20.0.5 OTP-20.1.7 OTP-20.2.4 OTP-20.3.8.26 OTP-21 := OTP-21.0.9 OTP-21.1.4 OTP-21.2.7 OTP-21.3.8.22 OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.8 OTP-22.3.4.17 OTP-23 := OTP-23.0.4 OTP-23.1.5 OTP-23.2.7.2 OTP-23.3.1 -OTP-24 := OTP-24.0-rc2 +OTP-24 := OTP-24.0-rc3 OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) @@ -84,7 +84,7 @@ OTP-22-DROPPED := OTP-22.0-rc1 OTP-22.0-rc2 OTP-22.0-rc3 OTP-22.0 \ OTP-23-DROPPED := OTP-23.0-rc1 OTP-23.0-rc2 OTP-23.0-rc3 OTP-23.0 OTP-23.0.1 \ OTP-23.0.2 OTP-23.0.3 OTP-23.1 OTP-23.1.1 OTP-23.1.2 OTP-23.1.3 OTP-23.1.4 \ OTP-23.2 OTP-23.2.1 OTP-23.2.3 OTP-23.2.4 -OTP-24-DROPPED := +OTP-24-DROPPED := OTP-24.0-rc2 OTP-DROPPED := $(OTP-18-DROPPED) $(OTP-19-DROPPED) $(OTP-20-DROPPED) \ $(OTP-21-DROPPED) $(OTP-22-DROPPED) $(OTP-23-DROPPED) $(OTP-24-DROPPED) diff --git a/release-notes/OTP-24.0-rc1.README.txt b/release-notes/OTP-24.0-rc1.README.txt new file mode 100644 index 0000000..9aa2250 --- /dev/null +++ b/release-notes/OTP-24.0-rc1.README.txt @@ -0,0 +1,2658 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-02-24 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, 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-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-17133, + OTP-17140, OTP-17153, OTP-17156, OTP-17162, + OTP-17166, OTP-17168, OTP-17170, OTP-17171, + OTP-17172, OTP-17175, OTP-17177, OTP-17180, + OTP-17181, OTP-17183, OTP-17189, OTP-17192, + OTP-17198, OTP-17199, OTP-17201, OTP-17206, + OTP-17207, OTP-17210, OTP-17213, OTP-17214, + OTP-17216, OTP-17217, OTP-17219 +Seq num: 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-1430, ERL-1431, ERL-1450, + ERL-1480, ERL-892, GH-4033, GH-4360, GH-4473, + GH-4493 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.19.2, compiler-8.0, + crypto-5.0, debugger-5.1, dialyzer-4.4, + edoc-1.0, eldap-1.2.9, erl_docgen-1.1, + erl_interface-5.0, erts-12.0, et-1.7, + ftp-1.1, inets-7.4, jinterface-1.12, + kernel-8.0, megaco-4.0, mnesia-4.18.2, + observer-2.9.6, odbc-2.13.3, os_mon-2.7, + parsetools-2.3, reltool-0.9, + runtime_tools-1.15.2, sasl-4.1, snmp-5.7.4, + ssh-4.11, ssl-10.3, stdlib-3.15, + syntax_tools-2.5, tools-3.5, wx-2.0, + xmerl-1.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + 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 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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. + + 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-17213 Application(s): wx + Related Id(s): PR-3027 + + Added support for wxWebView. + + + --------------------------------------------------------------------- + --- 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. + + 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-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 + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.19.2 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of common_test-1.19.2: compiler-6.0, + crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0, + observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0, + stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-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 + + 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): asn1, compiler, et, xmerl + + 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). + + + 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. + + + --- 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. + + + 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. + + 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 + + + --------------------------------------------------------------------- + --- eldap-1.2.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17166 Application(s): eldap + Related Id(s): PR-2904 + + Add ability to specify size limit on ldap requests + + + Full runtime dependencies of eldap-1.2.9: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- 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. + + + --- 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, + stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + --- 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. + + + --- 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-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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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 +Mcp 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 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 Andorid, 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-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of et-1.7: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- 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. + + + --- 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, + 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. + + + 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. + + + --- 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 been changed type changed (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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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-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-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + 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 + reference/receive optimization. + + + 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. + + + Full runtime dependencies of kernel-8.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.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17217 Application(s): mnesia + + Suppression of deprecation warnings has been added to + the source files of the Mnesia application. + + + Full runtime dependencies of mnesia-4.18.2: 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.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.3: 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 + + + --------------------------------------------------------------------- + --- 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. + + + 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.15.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.15.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. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.7.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.7.4: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.11 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of ssh-4.11: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of ssl-10.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, 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. + + + --- 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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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 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-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 + + + 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.5 ------------------------------------------------ + --------------------------------------------------------------------- + + --- 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.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17162 Application(s): tools + Related Id(s): elixir-lang/elixir#10666 + + cover would crash when compiling a module having an + exported function named clauses. + + + --- 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.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Andrew Shymanel, Bruce Yinhe, Bryan Paxton, Cheng + Zhe, Erlend Hamberg, Filipe Cristovao, Frej Drejhammar, Henrik + Lagebrand, Jesper Eskilson, José Valim, Jérôme de Bretagne, + Linus.yuan, Luca Favatella, Luis Rascao, Luke Bakken, Maria-12648430, + Mariano Guerra, Mattias Hansson, Maxim Fedorov, Michał Muskała, + Mikael Pettersson, Paulo F. Oliveira, Philip Kuryloski, Philipp Klaus + Krause, Pierre Allix, Radek Szymczyszyn, Richard Carlsson, Ruud + Kamphuis, Stavros Aronis, Taras Halturin, Thomas Depierre, Tianon + Gravi, Viktor Söderqvist, Wojtek Mach, lagebr, vans163, yfractal, + Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0-rc2.README.txt b/release-notes/OTP-24.0-rc2.README.txt new file mode 100644 index 0000000..4d19031 --- /dev/null +++ b/release-notes/OTP-24.0-rc2.README.txt @@ -0,0 +1,2965 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-03-26 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, 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-17133, OTP-17140, OTP-17153, OTP-17156, + OTP-17168, OTP-17170, OTP-17171, OTP-17172, + OTP-17175, OTP-17177, OTP-17180, OTP-17181, + OTP-17183, 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-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-17286, OTP-17287, + OTP-17288 +Seq num: ERIERL-537, 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-4360, GH-4469, + GH-4473, GH-4493, GH-4544, GH-4588, GH-4621, + GH-4626 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.20.1, 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.7, 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, reltool-0.9, + runtime_tools-1.16.1, sasl-4.1, snmp-5.8.1, + 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.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + 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 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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. + + 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-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. + + + --------------------------------------------------------------------- + --- 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. + + 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-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. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.1 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of common_test-1.20.1: 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 + + 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): asn1, compiler, et, xmerl + + 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. + + + 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. + + + --- 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. + + + 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. + + 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 ----------------------------------------------- + --------------------------------------------------------------------- + + --- 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-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. + + + --- 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-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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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 +Mcp 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-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of et-1.7: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- 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. + + + 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-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. + + + --- 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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + 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 + reference/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. + + + 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. + + + 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 + + + --------------------------------------------------------------------- + --- 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. + + + 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.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. + + + Full runtime dependencies of runtime_tools-1.16.1: 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. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.8.1: 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. + + + --- 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. + + + Full runtime dependencies of ssh-4.12: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- 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. + + + --- 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. + + + 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-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. + + + --- 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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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-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. + + + 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 ------------------------------------------------ + --------------------------------------------------------------------- + + --- 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.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Andreas Schultz, Bryan Paxton, Cheng Zhe, Dominic + Letz, Erlend Hamberg, Filipe Cristovao, Frej Drejhammar, Henrik + Lagebrand, Jesper Eskilson, Jonathan Klabunde Tomer, José Valim, + Jérôme de Bretagne, Linus.yuan, Luca Favatella, Luis Rascao, Luke + Bakken, Maria-12648430, Mariano Guerra, Mattias Hansson, Max + Nordlund, Maxim Fedorov, Michał Muskała, Mikael Pettersson, Nalin + Ranjan, Nico Piderman, Oskar, Paulo F. Oliveira, Philip Kuryloski, + Philipp Klaus Krause, Pierre Allix, Radek Szymczyszyn, Richard + Carlsson, Ruud Kamphuis, Stavros Aronis, Taras Halturin, Thomas + Depierre, Tianon Gravi, Tony Rogvall, Viktor Söderqvist, Wojtek Mach, + Zeyu Zhang, ergl, gearnode, ilya-klyuchnikov, lagebr, vans163, + yfractal, Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0-rc3.README.txt b/release-notes/OTP-24.0-rc3.README.txt new file mode 100644 index 0000000..f20b91f --- /dev/null +++ b/release-notes/OTP-24.0-rc3.README.txt @@ -0,0 +1,3215 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-04-21 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, 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-17153, + OTP-17156, 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-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-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 +Seq num: ERIERL-537, 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-4360, GH-4469, + GH-4473, GH-4493, GH-4525, GH-4544, GH-4588, + GH-4621, GH-4624, GH-4626, GH-4725 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.20.1, 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.7, 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, + reltool-0.9, runtime_tools-1.16.1, sasl-4.1, + snmp-5.8.1, 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.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + 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 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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-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-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. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.1 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of common_test-1.20.1: 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 + + 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): asn1, compiler, et, xmerl + + 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-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-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-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-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). + + + --- 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-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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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 +Mcp 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-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-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. + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of et-1.7: 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. + + + 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. + + + --- 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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + 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 + reference/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. + + + 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 + + + --------------------------------------------------------------------- + --- 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.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. + + + Full runtime dependencies of runtime_tools-1.16.1: 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.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.8.1: 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. + + + --- 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 new 'significant' and + 'auto_shutdown' in supervisor. + + + 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. + + + 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. + + + --- 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 *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases 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. + + + 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.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: 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, vans163, yfractal, Łukasz + Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + -- cgit v1.2.3