From 9dc448a629398baa5fb17ec5af073bf373891cbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 14 May 2019 13:25:09 +0200 Subject: OTP-22.0 --- release-notes/OTP-22.0.README.txt | 2349 +++++++++++++++++++++++++++++++++++++ 1 file changed, 2349 insertions(+) create mode 100644 release-notes/OTP-22.0.README.txt (limited to 'release-notes') diff --git a/release-notes/OTP-22.0.README.txt b/release-notes/OTP-22.0.README.txt new file mode 100644 index 0000000..5a003c7 --- /dev/null +++ b/release-notes/OTP-22.0.README.txt @@ -0,0 +1,2349 @@ +Inital Release: OTP 22.0 +Git Tag: OTP-22.0 +Date: 2019-05-14 +Trouble Report Id: OTP-13397, OTP-13726, OTP-14282, OTP-14461, + OTP-14625, OTP-14703, OTP-14724, OTP-14731, + OTP-14732, OTP-14737, OTP-14792, OTP-14831, + OTP-14865, OTP-14894, OTP-14984, OTP-15011, + OTP-15055, OTP-15063, OTP-15075, OTP-15095, + OTP-15111, OTP-15128, OTP-15129, OTP-15135, + OTP-15195, OTP-15200, OTP-15211, OTP-15220, + OTP-15238, OTP-15261, OTP-15262, OTP-15273, + OTP-15336, OTP-15340, OTP-15349, OTP-15351, + OTP-15362, OTP-15381, OTP-15385, OTP-15386, + OTP-15427, OTP-15439, OTP-15452, OTP-15456, + OTP-15483, OTP-15491, OTP-15513, OTP-15534, + OTP-15535, OTP-15543, OTP-15550, OTP-15563, + OTP-15564, OTP-15571, OTP-15575, OTP-15581, + OTP-15588, OTP-15591, OTP-15596, OTP-15607, + OTP-15610, OTP-15611, OTP-15612, OTP-15613, + OTP-15615, OTP-15617, OTP-15621, OTP-15622, + OTP-15623, OTP-15626, OTP-15631, OTP-15633, + OTP-15635, OTP-15640, OTP-15644, OTP-15649, + OTP-15655, OTP-15668, OTP-15672, OTP-15673, + OTP-15674, OTP-15677, OTP-15678, OTP-15680, + OTP-15683, OTP-15687, OTP-15689, OTP-15691, + OTP-15692, OTP-15693, OTP-15694, OTP-15697, + OTP-15698, OTP-15699, OTP-15703, OTP-15705, + OTP-15707, OTP-15708, OTP-15710, OTP-15712, + OTP-15715, OTP-15740, OTP-15746, OTP-15749, + OTP-15751, OTP-15752, OTP-15754, OTP-15755, + OTP-15756, OTP-15760, OTP-15761, OTP-15770, + OTP-15771, OTP-15773, OTP-15774, OTP-15775, + OTP-15776, OTP-15779, OTP-15786, OTP-15788, + OTP-15791, OTP-15794, OTP-15804, OTP-15806 +Seq num: ERIERL-280, ERIERL-324, ERIERL-333, ERL-556, + ERL-639, ERL-714, ERL-749, ERL-773, ERL-845, + ERL-863, ERL-864, ERL-878, ERL-893, ERL-904, + ERL-907, ERL-918, ERL-924 +System: OTP +Release: 22 +Application: asn1-5.0.9, common_test-1.17.3, compiler-7.4, + crypto-4.5, debugger-4.2.7, dialyzer-4.0, + edoc-0.11, eldap-1.2.8, erl_docgen-0.9.1, + erl_interface-3.12, erts-10.4, hipe-3.19, + inets-7.0.8, jinterface-1.10, kernel-6.4, + megaco-3.18.5, mnesia-4.16, observer-2.9.1, + odbc-2.12.4, os_mon-2.5, public_key-1.6.7, + reltool-0.8, runtime_tools-1.13.3, sasl-3.4, + snmp-5.3, ssh-4.7.7, ssl-9.3, stdlib-3.9, + syntax_tools-2.2, tools-3.2, wx-1.8.8, + xmerl-1.3.21 +Predecessor: OTP + + Check out the git tag OTP-22.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-13397 Application(s): erts + + Add support for Erlang Distribution protocol to split + the payload of large signals into several fragments. + This allows other processes to communicate + uninterrupted during the transmission of these signals. + + + OTP-14831 Application(s): erts, kernel + + A simple socket API is provided through the socket + module. This is a low level API that does *not* replace + gen_[tcp|udp|sctp]. It is intended to *eventually* + replace the inet driver, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). It also + provides a basic API that facilitates the + implementation of other protocols, that is TCP, UDP and + SCTP. + + Known issues are; No support for the Windows OS + (currently). + + + OTP-14894 Application(s): compiler + Related Id(s): ERL-714 + + The compiler has been rewritten to internally use an + intermediate representation based on Static Single + Assignment (SSA). The new intermediate representation + makes more optimizations possible. + + Most noticeable is that the binary matching + optimizations are now applicable in many more + circumstances than before. + + Another noticeable change is that type optimizations + are now applied across local function calls, and will + remove a lot more redundant type tests than before. + + + OTP-15055 Application(s): ssl + + Use new logger API in ssl. Introduce log levels and + verbose debug logging for SSL. + + + OTP-15128 Application(s): erts, stdlib + + ETS option write_concurrency now also affects and + improves the scalability of ordered_set tables. The + implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime. + + + OTP-15439 Application(s): erts + + The length/1 BIF used to calculate the length of the + list in one go without yielding, even if the list was + very long. In OTP 22, length/1 will yield when called + with long lists. + + + OTP-15456 Application(s): compiler + + All compiler options that can be given in the source + file can now also be given in the option list or from + the command line for erlc. + + Specifically, the option + {nowarn_deprecated_function,MFAs} was only recognized + when given in the file with the attribute -compile(). + The option {nowarn_unused_function,FAs} was incorrectly + documented to only work in a file, but it also worked + when given in the option list. + + + OTP-15483 Application(s): ssl + Related Id(s): ERL-924 + + Add new API function str_to_suite/1, cipher_suites/3 + (list cipher suites as rfc or OpenSSL name strings) and + suite_to_openssl_str/1 + + + OTP-15575 Application(s): tools + + The cover tool now uses the counters module instead of + ets for updating the counters for how many times a line + has been executed. By default, Cover will work with + distributed nodes, but a new function + cover:local_only/0 allows running the Cover in a + restricted but faster local-only mode. + + The increase in speed will vary depending on the type + of code being cover-compiled, but as an example, the + compiler test suite runs more than twice as fast with + the new Cover. + + + OTP-15591 Application(s): ssl + + Basic support for TLS 1.3 Server for experimental use. + The client is not yet functional, for more information + see the Standards Compliance chapter of the User's + Guide. + + + OTP-15596 Application(s): erts, hipe, otp + + In OTP 22, HiPE (the native code compiler) is not fully + functional. The reasons for this are: + + There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support. + + The new optimizations in the Erlang compiler create new + combination of instructions that HiPE currently does + not handle correctly. + + If erlc is invoked with the +native option, and if any + of the new binary matching instructions are used, the + compiler will issue a warning and produce a BEAM file + without native code. + + + OTP-15640 Application(s): erts + + Added the NIF function enif_term_type, which helps + avoid long sequences of enif_is_xyz by returning the + type of the given term. This is especially helpful for + NIFs that serialize terms, such as JSON encoders, where + it can improve both performance and readability. + + + OTP-15644 Application(s): crypto + Related Id(s): OTP-14732, OTP-15451, PR-1857, PR-2068, + PR-2095 + + *** POTENTIAL INCOMPATIBILITY *** + + A new API is implemented in crypto. See the CRYPTO + user's guide, chapter New and Old API for more + information. + + The old api with the crypto:block_* and crypto:stream_* + interfaces are kept for compatibility, but implemented + with the new api. Please note that since the error + checking is more thorough, there might be arguments + with for example faulty lengths that are no longer + accepted. + + + OTP-15655 Application(s): crypto + Related Id(s): ERL-864, PR-2173, PR-2186 + + The new hash_info/1 and cipher_info/1 functions returns + maps with information about the hash or cipher in the + argument. + + + OTP-15691 Application(s): snmp + Related Id(s): ERIERL-324 + + [snmp|agent] Add a get-mechanism callback module (and a + corresponding behaviour). The agent calls this module + to handle each get (get, get-next and get-bulk) + request. + + + OTP-15715 Application(s): compiler, erts + + Internal documentation has now been added to the *Erts* + and *Compiler* applications. + + The internal documents for *Erts* describe + miscellaneous interesting implementation details. Those + details can change at any time. + + The internal documentation for *Compiler* documents the + API for the Core Erlang modules. While we will not + change those APIs without good reason, we don't give + the same guarantees about backward compatibility as for + the rest of the APIs in OTP. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-14865 Application(s): ssl + + TLS-1.0, TLS-1.1 and DTLS-1.0 are now considered legacy + and not supported by default + + + OTP-15381 Application(s): stdlib + + The gen_* behaviours have been changed so that if + logging of the last N messages through sys:log/2,3 is + active for the server, this log is included in the + terminate report. + + To accomplish this the format of "System Events" as + defined in the man page for sys has been clarified and + cleaned up, a new function sys:get_log/1 has been + added, and sys:get_debug/3 has been deprecated. Due to + these changes, code that relies on the internal badly + documented format of "System Events", need to be + corrected. + + + OTP-15563 Application(s): compiler, stdlib + Related Id(s): ERL-845, OTP-15562 + + Do not allow function specifications for functions + residing in other modules. + + + OTP-15571 Application(s): reltool + + A new element, Opts, can now be included in a rel tuple + in the reltool release specific configuration format: + {rel, Name, Vsn, RelApps, Opts}. + + This supports the use of {rel, Name, Vsn, RelApps, + [{load_dot_erlang, false}]} to prevent the boot script + from running the .erlang file. + + The incompatibilities are as follows: + + * The return from reltool:get_config/1 and + reltool:get_config/3 includes the new rel tuple for all + releases where the load_dot_erlang option is set to + false. + * The return from reltool:get_config/3 includes the new + rel tuple for ALL releases if the InclDefs parameter is + set to true. + + + OTP-15621 Application(s): erl_interface, otp + + The limited support for VxWorks is deprecated as of OTP + 22, and will be removed in OTP 23. + + + OTP-15622 Application(s): erl_interface + + The old legacy erl_interface library (functions with + prefix erl_) is deprecated as of OTP 22, and will be + removed in OTP 23. This does not apply to the ei + library. Reasonably new gcc compilers will issue + deprecation warnings. In order to disable these + warnings, define the macro EI_NO_DEPR_WARN. + + + OTP-15644 Application(s): crypto + Related Id(s): OTP-14732, OTP-15451, PR-1857, PR-2068, + PR-2095 + + *** HIGHLIGHT *** + + A new API is implemented in crypto. See the CRYPTO + user's guide, chapter New and Old API for more + information. + + The old api with the crypto:block_* and crypto:stream_* + interfaces are kept for compatibility, but implemented + with the new api. Please note that since the error + checking is more thorough, there might be arguments + with for example faulty lengths that are no longer + accepted. + + + OTP-15677 Application(s): crypto + + Fixed a bug in error return for crypto:poly1305/2. It + returned the atom notsup instead of the exception + notsup. + + + OTP-15678 Application(s): crypto + + The cipher chacha20 was introduced in OpenSSL 1.1.0. + However, it could in a very odd situation, fail for + versions less than OpenSSL 1.1.0d. It is therefore + disabled for those versions. + + + OTP-15692 Application(s): kernel + Related Id(s): PR-2170 + + In OTP-21.3, a warning was introduced for duplicated + applications/keys in configuration. This warning would + be displayed both when the configuration was given as a + file on system start, and during runtime via + application:set_env/1,2. + + The warning is now changed to a badarg exception in + application:set_env/1,2. If the faulty configuration is + given in a configuration file on system start, the + startup will fail. + + + OTP-15712 Application(s): erl_interface + Related Id(s): OTP-15774 + + Added support to receive, decode, encode and send both + bit strings and export funs (fun M:F/A). + + New functions ei_decode_bitstring and + ei_encode_bitstring have been added in order to decode + and encode bit strings where the number of bits is not + necessary divisible by 8 (a whole number of bytes). The + existing functions ei_decode_fun and ei_encode_fun can + now also handle export funs. + + Before this change, bit strings and export funs sent to + an erl_interface c-node were encoded using an + undocumented fallback tuple format. For bit strings + {Binary,BitsInLastByte} and for export funs {M,F}. + Existing c-node implementations expecting these tuples + must be changed to instead use ei_decode_bitstring and + ei_decode_fun. As a temporary solution you can also + build erl_interface with macro EI_COMPAT=21 or call + ei_set_compat_rel(21) to receive the old fallback + tuples. + + + OTP-15774 Application(s): jinterface + Related Id(s): OTP-15712 + + Added support to receive export funs (fun M:F/A). + + Before this change, export funs sent to a jinterface + node were encoded using an undocumented fallback tuple + format {M,F}. Existing jinterface implementations + expecting these tuples must be changed to instead use + the existing OtpErlangExternalFun class. + + + OTP-15779 Application(s): dialyzer + + The format of the raw analysis result tagged with + fun_app_args is changed to {fun_app_args, [ArgNs, Args, + Type]}. + + + OTP-15804 Application(s): mnesia + Related Id(s): PR-2216 + + Include stacktrace in exception if a dirty activity + errors, thus if user have matched on the error thrown + it may not match any more. + + + --------------------------------------------------------------------- + --- OTP-22.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + --- Improvements and New Features --- + + OTP-14625 Application(s): otp + + Configure scripts in different OTP applications are now + executed in parallel during the build of OTP. + + + OTP-15220 Application(s): otp + + Documented how atoms are ordered in the reference + manual. + + + OTP-15596 Application(s): erts, hipe, otp + + *** HIGHLIGHT *** + + In OTP 22, HiPE (the native code compiler) is not fully + functional. The reasons for this are: + + There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support. + + The new optimizations in the Erlang compiler create new + combination of instructions that HiPE currently does + not handle correctly. + + If erlc is invoked with the +native option, and if any + of the new binary matching instructions are used, the + compiler will issue a warning and produce a BEAM file + without native code. + + + OTP-15621 Application(s): erl_interface, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The limited support for VxWorks is deprecated as of OTP + 22, and will be removed in OTP 23. + + + --------------------------------------------------------------------- + --- asn1-5.0.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + OTP-15697 Application(s): asn1 + Related Id(s): PR-2159 + + Corrected problems with the following value + definitions: + + -- value of SEQUENCE OF CHOICE with extensions + + -- value of CHOICE with extensions + + -- DEFAULT used with OCTET STRING + + + Full runtime dependencies of asn1-5.0.9: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.17.3 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + --- Improvements and New Features --- + + OTP-15633 Application(s): common_test, stdlib + Related Id(s): PR-1787 + + Use ssh instead of rsh as the default remote shell. + + + Full runtime dependencies of common_test-1.17.3: compiler-6.0, + crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0, + observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0, + stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15760 Application(s): compiler, stdlib + Related Id(s): ERL-907 + + record_info/2 is a pseudo-function that requires + literal arguments known at compile time. Therefore, the + following usage is illegal: fun record/info/2. The + compiler would crash when during compilation of that + kind of code. Corrected to issue a compilation error. + + + --- Improvements and New Features --- + + OTP-14894 Application(s): compiler + Related Id(s): ERL-714 + + *** HIGHLIGHT *** + + The compiler has been rewritten to internally use an + intermediate representation based on Static Single + Assignment (SSA). The new intermediate representation + makes more optimizations possible. + + Most noticeable is that the binary matching + optimizations are now applicable in many more + circumstances than before. + + Another noticeable change is that type optimizations + are now applied across local function calls, and will + remove a lot more redundant type tests than before. + + + OTP-15273 Application(s): compiler + Related Id(s): ERL-639 + + Funs are no longer created when they are only used + locally, greatly improving the performance of named + funs and "fun-wrapped" macros. + + + OTP-15456 Application(s): compiler + + *** HIGHLIGHT *** + + All compiler options that can be given in the source + file can now also be given in the option list or from + the command line for erlc. + + Specifically, the option + {nowarn_deprecated_function,MFAs} was only recognized + when given in the file with the attribute -compile(). + The option {nowarn_unused_function,FAs} was incorrectly + documented to only work in a file, but it also worked + when given in the option list. + + + OTP-15563 Application(s): compiler, stdlib + Related Id(s): ERL-845, OTP-15562 + + *** POTENTIAL INCOMPATIBILITY *** + + Do not allow function specifications for functions + residing in other modules. + + + OTP-15715 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Internal documentation has now been added to the *Erts* + and *Compiler* applications. + + The internal documents for *Erts* describe + miscellaneous interesting implementation details. Those + details can change at any time. + + The internal documentation for *Compiler* documents the + API for the Core Erlang modules. While we will not + change those APIs without good reason, we don't give + the same guarantees about backward compatibility as for + the rest of the APIs in OTP. + + + OTP-15749 Application(s): compiler, stdlib + Related Id(s): ERL-904 + + There are new compiler options nowarn_removed and + {nowarn_removed,Items} to suppress warnings for + functions and modules that have been removed from OTP. + + + Full runtime dependencies of compiler-7.4: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-4.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15677 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Fixed a bug in error return for crypto:poly1305/2. It + returned the atom notsup instead of the exception + notsup. + + + OTP-15678 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The cipher chacha20 was introduced in OpenSSL 1.1.0. + However, it could in a very odd situation, fail for + versions less than OpenSSL 1.1.0d. It is therefore + disabled for those versions. + + + --- Improvements and New Features --- + + OTP-14461 Application(s): crypto, stdlib + Related Id(s): PR-1857 + + A new rand module algorithm, exro928ss + (Xoroshiro928**), has been implemented. It has got a + really long period and good statistical quality for all + output bits, while still being only about 50% slower + than the default algorithm. + + The same generator is also used as a long period + counter in a new crypto plugin for the rand module, + algorithm crypto_aes. This plugin uses AES-256 to + scramble the counter which buries any detectable + statistical artifacts. Scrambling is done in chunks + which are cached to get good amortized speed (about + half of the default algorithm). + + + OTP-14732 Application(s): crypto + Related Id(s): PR-2068, PR-2095 + + Crypto's single C-file is split into multiple files. + The different coding styles in the different parts are + unified into a single style. + + + OTP-15129 Application(s): crypto, erts + + Build configuration of the crypto application has been + moved from the erts application into the crypto + application. + + + OTP-15564 Application(s): crypto + Related Id(s): PR-2129 + + Adds two hash functions blake2b and blake2s (64 bit + hash and 32 bit hash respectively). These are modern + and standard hash functions used in blockchains and + encrypted communication protocols. The hash functions + are available in OpenSSL since version 1.1.1. + + + OTP-15644 Application(s): crypto + Related Id(s): OTP-14732, OTP-15451, PR-1857, PR-2068, + PR-2095 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + A new API is implemented in crypto. See the CRYPTO + user's guide, chapter New and Old API for more + information. + + The old api with the crypto:block_* and crypto:stream_* + interfaces are kept for compatibility, but implemented + with the new api. Please note that since the error + checking is more thorough, there might be arguments + with for example faulty lengths that are no longer + accepted. + + + OTP-15655 Application(s): crypto + Related Id(s): ERL-864, PR-2173, PR-2186 + + *** HIGHLIGHT *** + + The new hash_info/1 and cipher_info/1 functions returns + maps with information about the hash or cipher in the + argument. + + + OTP-15683 Application(s): crypto + + Obey additional OpenSSL configure flags when compiling + the C-part of the CRYPTO application: no-bf, no-blake2, + no-chacha, no-cmac, no-dh, no-dsa, no-md4, no-poly1305, + no-rc2, no-rc4 and no-rmd160. + + + OTP-15771 Application(s): crypto + + A new function crypto:supports/1 is introduced. The + single argument takes an atom as argument: hashes, + public_keys, ciphers, macs, curves or rsa_opts. The + return value is a list of supported algorithms. + + The difference with the existing crypto:supports/0 is, + apart from the argument and the return value, that the + old function reports what is supported by the old api, + and the new function reports algorithms in the new api. + + + Full runtime dependencies of crypto-4.5: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.7 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + Full runtime dependencies of debugger-4.2.7: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + --- Improvements and New Features --- + + OTP-15135 Application(s): dialyzer + + By default Dialyzer inserts line breaks in types, + contracts, and Erlang Code when formatting results. Use + the new --no_indentation option to get the old behavior + of not inserting line breaks. + + + OTP-15752 Application(s): dialyzer + + Use bit syntax in warnings instead of Core Erlang + syntax, for readability. + + + OTP-15779 Application(s): dialyzer + + *** POTENTIAL INCOMPATIBILITY *** + + The format of the raw analysis result tagged with + fun_app_args is changed to {fun_app_args, [ArgNs, Args, + Type]}. + + + Full runtime dependencies of dialyzer-4.0: compiler-7.0, erts-9.0, + hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-0.11 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15761 Application(s): edoc, syntax_tools + + Correct links in the documentation. + + + Full runtime dependencies of edoc-0.11: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.8 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15775 Application(s): eldap + + Fix dialyzer warnings in eldap when not matching the + return value of ssl:close/1. + + + Full runtime dependencies of eldap-1.2.8: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.9.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + Full runtime dependencies of erl_docgen-0.9.1: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.12 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15773 Application(s): erl_interface, erts + + The vxworks configure has been updated to respect the + environment CFLAGS. + + + --- Improvements and New Features --- + + OTP-15340 Application(s): erl_interface, erts, megaco, odbc + Related Id(s): OTP-14625 + + Minor adjustments made to build system for parallel + configure. + + + OTP-15621 Application(s): erl_interface, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The limited support for VxWorks is deprecated as of OTP + 22, and will be removed in OTP 23. + + + OTP-15622 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The old legacy erl_interface library (functions with + prefix erl_) is deprecated as of OTP 22, and will be + removed in OTP 23. This does not apply to the ei + library. Reasonably new gcc compilers will issue + deprecation warnings. In order to disable these + warnings, define the macro EI_NO_DEPR_WARN. + + + OTP-15712 Application(s): erl_interface + Related Id(s): OTP-15774 + + *** POTENTIAL INCOMPATIBILITY *** + + Added support to receive, decode, encode and send both + bit strings and export funs (fun M:F/A). + + New functions ei_decode_bitstring and + ei_encode_bitstring have been added in order to decode + and encode bit strings where the number of bits is not + necessary divisible by 8 (a whole number of bytes). The + existing functions ei_decode_fun and ei_encode_fun can + now also handle export funs. + + Before this change, bit strings and export funs sent to + an erl_interface c-node were encoded using an + undocumented fallback tuple format. For bit strings + {Binary,BitsInLastByte} and for export funs {M,F}. + Existing c-node implementations expecting these tuples + must be changed to instead use ei_decode_bitstring and + ei_decode_fun. As a temporary solution you can also + build erl_interface with macro EI_COMPAT=21 or call + ei_set_compat_rel(21) to receive the old fallback + tuples. + + + --------------------------------------------------------------------- + --- erts-10.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15535 Application(s): erts + Related Id(s): PR-2055 + + Do not allocate new bitstring/binary when an empty + binary is appended. + + + OTP-15543 Application(s): erts + Related Id(s): PR-2089 + + Document that process_info(_, current_function) can + return {current_function, undefined} in case of + execution of native code. + + + OTP-15672 Application(s): erts + + Fixed bug in ets:select, ets:match and friends which + could cause the table to remain fixated (as if + ets:safe_fixtable had been called) after the call + returned. This could happen for protected tables if + another concurrent running process transferred table + ownership to the process during its ets:select/match + call. Ownership can be transferred using either + ets:give_away or the heir table option. + + + OTP-15693 Application(s): erts + + Fixed a Windows-specific bug in file:list_dir/1 that + caused it to misbehave on network shares. + + + OTP-15694 Application(s): erts + Related Id(s): ERL-863 + + Fixed bug when calling enif_whereis_* from NIF resource + destructor. Symptoms could be emulator crash or hanging + scheduler threads. + + + OTP-15698 Application(s): erts + + Fixed a bug in the error case of apply/3, where the + exception would erroneously have an empty argument list + in some cases. + + + OTP-15707 Application(s): erts, stdlib + + A bug has been fixed in the maps implementation that + could cause a crash or memory usage to grow until the + machine ran out of memory. This could happen when + inserting a new key-value pair with a key K1 containing + a binary B1 into a map M having a key K2 with a binary + B2 if the following conditions were met: + + -- B1 =/= B2 + + -- size(B1) >= 4294967296 + + -- size(B2) >= 4294967296 + + -- size(M) >= 32 + + -- (size(B1) rem 4294967296) == (size(B2) rem + 4294967296) + + -- the first (size(B1) rem 4294967296) bytes are the + same both in B1 and B2 + + -- substituting B1 in K1 with B2 would create a term + with the same value as K2 + + The root cause of the problem is that the maps + implementation only hashed the first (X rem 4294967296) + bytes of binaries so that different binaries could get + the same hash value independently of the hash seed. + + + OTP-15708 Application(s): erts + + term_to_binary() and distributed sends will now throw a + system_limit exception instead of producing erroneous + results when trying to encode a binary larger than 4 + GB. + + + OTP-15773 Application(s): erl_interface, erts + + The vxworks configure has been updated to respect the + environment CFLAGS. + + + OTP-15788 Application(s): erts + + Fix configure to not enable PGO (profile guided + optimizations) when linking of the PGO binary fails. + For instance this happens when there is no gcov lib + installed. + + + OTP-15791 Application(s): erts + + Fix bug on OpenBSD where sockets using active, true or + active, N could cause the system to live lock. The bug + was introduced in erts-10.2 (OTP-21.2). + + + --- Improvements and New Features --- + + OTP-13397 Application(s): erts + + *** HIGHLIGHT *** + + Add support for Erlang Distribution protocol to split + the payload of large signals into several fragments. + This allows other processes to communicate + uninterrupted during the transmission of these signals. + + + OTP-14831 Application(s): erts, kernel + + *** HIGHLIGHT *** + + A simple socket API is provided through the socket + module. This is a low level API that does *not* replace + gen_[tcp|udp|sctp]. It is intended to *eventually* + replace the inet driver, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). It also + provides a basic API that facilitates the + implementation of other protocols, that is TCP, UDP and + SCTP. + + Known issues are; No support for the Windows OS + (currently). + + + OTP-15011 Application(s): erts + Related Id(s): PR-2147 + + Added NIF functions enif_set_pid_undefined, + enif_is_pid_undefined and enif_compare_pids. + + + OTP-15063 Application(s): erts + + Underutilized memory segments (carriers) can now move + between all allocator instances, rather than just + between instances of the same type, which greatly + reduces memory usage in some scenarios. + + + OTP-15075 Application(s): erts + + The emulator will now mark free blocks in pooled + carriers with madvise(2) + MADV_FREE (or similar), + letting the OS reclaim the associated physical memory + if necessary. + + + OTP-15095 Application(s): erts + + New ERL_NIF_SELECT_CANCEL feature added to enif_select + in order to cancel (or "deselect") a read or write + event on a previously selected file descriptor. + + + OTP-15128 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + ETS option write_concurrency now also affects and + improves the scalability of ordered_set tables. The + implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime. + + + OTP-15129 Application(s): crypto, erts + + Build configuration of the crypto application has been + moved from the erts application into the crypto + application. + + + OTP-15195 Application(s): erts + Related Id(s): PR-1812 + + Anonymous functions that don't capture environment are + now created at load-time instead of in run-time. + + + OTP-15211 Application(s): erts + Related Id(s): PR-1889 + + Optimize updates of maps with identical keys and + values. E.g. in the example below the original Map will + be reused as the return of the update. + + 1> Map = #{ a => b }. #{ a => b } 2> Map#{ a := b }. + + + OTP-15238 Application(s): erts + Related Id(s): PR-1803 + + Optimize binary:match/2 and binary:matches/2 to use + memchr internally. + + + OTP-15261 Application(s): erts + + The runtime system used to terminate when a message + larger than 2 Gb was passed over the distribution. The + send operation will now instead throw a system_limit + exception. + + + OTP-15336 Application(s): erts, sasl + Related Id(s): PR-1825 + + Change the first module called by erts to be named + erl_init instead of otp_ring0. systools in sasl have + been updated to reflect this change. + + + OTP-15340 Application(s): erl_interface, erts, megaco, odbc + Related Id(s): OTP-14625 + + Minor adjustments made to build system for parallel + configure. + + + OTP-15349 Application(s): erts + Related Id(s): PR-2084 + + Two new NIF interface functions enif_select_read and + enif_select_write. They are similar to existing + enif_select but allow a custom event message as an + argument. + + + OTP-15351 Application(s): erts + Related Id(s): ERL-749 + + The embedded copy of zlib has been updated from 1.2.8 + to 1.2.11. + + Note that this copy is only used as a fallback when the + target platform doesn't provide any zlib development + libraries. If your system provides zlib then it will be + used even if it is older than 1.2.11. + + + OTP-15362 Application(s): erts + Related Id(s): PR-2127 + + New NIF function enif_make_monitor_term. + + + OTP-15427 Application(s): erts + + Appending lists (The ++ operator) will now yield + properly on large inputs. + + + OTP-15439 Application(s): erts + + *** HIGHLIGHT *** + + The length/1 BIF used to calculate the length of the + list in one go without yielding, even if the list was + very long. In OTP 22, length/1 will yield when called + with long lists. + + + OTP-15513 Application(s): erts + Related Id(s): ERL-773 + + Processes sending messages are now punished with a + reduction cost based on message size. That is, a + process sending a large message will yield earlier than + before. + + + OTP-15581 Application(s): erts + Related Id(s): OTP-15580 + + The transitory emulator option +ztma true (introduced + in OTP 21.3) has been removed. + + + OTP-15596 Application(s): erts, hipe, otp + + *** HIGHLIGHT *** + + In OTP 22, HiPE (the native code compiler) is not fully + functional. The reasons for this are: + + There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support. + + The new optimizations in the Erlang compiler create new + combination of instructions that HiPE currently does + not handle correctly. + + If erlc is invoked with the +native option, and if any + of the new binary matching instructions are used, the + compiler will issue a warning and produce a BEAM file + without native code. + + + OTP-15610 Application(s): erts + + The termination behaviour of processes has changed to + allow processes to yield while sending link + exit/monitor down signals. + + The erl crash dump has been expanded to now also + include processes that are termeinating but have not + yet terminated. + + + OTP-15611 Application(s): erts, kernel + + The dist messages EXIT, EXIT2 and MONITOR_DOWN have + been updated with new versions that send the reason + term as part of the payload of the message instead of + as part of the control message. + + The old versions are still present and can be used when + communicating with nodes that don't support the new + versions. + + + OTP-15612 Application(s): erts + + When sending messages, exit, exit2 and monitor down + distributed signals, the process sending will now yield + appropriately. + + This means that a terminating process will yield and + possibly be suspended on busy distribution entries + while they are terminating. This means that any memory + held by such processes will not be released until after + all exit/monitor down signals have been sent. + + + OTP-15613 Application(s): erts + + All external pids/ports/refs created by + erlang:list_to_pid/port/ref debug functions now compare + equal to any other pid/port/ref with the same number + from that node. + + Before this change they compared differently because + the node creation of the pid/port/ref did not compare + equal to any real pid/port/ref creation. + + This will mostly effect pids/ports/refs typed in the + shell. + + + OTP-15615 Application(s): erts, stdlib + + The persistent_term functions put/2 and erase/1 are now + yielding. + + + OTP-15617 Application(s): erts + + A new erlang:dist_ctrl_set_opt(DHandle, get_size, + Value) option has been added. This option makes it + possible to configure the distribution channel + identified by DHandle so that + erlang:dist_ctrl_get_data(DHandle) also returns the + size of the data to pass over the channel. + + + OTP-15623 Application(s): erts, stdlib + Related Id(s): PR-2190 + + Previously, all ETS tables used centralized counter + variables to keep track of the number of items stored + and the amount of memory consumed. These counters can + cause scalability problems (especially on big NUMA + systems). This change adds an implementation of a + decentralized counter and modifies the implementation + of ETS so that ETS tables of type ordered_set with + write_concurrency enabled use the decentralized + counter. Experiments indicate that this change + substantially improves the scalability of ETS + ordered_set tables with write_concurrency enabled in + scenarios with frequent ets:insert/2 and ets:delete/2 + calls. + + + OTP-15631 Application(s): erts + + The iolist_size/1 function is now yielding which means + that an Erlang/OTP system will be responsive even if + the applications running on the system frequently call + iolist_size/1 with large iolists. + + + OTP-15635 Application(s): erts + + A simple test suite for the net module has been added. + + + OTP-15640 Application(s): erts + + *** HIGHLIGHT *** + + Added the NIF function enif_term_type, which helps + avoid long sequences of enif_is_xyz by returning the + type of the given term. This is especially helpful for + NIFs that serialize terms, such as JSON encoders, where + it can improve both performance and readability. + + + OTP-15674 Application(s): erts + Related Id(s): PR-2177 + + The last call optimization is now applied to BIFs. When + calling a BIF in the tail position of a function, the + return address and stack frame will now be discarded + before calling the BIF. As a consequence of this + change, the immediate caller of a tail-called BIF will + no longer be available in stack backtraces. + + + OTP-15703 Application(s): erts + + Fix GC bug where distributed messages in a processes + mailbox would cause extra GCs. This can be very + expensive if there many messages in the mailbox. + + + OTP-15715 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Internal documentation has now been added to the *Erts* + and *Compiler* applications. + + The internal documents for *Erts* describe + miscellaneous interesting implementation details. Those + details can change at any time. + + The internal documentation for *Compiler* documents the + API for the Core Erlang modules. While we will not + change those APIs without good reason, we don't give + the same guarantees about backward compatibility as for + the rest of the APIs in OTP. + + + OTP-15740 Application(s): erts + + The performance of non-bignum integer arithmetic has + been improved. + + + OTP-15794 Application(s): erts + Related Id(s): PR-2219 + + The -remsh option to erl now automatically adds the + local systems hostname to the target node if no + nodename is given. e.g. + + erl -name foo -remsh bar + + + erl -sname foo -remsh bar + + + Full runtime dependencies of erts-10.4: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- hipe-3.19 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15385 Application(s): hipe + Related Id(s): PR-1986 + + Add function hipe:erllvm_is_supported to check for the + presences of a suitable version of the LLVM tool chain + as well as supported hardware architecture. The old + hipe:llvm_support_available has been removed. + + + OTP-15386 Application(s): hipe + Related Id(s): PR-1963 + + Fix hipe LLVM for FreeBSD and other non-linux unix to + use /tmp/ instead of /dev/shm/. + + + --- Improvements and New Features --- + + OTP-15596 Application(s): erts, hipe, otp + + *** HIGHLIGHT *** + + In OTP 22, HiPE (the native code compiler) is not fully + functional. The reasons for this are: + + There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support. + + The new optimizations in the Erlang compiler create new + combination of instructions that HiPE currently does + not handle correctly. + + If erlc is invoked with the +native option, and if any + of the new binary matching instructions are used, the + compiler will issue a warning and produce a BEAM file + without native code. + + + Full runtime dependencies of hipe-3.19: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.0.8 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + Full runtime dependencies of inets-7.0.8: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.10 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + --- Improvements and New Features --- + + OTP-15774 Application(s): jinterface + Related Id(s): OTP-15712 + + *** POTENTIAL INCOMPATIBILITY *** + + Added support to receive export funs (fun M:F/A). + + Before this change, export funs sent to a jinterface + node were encoded using an undocumented fallback tuple + format {M,F}. Existing jinterface implementations + expecting these tuples must be changed to instead use + the existing OtpErlangExternalFun class. + + + --------------------------------------------------------------------- + --- kernel-6.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15786 Application(s): kernel + Related Id(s): ERL-918 + + Fix so that when multiple -sname or -name are given to + erl the first one is chosen. Before this fix + distribution was not started at all when multiple name + options were given. + + + OTP-15806 Application(s): kernel + + Fix inet_res configuration pointing to non-existing + files to work again. This was broken in KERNEL-6.3 + (OTP-21.3). + + + --- Improvements and New Features --- + + OTP-14831 Application(s): erts, kernel + + *** HIGHLIGHT *** + + A simple socket API is provided through the socket + module. This is a low level API that does *not* replace + gen_[tcp|udp|sctp]. It is intended to *eventually* + replace the inet driver, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). It also + provides a basic API that facilitates the + implementation of other protocols, that is TCP, UDP and + SCTP. + + Known issues are; No support for the Windows OS + (currently). + + + OTP-15491 Application(s): kernel + Related Id(s): PR-2019 + + Improved the documentation for the linger option. + + + OTP-15607 Application(s): kernel + Related Id(s): ERIERL-280 + + Global no longer tries more than once when connecting + to other nodes. + + + OTP-15611 Application(s): erts, kernel + + The dist messages EXIT, EXIT2 and MONITOR_DOWN have + been updated with new versions that send the reason + term as part of the payload of the message instead of + as part of the control message. + + The old versions are still present and can be used when + communicating with nodes that don't support the new + versions. + + + OTP-15668 Application(s): kernel + Related Id(s): PR-2088 + + Kernel configuration parameter start_distribution = + boolean() is added. If set to false, the system is + started with all distribution functionality disabled. + Defaults to true. + + + OTP-15692 Application(s): kernel + Related Id(s): PR-2170 + + *** POTENTIAL INCOMPATIBILITY *** + + In OTP-21.3, a warning was introduced for duplicated + applications/keys in configuration. This warning would + be displayed both when the configuration was given as a + file on system start, and during runtime via + application:set_env/1,2. + + The warning is now changed to a badarg exception in + application:set_env/1,2. If the faulty configuration is + given in a configuration file on system start, the + startup will fail. + + + Full runtime dependencies of kernel-6.4: erts-10.2.5, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- megaco-3.18.5 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15262 Application(s): megaco, runtime_tools + Related Id(s): OTP-15129 + + Minor updates to build system necessary due to move of + configuration of crypto application. + + + OTP-15340 Application(s): erl_interface, erts, megaco, odbc + Related Id(s): OTP-14625 + + Minor adjustments made to build system for parallel + configure. + + + Full runtime dependencies of megaco-3.18.5: 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.16 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15550 Application(s): mnesia + Related Id(s): PR-2029 + + Optimize mnesia:read/1 if data have been written in the + same transaction. + + + OTP-15689 Application(s): mnesia + Related Id(s): ERL-556, PR-1695 + + Fixed bugs in table index plugin handling. + + + --- Improvements and New Features --- + + OTP-15588 Application(s): mnesia + Related Id(s): PR-2102 + + Optimized dumping of tables with plugin backends. + + + OTP-15804 Application(s): mnesia + Related Id(s): PR-2216 + + *** POTENTIAL INCOMPATIBILITY *** + + Include stacktrace in exception if a dirty activity + errors, thus if user have matched on the error thrown + it may not match any more. + + + Full runtime dependencies of mnesia-4.16: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.1 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + Full runtime dependencies of observer-2.9.1: erts-7.0, et-1.5, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.12.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15340 Application(s): erl_interface, erts, megaco, odbc + Related Id(s): OTP-14625 + + Minor adjustments made to build system for parallel + configure. + + + Full runtime dependencies of odbc-2.12.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15770 Application(s): os_mon + Related Id(s): PR-2208 + + Fix typespec of cpu_sup:util(). + + + --- Improvements and New Features --- + + OTP-14984 Application(s): os_mon, snmp + Related Id(s): OTP-15329 + + The application otp_mibs has been removed from OTP. + Some of its components (mibs) have been moved to other + apps (snmp), or removed completely (os_mon). + + + Full runtime dependencies of os_mon-2.5: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.6.7 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15754 Application(s): public_key + Related Id(s): ERL-878 + + RSA options passed to crypto for encrypt and decrypt + with public or private key. + + + OTP-15776 Application(s): public_key + + Fix dialyzer warnings caused by a faulty type + specification for digest_type(). + + This change updates digest_type() and the functions + operating with this argument type to accept both 'sha1' + and 'sha' as digest_type(). + + + --- Improvements and New Features --- + + OTP-13726 Application(s): public_key + + Add possibility to read PEM files encrypted with old + PEM encryption using AES-256 + + + OTP-15687 Application(s): public_key + Related Id(s): PR-2162 + + Relax decoding of certificates to so that "harmless" + third party encoding errors may be accepted but not + created by the public_key application. This adds + acceptance of using an incorrect three character + country code, the PKIX standard use two character + country codes. It is also accepted that the country + code is utf8 encoded but the specification says it + should be ASCII. + + + Full runtime dependencies of public_key-1.6.7: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.8 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15571 Application(s): reltool + + *** POTENTIAL INCOMPATIBILITY *** + + A new element, Opts, can now be included in a rel tuple + in the reltool release specific configuration format: + {rel, Name, Vsn, RelApps, Opts}. + + This supports the use of {rel, Name, Vsn, RelApps, + [{load_dot_erlang, false}]} to prevent the boot script + from running the .erlang file. + + The incompatibilities are as follows: + + * The return from reltool:get_config/1 and + reltool:get_config/3 includes the new rel tuple for all + releases where the load_dot_erlang option is set to + false. + * The return from reltool:get_config/3 includes the new + rel tuple for ALL releases if the InclDefs parameter is + set to true. + + + Full runtime dependencies of reltool-0.8: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.13.3 -------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15262 Application(s): megaco, runtime_tools + Related Id(s): OTP-15129 + + Minor updates to build system necessary due to move of + configuration of crypto application. + + + Full runtime dependencies of runtime_tools-1.13.3: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15336 Application(s): erts, sasl + Related Id(s): PR-1825 + + Change the first module called by erts to be named + erl_init instead of otp_ring0. systools in sasl have + been updated to reflect this change. + + + Full runtime dependencies of sasl-3.4: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14984 Application(s): os_mon, snmp + Related Id(s): OTP-15329 + + The application otp_mibs has been removed from OTP. + Some of its components (mibs) have been moved to other + apps (snmp), or removed completely (os_mon). + + + OTP-15691 Application(s): snmp + Related Id(s): ERIERL-324 + + *** HIGHLIGHT *** + + [snmp|agent] Add a get-mechanism callback module (and a + corresponding behaviour). The agent calls this module + to handle each get (get, get-next and get-bulk) + request. + + + Full runtime dependencies of snmp-5.3: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.7.7 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15673 Application(s): ssh + + SSH uses the new crypto API. + + + Full runtime dependencies of ssh-4.7.7: crypto-4.5, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-9.3 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14792 Application(s): ssl + + The distribution handshake with TLS distribution + (inet_tls_dist) does now utilize the socket option + {nodelay, true}, which decreases the distribution setup + time significantly. + + + OTP-15710 Application(s): ssl + Related Id(s): ERL-893 + + Correct shutdown reason to avoid an incorrect crash + report + + + OTP-15746 Application(s): ssl + Related Id(s): ERIERL-333 + + Enhance documentation and type specifications. + + + --- Improvements and New Features --- + + OTP-14865 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.0, TLS-1.1 and DTLS-1.0 are now considered legacy + and not supported by default + + + OTP-15055 Application(s): ssl + + *** HIGHLIGHT *** + + Use new logger API in ssl. Introduce log levels and + verbose debug logging for SSL. + + + OTP-15483 Application(s): ssl + Related Id(s): ERL-924 + + *** HIGHLIGHT *** + + Add new API function str_to_suite/1, cipher_suites/3 + (list cipher suites as rfc or OpenSSL name strings) and + suite_to_openssl_str/1 + + + OTP-15591 Application(s): ssl + + *** HIGHLIGHT *** + + Basic support for TLS 1.3 Server for experimental use. + The client is not yet functional, for more information + see the Standards Compliance chapter of the User's + Guide. + + + OTP-15626 Application(s): ssl + + Add support for PSK CCM ciphers from RFC 6655 + + + Full runtime dependencies of ssl-9.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15649 Application(s): stdlib + + Fix a bug in string:lexemes/2. + + The bug was found when optimizing the handling of deep + lists of Unicode characters in the string module. + + + OTP-15707 Application(s): erts, stdlib + + A bug has been fixed in the maps implementation that + could cause a crash or memory usage to grow until the + machine ran out of memory. This could happen when + inserting a new key-value pair with a key K1 containing + a binary B1 into a map M having a key K2 with a binary + B2 if the following conditions were met: + + -- B1 =/= B2 + + -- size(B1) >= 4294967296 + + -- size(B2) >= 4294967296 + + -- size(M) >= 32 + + -- (size(B1) rem 4294967296) == (size(B2) rem + 4294967296) + + -- the first (size(B1) rem 4294967296) bytes are the + same both in B1 and B2 + + -- substituting B1 in K1 with B2 would create a term + with the same value as K2 + + The root cause of the problem is that the maps + implementation only hashed the first (X rem 4294967296) + bytes of binaries so that different binaries could get + the same hash value independently of the hash seed. + + + OTP-15751 Application(s): stdlib + + Since the introduction of the stack trace variable, the + Erlang Pretty Printer has left out the exception class + throw even when the stack trace variable cannot be left + out, which is not correct Erlang code. The fix is to + always include the exception class throw. + + + OTP-15760 Application(s): compiler, stdlib + Related Id(s): ERL-907 + + record_info/2 is a pseudo-function that requires + literal arguments known at compile time. Therefore, the + following usage is illegal: fun record/info/2. The + compiler would crash when during compilation of that + kind of code. Corrected to issue a compilation error. + + + --- Improvements and New Features --- + + OTP-14461 Application(s): crypto, stdlib + Related Id(s): PR-1857 + + A new rand module algorithm, exro928ss + (Xoroshiro928**), has been implemented. It has got a + really long period and good statistical quality for all + output bits, while still being only about 50% slower + than the default algorithm. + + The same generator is also used as a long period + counter in a new crypto plugin for the rand module, + algorithm crypto_aes. This plugin uses AES-256 to + scramble the counter which buries any detectable + statistical artifacts. Scrambling is done in chunks + which are cached to get good amortized speed (about + half of the default algorithm). + + + OTP-14724 Application(s): stdlib + Related Id(s): PR-2056 + + Types related to server naming and starting have been + exported from gen_statem. These are: server_name/0, + server_ref/0, start_opt/0, start_ret/0 and + enter_loop_opt/0. + + + OTP-14731 Application(s): stdlib + Related Id(s): PR-1969 + + The default algorithm for the rand module has been + changed to exsss (Xorshift116**) which is a combination + of the Xorshift116 (exsp) state update and a new + scrambler "StarStar" from the 2018 paper "Scrambled + Linear Pseudorandom Number Generators" by David + Blackman and Sebastiano Vigna. This combination should + not have the caveat of weak low bits that the previous + default algorithm(s) have had, with the cost of about + 10% lower speed. See GitHub pull request #1969. + + + OTP-14737 Application(s): stdlib + Related Id(s): PR-1855 + + The generic state machine behaviour gen_statem has + gotten code cleanup and documentation improvements from + GitHub Pull Request #1855, even though the PR itself + was rejected. + + + OTP-15111 Application(s): stdlib + + Update Unicode specification to version 11.0. + + + OTP-15128 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + ETS option write_concurrency now also affects and + improves the scalability of ordered_set tables. The + implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime. + + + OTP-15200 Application(s): stdlib + Related Id(s): PR-1878 + + Optimized maps:new/0 with trivial Erlang + implementation, making use of literal terms (the empty + map) not needing dynamic heap allocation. + + + OTP-15381 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The gen_* behaviours have been changed so that if + logging of the last N messages through sys:log/2,3 is + active for the server, this log is included in the + terminate report. + + To accomplish this the format of "System Events" as + defined in the man page for sys has been clarified and + cleaned up, a new function sys:get_log/1 has been + added, and sys:get_debug/3 has been deprecated. Due to + these changes, code that relies on the internal badly + documented format of "System Events", need to be + corrected. + + + OTP-15452 Application(s): stdlib + + The gen_statem behaviour engine loop has been optimized + for better performance in particular when the callback + module returns some actions, that is better performance + for more realistic applications than the Echo + Benchmark. + + + OTP-15563 Application(s): compiler, stdlib + Related Id(s): ERL-845, OTP-15562 + + *** POTENTIAL INCOMPATIBILITY *** + + Do not allow function specifications for functions + residing in other modules. + + + OTP-15615 Application(s): erts, stdlib + + The persistent_term functions put/2 and erase/1 are now + yielding. + + + OTP-15623 Application(s): erts, stdlib + Related Id(s): PR-2190 + + Previously, all ETS tables used centralized counter + variables to keep track of the number of items stored + and the amount of memory consumed. These counters can + cause scalability problems (especially on big NUMA + systems). This change adds an implementation of a + decentralized counter and modifies the implementation + of ETS so that ETS tables of type ordered_set with + write_concurrency enabled use the decentralized + counter. Experiments indicate that this change + substantially improves the scalability of ETS + ordered_set tables with write_concurrency enabled in + scenarios with frequent ets:insert/2 and ets:delete/2 + calls. + + + OTP-15633 Application(s): common_test, stdlib + Related Id(s): PR-1787 + + Use ssh instead of rsh as the default remote shell. + + + OTP-15680 Application(s): stdlib + Related Id(s): PR-2114 + + Added beam_lib:strip/2 and friends, which accept a list + of chunks that should be preserved when stripping. + + + OTP-15705 Application(s): stdlib + + Optimize printing of maps with io_lib:write(). Also + optimize pretty printing of strings (~s and ~ts) when + limiting the output with the chars_limit option. + + + OTP-15749 Application(s): compiler, stdlib + Related Id(s): ERL-904 + + There are new compiler options nowarn_removed and + {nowarn_removed,Items} to suppress warnings for + functions and modules that have been removed from OTP. + + + OTP-15755 Application(s): stdlib + + Let the Erlang Pretty Printer put atomic parts on the + same line. + + + OTP-15756 Application(s): stdlib + + Add option quote_singleton_atom_types to the Erlang + Pretty Printer's functions. Setting the option to true + adds quotes to all singleton atom types. + + + Full runtime dependencies of stdlib-3.9: compiler-5.0, crypto-3.3, + erts-10.4, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.2 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + --- Improvements and New Features --- + + OTP-15761 Application(s): edoc, syntax_tools + + Correct links in the documentation. + + + Full runtime dependencies of syntax_tools-2.2: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15534 Application(s): tools + Related Id(s): PR-2078 + + Add cprof and tags modules to .app file so that they + are included in releases. + + + OTP-15699 Application(s): tools + Related Id(s): PR-2184 + + Improved documentation parsing in emacs erldoc + functionality. + + + --- Improvements and New Features --- + + OTP-15575 Application(s): tools + + *** HIGHLIGHT *** + + The cover tool now uses the counters module instead of + ets for updating the counters for how many times a line + has been executed. By default, Cover will work with + distributed nodes, but a new function + cover:local_only/0 allows running the Cover in a + restricted but faster local-only mode. + + The increase in speed will vary depending on the type + of code being cover-compiled, but as an example, the + compiler test suite runs more than twice as fast with + the new Cover. + + + Full runtime dependencies of tools-3.2: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.8.8 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, + erl_docgen, inets, jinterface, observer, otp, + syntax_tools, wx + Related Id(s): PR-1891 + + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on. + + + Full runtime dependencies of wx-1.8.8: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.21 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14703 Application(s): xmerl + Related Id(s): PR-1964 + + A typo in an error printout has been fixed. + + + Full runtime dependencies of xmerl-1.3.21: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + -- cgit v1.2.3