diff options
Diffstat (limited to 'release-notes')
67 files changed, 36255 insertions, 0 deletions
diff --git a/release-notes/OTP-18.3.4.1.1.README.txt b/release-notes/OTP-18.3.4.1.1.README.txt new file mode 100644 index 0000000..b98ba1c --- /dev/null +++ b/release-notes/OTP-18.3.4.1.1.README.txt @@ -0,0 +1,88 @@ +Patch Package: OTP 18.3.4.1.1 +Git Tag: OTP-18.3.4.1.1 +Date: 2017-11-22 +Trouble Report Id: OTP-14748 +Seq num: +System: OTP +Release: 18 +Application: ssl-7.3.3.0.1 +Predecessor: OTP 18.3.4.1 + + Check out the git tag OTP-18.3.4.1.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- ssl-7.3.3.0.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.3.0.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14748 Application(s): ssl + + An erlang TLS server configured with cipher suites + using rsa key exchange, may be vulnerable to an + Adaptive Chosen Ciphertext attack (AKA Bleichenbacher + attack) against RSA, which when exploited, may result + in plaintext recovery of encrypted messages and/or a + Man-in-the-middle (MiTM) attack, despite the attacker + not having gained access to the server’s private key + itself. CVE-2017-1000385 + + Exploiting this vulnerability to perform plaintext + recovery of encrypted messages will, in most practical + cases, allow an attacker to read the plaintext only + after the session has completed. Only TLS sessions + established using RSA key exchange are vulnerable to + this attack. + + Exploiting this vulnerability to conduct a MiTM attack + requires the attacker to complete the initial attack, + which may require thousands of server requests, during + the handshake phase of the targeted session within the + window of the configured handshake timeout. This attack + may be conducted against any TLS session using RSA + signatures, but only if cipher suites using RSA key + exchange are also enabled on the server. The limited + window of opportunity, limitations in bandwidth, and + latency make this attack significantly more difficult + to execute. + + RSA key exchange is enabled by default although least + prioritized if server order is honored. For such a + cipher suite to be chosen it must also be supported by + the client and probably the only shared cipher suite. + + Captured TLS sessions encrypted with ephemeral cipher + suites (DHE or ECDHE) are not at risk for subsequent + decryption due to this vulnerability. + + As a workaround if default cipher suite configuration + was used you can configure the server to not use + vulnerable suites with the ciphers option like this: + + {ciphers, [Suite || Suite <- ssl:cipher_suites(), + element(1,Suite) =/= rsa]} + + that is your code will look somethingh like this: + + ssl:listen(Port, [{ciphers, [Suite || Suite <- + ssl:cipher_suites(), element(1,S) =/= rsa]} | + Options]). + + Thanks to Hanno Böck, Juraj Somorovsky and Craig Young + for reporting this vulnerability. + + + Full runtime dependencies of ssl-7.3.3.0.1: crypto-3.3, erts-6.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- diff --git a/release-notes/OTP-20.3.2.1.README.txt b/release-notes/OTP-20.3.2.1.README.txt new file mode 100644 index 0000000..f6c051d --- /dev/null +++ b/release-notes/OTP-20.3.2.1.README.txt @@ -0,0 +1,44 @@ +Patch Package: OTP 20.3.2.1 +Git Tag: OTP-20.3.2.1 +Date: 2019-02-18 +Trouble Report Id: OTP-15584 +Seq num: ERIERL-282 +System: OTP +Release: 20 +Application: common_test-1.15.4.0.1 +Predecessor: OTP 20.3.2 + + Check out the git tag OTP-20.3.2.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.15.4.0.1 ------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.15.4.0.1 application can be applied independently + of other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15584 Application(s): common_test + Related Id(s): ERIERL-282 + + The status of a test case which failed with timetrap + timeout in end_per_testcase could not be modified by + returning {fail,Reason} from a post_end_per_testcase + hook function. This is now corrected. + + + Full runtime dependencies of common_test-1.15.4.0.1: compiler-6.0, + crypto-3.6, debugger-4.1, erts-7.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.4, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.27.README.txt b/release-notes/OTP-22.3.4.27.README.txt new file mode 100644 index 0000000..3fc578b --- /dev/null +++ b/release-notes/OTP-22.3.4.27.README.txt @@ -0,0 +1,145 @@ +Patch Package: OTP 22.3.4.27 +Git Tag: OTP-22.3.4.27 +Date: 2024-03-18 +Trouble Report Id: OTP-18169, OTP-18170, OTP-18175, OTP-18197, + OTP-18258, OTP-18897, OTP-19002 +Seq num: ERIERL-1041, GH-6165, GH-6309, PR-6134, + PR-6135, PR-6142, PR-6213, PR-6324 +System: OTP +Release: 22 +Application: erts-10.7.2.19, ssh-4.9.1.5 +Predecessor: OTP 22.3.4.26 + + Check out the git tag OTP-22.3.4.27, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18897 Application(s): ssh + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH User's Guide. + + + --------------------------------------------------------------------- + --- erts-10.7.2.19 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.19 application *cannot* be applied + independently of other applications on an arbitrary OTP 22 + installation. + + On a full OTP 22 installation, also the following runtime + dependency has to be satisfied: + -- kernel-6.5.2.5 (first satisfied in OTP 22.3.4.25) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18169 Application(s): erts + Related Id(s): PR-6134 + + A race could cause process_info(Pid, message_queue_len) + on other processes to return invalid results. + + + OTP-18170 Application(s): erts + Related Id(s): PR-6135 + + Fixed reduction counting for handling process system + tasks. + + + OTP-18175 Application(s): erts + Related Id(s): PR-6142 + + Priority elevation of terminating processes did not + work which could cause execution of such processes to + be delayed. + + + OTP-18197 Application(s): erts + Related Id(s): GH-6165, PR-6213 + + The erlang:monotonic_time/1, erlang:system_time/1, + erlang:time_offset/1, and os:system_time/1 BIFs + erroneously failed when passed the argument native. + + + OTP-18258 Application(s): erts + Related Id(s): GH-6309, PR-6324 + + Notifications about available distribution data sent to + distribution controller processes could be lost. + Distribution controller processes can be used when + implementing an alternative distribution carrier. The + default distribution over tcp was not effected and the + bug was also not present on x86/x86_64 platforms. + + + Full runtime dependencies of erts-10.7.2.19: kernel-6.5.2.5, + sasl-3.3, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.9.1.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.9.1.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 22 installation. + + On a full OTP 22 installation, also the following runtime + dependency has to be satisfied: + -- crypto-4.6.4 (first satisfied in OTP 22.2.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18897 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH User's Guide. + + + OTP-19002 Application(s): ssh + Related Id(s): ERIERL-1041 + + With this change, KEX strict terminal message is + emitted with debug verbosity. + + + Full runtime dependencies of ssh-4.9.1.5: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.7.5.README.txt b/release-notes/OTP-23.2.7.5.README.txt new file mode 100644 index 0000000..bc6f40e --- /dev/null +++ b/release-notes/OTP-23.2.7.5.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 23.2.7.5 +Git Tag: OTP-23.2.7.5 +Date: 2022-06-22 +Trouble Report Id: OTP-18145 +Seq num: +System: OTP +Release: 23 +Application: ssl-10.2.4.4 +Predecessor: OTP 23.2.7.4 + + Check out the git tag OTP-23.2.7.5, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- ssl-10.2.4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.2.4.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18145 Application(s): ssl + + Improved handling of unexpected messages during the + handshake, taking the right action for unexpected + messages. + + + Full runtime dependencies of ssl-10.2.4.4: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.15.README.txt b/release-notes/OTP-23.3.4.15.README.txt new file mode 100644 index 0000000..b793170 --- /dev/null +++ b/release-notes/OTP-23.3.4.15.README.txt @@ -0,0 +1,145 @@ +Patch Package: OTP 23.3.4.15 +Git Tag: OTP-23.3.4.15 +Date: 2022-06-21 +Trouble Report Id: OTP-17858, OTP-18093, OTP-18094, OTP-18123, + OTP-18144, OTP-18145, OTP-18152 +Seq num: ERIERL-728, GH-5981, GH-5994 +System: OTP +Release: 23 +Application: crypto-4.9.0.3, erts-11.2.2.14, ssh-4.11.1.6, + ssl-10.3.1.3 +Predecessor: OTP 23.3.4.14 + + Check out the git tag OTP-23.3.4.15, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-4.9.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.9.0.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17858 Application(s): crypto + Related Id(s): ERIERL-728 + + Fix timing bug in ensure_engine_loaded + + When two ensure_engine_loaded() calls were done in + parallel there was a possibility that a crypto lib + function was called by both instead of just one of them + which resulted in an error. This is solved by moving + the implementation from erlang down into a NIF function + that uses a mutex to protect the sensitive part. + + + OTP-18152 Application(s): crypto + + Remove all references correctly in the garbage + collection if an engine handle was not explicit + unloaded. + + + Full runtime dependencies of crypto-4.9.0.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-11.2.2.14 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.14 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18093 Application(s): erts + Related Id(s): OTP-18104, PR-5987 + + Accept funs (NEW_FUN_EXT) with incorrectly encoded size + field. This is a workaround for a bug (OTP-18104) + existing in OTP 23 and 24 that could cause incorrect + size fields in certain cases. The emulator does not use + the decoded size field, but erl_interface still does + and is not helped by this workaround. + + + OTP-18123 Application(s): erts + Related Id(s): GH-5994 + + The zlib built in to the runtime system has been + updated to version 1.2.12. (Note that on most + platforms, the platform's own zlib is used.) + + + OTP-18144 Application(s): erts + Related Id(s): GH-5981 + + Fixed emulator crash that could happen during crashdump + generation of ETS tables with options ordered_set and + {write_concurrency,true}. + + + Full runtime dependencies of erts-11.2.2.14: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.6 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18094 Application(s): ssh + + Binaries can be limited in logs with the parameter + max_log_item_len. The default value is 500 bytes. + + + Full runtime dependencies of ssh-4.11.1.6: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.3.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.3.1.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 23 installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18145 Application(s): ssl + + Improved handling of unexpected messages during the + handshake, taking the right action for unexpected + messages. + + + Full runtime dependencies of ssl-10.3.1.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.16.README.txt b/release-notes/OTP-23.3.4.16.README.txt new file mode 100644 index 0000000..a4bb7dd --- /dev/null +++ b/release-notes/OTP-23.3.4.16.README.txt @@ -0,0 +1,205 @@ +Patch Package: OTP 23.3.4.16 +Git Tag: OTP-23.3.4.16 +Date: 2022-07-13 +Trouble Report Id: OTP-18104, OTP-18172, OTP-18173 +Seq num: ERIERL-826 +System: OTP +Release: 23 +Application: crypto-4.9.0.4, erts-11.2.2.15, ssl-10.3.1.4 +Predecessor: OTP 23.3.4.15 + + Check out the git tag OTP-23.3.4.16, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + --------------------------------------------------------------------- + --- crypto-4.9.0.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.9.0.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + Full runtime dependencies of crypto-4.9.0.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-11.2.2.15 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.15 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18104 Application(s): erts + Related Id(s): OTP-18093 + + Fix faulty distribution encoding of terms with either + + -- a fun with bit-string or export-fun in its + environment when encoded toward a not yet established + (pending) connection + + -- or a fun with a binary/bitstring, in its + environment, referring to an off-heap binary (larger + than 64 bytes). + + The symptom could be failed decoding on the receiving + side leading to aborted connection. Fix OTP-18093 is a + workaround for theses bugs that makes the VM accepts + such faulty encoded funs. + + The first encoding bug toward pending connection exists + only in OTP 23 and 24, but the second one exists also + on OTP 25. + + + Full runtime dependencies of erts-11.2.2.15: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.3.1.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.3.1.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 23 installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18173 Application(s): ssl + + The link to crypto:engine_load refered the function + with wrong arity. + + + Full runtime dependencies of ssl-10.3.1.4: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.17.README.txt b/release-notes/OTP-23.3.4.17.README.txt new file mode 100644 index 0000000..3590189 --- /dev/null +++ b/release-notes/OTP-23.3.4.17.README.txt @@ -0,0 +1,230 @@ +Patch Package: OTP 23.3.4.17 +Git Tag: OTP-23.3.4.17 +Date: 2022-09-05 +Trouble Report Id: OTP-18164, OTP-18169, OTP-18170, OTP-18175, + OTP-18177, OTP-18193, OTP-18197, OTP-18198, + OTP-18222, OTP-18224 +Seq num: GH-6122, GH-6129, GH-6165, GH-6242 +System: OTP +Release: 23 +Application: erts-11.2.2.16, inets-7.3.2.3, + kernel-7.3.1.6, ssl-10.3.1.5 +Predecessor: OTP 23.3.4.16 + + Check out the git tag OTP-23.3.4.17, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-11.2.2.16 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.16 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18164 Application(s): erts + Related Id(s): PR-6114 + + Distributed exit signals could be lost under the + following conditions: + + -- An exit signal from a parent process to a child + process was lost if: + + -- the parent process terminated before the spawn + request that created the child had completed, + + -- the spawn request set up a link between parent and + child + + -- the spawn request was distributed, and + + -- the exit reason was larger than one machine word. + + -- Loss of a connection over which a not yet completed + spawn request was ongoing could cause loss of exit + signals. Such loss of exit signals was very rare. + Besides the above described connection loss also the + following conditions had to be satisfied: + + -- The spawn request that was interrupted by the + connection loss also had to set up a link between the + parent process and the child process. + + -- The parent process that issued the spawn request + also had to be terminating while the spawn request was + interrupted by the connection loss. + + -- The same parent process also had to have made other + spawn requests to other nodes than to the node to which + the connection was lost. + + -- These spawn requests to the other nodes also had to + set up links. + + -- These spawn requests to the other nodes also had to + be not yet completed at the time of the connection + loss. That is, the spawn reply from the child process + had not yet reached the parent process. + + If all the conditions above were met, exit signals to + the children spawned due to the above described spawn + requests to other nodes *could* be lost. + + The above bug also caused a significant memory leak + when it was triggered since the destruction of the + parent process never completed. + + + OTP-18169 Application(s): erts + Related Id(s): PR-6134 + + A race could cause process_info(Pid, message_queue_len) + on other processes to return invalid results. + + + OTP-18170 Application(s): erts + Related Id(s): PR-6135 + + Fixed reduction counting for handling process system + tasks. + + + OTP-18175 Application(s): erts + Related Id(s): PR-6142 + + Priority elevation of terminating processes did not + work which could cause execution of such processes to + be delayed. + + + OTP-18177 Application(s): erts + Related Id(s): PR-6150 + + An unlink operation made by a process that terminated + before the unlink operation completed, i.e., before it + had received an unlink-ack signal from the linked + process, caused an exit signal to erroneously be sent + from the terminating process to the process being + unlinked. This exit signal would most often be ignored + by the receiver, but if the receiver of the exit signal + concurrently set up a new link, it could receive the + exit signal with the actual exit reason of the + terminating process instead of a noproc exit reason. It + is however very hard to detect that this has happened + and has no obvious negative consequences, so it should + be considered harmless. + + A distributed unlink-ack signal received by a + terminating process was also not properly removed which + could cause a minor memory leak. + + + OTP-18197 Application(s): erts + Related Id(s): GH-6165, PR-6213 + + The erlang:monotonic_time/1, erlang:system_time/1, + erlang:time_offset/1, and os:system_time/1 BIFs + erroneously failed when passed the argument native. + + + OTP-18222 Application(s): erts + Related Id(s): GH-6242, PR-6248 + + Fix writing and reading of more than 2 GB in a single + read/write operation on macOS. Before this fix + attempting to read/write more than 2GB would result in + {error,einval}. + + + Full runtime dependencies of erts-11.2.2.16: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.3.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3.2.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-18193 Application(s): inets + Related Id(s): GH-6122 + + Remove documentation of no longer supported callback. + + + Full runtime dependencies of inets-7.3.2.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-7.3.1.6 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-7.3.1.6 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- erts-11.2.2.11 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18198 Application(s): kernel + Related Id(s): GH-6129, PR-6216 + + A call to net_kernel:setopts(new, Opts) at the same + time as a connection was being set up could cause a + deadlock between the net_kernel process and the process + setting up the connection. + + + Full runtime dependencies of kernel-7.3.1.6: erts-11.2.2.11, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.3.1.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.3.1.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 23 installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18224 Application(s): ssl + + Correct corner case of unexpected message handling for + pre TLS-1.3 versions, could cause "late failure" and + make the server dependent on its handshake timeout to + prevent possible DoS attacks. + + + Full runtime dependencies of ssl-10.3.1.5: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.18.README.txt b/release-notes/OTP-23.3.4.18.README.txt new file mode 100644 index 0000000..4a28010 --- /dev/null +++ b/release-notes/OTP-23.3.4.18.README.txt @@ -0,0 +1,98 @@ +Patch Package: OTP 23.3.4.18 +Git Tag: OTP-23.3.4.18 +Date: 2022-10-04 +Trouble Report Id: OTP-18232, OTP-18258, OTP-18263 +Seq num: ERIERL-821, GH-6309 +System: OTP +Release: 23 +Application: dialyzer-4.3.1.2, erts-11.2.2.17, + kernel-7.3.1.7 +Predecessor: OTP 23.3.4.17 + + Check out the git tag OTP-23.3.4.18, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- dialyzer-4.3.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The dialyzer-4.3.1.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-18263 Application(s): dialyzer + Related Id(s): ERIERL-821 + + The --input_list_file option has been added. + + + Full runtime dependencies of dialyzer-4.3.1.2: compiler-7.0, + erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, + wx-1.2 + + + --------------------------------------------------------------------- + --- erts-11.2.2.17 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.17 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18258 Application(s): erts + Related Id(s): GH-6309, PR-6324 + + Notifications about available distribution data sent to + distribution controller processes could be lost. + Distribution controller processes can be used when + implementing an alternative distribution carrier. The + default distribution over tcp was not effected and the + bug was also not present on x86/x86_64 platforms. + + + Full runtime dependencies of erts-11.2.2.17: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-7.3.1.7 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-7.3.1.7 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- erts-11.2.2.11 (first satisfied in OTP 23.3.4.12) + + + --- Improvements and New Features --- + + OTP-18232 Application(s): kernel + Related Id(s): OTP-17843, PR-6264 + + A new function global:disconnect/0 has been introduced + with which one can cleanly disconnect a node from all + other nodes in a cluster of global nodes. + + + Full runtime dependencies of kernel-7.3.1.7: erts-11.2.2.11, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.19.README.txt b/release-notes/OTP-23.3.4.19.README.txt new file mode 100644 index 0000000..8e691ce --- /dev/null +++ b/release-notes/OTP-23.3.4.19.README.txt @@ -0,0 +1,217 @@ +Patch Package: OTP 23.3.4.19 +Git Tag: OTP-23.3.4.19 +Date: 2023-06-08 +Trouble Report Id: OTP-18321, OTP-18325, OTP-18365, OTP-18388, + OTP-18421, OTP-18463, OTP-18470, OTP-18525, + OTP-18570, OTP-18595 +Seq num: ERIERL-944, GH-6465, GH-6466, GH-6873 +System: OTP +Release: 23 +Application: compiler-7.6.9.3, erts-11.2.2.18, + stdlib-3.14.2.3, xmerl-1.3.27.1 +Predecessor: OTP 23.3.4.18 + + Check out the git tag OTP-23.3.4.19, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-7.6.9.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.6.9.3 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + OTP-18365 Application(s): compiler + + Fixed a bug that could cause legal code to fail + validation. + + + OTP-18470 Application(s): compiler + Related Id(s): GH-6873, PR-6877 + + The compiler would generate incorrect code for the + following type of expression: + + Pattern = BoundVar1 = . . . = BoundVarN = Expression + + An exception should be raised if any of the bound + variables have different values than Expression. The + compiler would generate code that would cause the bound + variables to be bound to the value of Expressionwhether + the value matched or not. + + + Full runtime dependencies of compiler-7.6.9.3: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-11.2.2.18 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.18 application *cannot* be applied + independently of other applications on an arbitrary OTP 23 + installation. + + On a full OTP 23 installation, also the following runtime + dependency has to be satisfied: + -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18321 Application(s): erts + + Fix list_to_atom/1 for negative code points. Could + either return with a positive code point or fail with + an incorrect exception. + + + OTP-18388 Application(s): erts + Related Id(s): OTP-17462, PR-6662 + + A race condition which was very rarely triggered could + cause the signal queue of a process to become + inconsistent causing the runtime system to crash. + + + OTP-18421 Application(s): erts + Related Id(s): PR-6806 + + process_info(Pid, status) when Pid /= self() could + return an erroneous result. + + + OTP-18463 Application(s): erts + Related Id(s): PR-6858 + + In rare circumstances, when a process exceeded its + allowed heap size set by option max_heap_size, it would + not be killed as it should be, but instead enter a kind + of zombie state it would never get out of. + + + OTP-18525 Application(s): erts + Related Id(s): PR-7049 + + Implementations of the call() driver callback that + returned a faulty encoded result could cause a memory + leak and could cause invalid data on the heap of the + processes calling erlang:port_call/3. + + + OTP-18570 Application(s): erts + Related Id(s): PR-7190 + + If a runtime system which was starting the distribution + already had existing pids, ports, or references + referring to a node with the same nodename/creation + pair that the runtime system was about to use, these + already existing pids, ports, or references would not + work as expected in various situations after the node + had gone alive. This could only occur if the runtime + system was communicated such pids, ports, or references + prior to the distribution was started. That is, it was + extremely unlikely to happen unless the distribution + was started dynamically and was even then very unlikely + to happen. The runtime system now checks for already + existing pids, ports, and references with the same + nodename/creation pair that it is about to use. If such + are found another creation will be chosen in order to + avoid these issues. + + + Full runtime dependencies of erts-11.2.2.18: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- stdlib-3.14.2.3 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14.2.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + Full runtime dependencies of stdlib-3.14.2.3: compiler-5.0, + crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.27.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.27.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18595 Application(s): xmerl + Related Id(s): ERIERL-944 + + New options to xmerl_scan and xmerl_sax_parser so one + can limit the behaviour of the parsers to avoid some + XML security issues. + + xmerl_scan gets one new option: + + -- {allow_entities, Boolean} -- Gives the possibility + to disallow entities by setting this option to false + (true is default) + + xmerl_sax_parser gets the following options: + + -- disallow_entities -- Don't allow entities in + document + + -- {entity_recurse_limit, N} -- Set a limit on entity + recursion depth (default is 3) + + -- {external_entities, AllowedType} -- Specify which + types of external entities that are allowed, this also + affect external DTD's. The types are all(default), file + and none + + -- {fail_undeclared_ref, Boolean} -- Sets the behavior + for undeclared references due to an external file is + not parsed (true is default) + + The old option skip_external_dtd is still valid and the + same as {external_entities, none} and + {fail_undeclared_ref, false} but just affects DTD's and + not other external references. + + + Full runtime dependencies of xmerl-1.3.27.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.20.README.txt b/release-notes/OTP-23.3.4.20.README.txt new file mode 100644 index 0000000..1a5d3e9 --- /dev/null +++ b/release-notes/OTP-23.3.4.20.README.txt @@ -0,0 +1,78 @@ +Patch Package: OTP 23.3.4.20 +Git Tag: OTP-23.3.4.20 +Date: 2024-03-18 +Trouble Report Id: OTP-18897, OTP-19002 +Seq num: ERIERL-1041 +System: OTP +Release: 23 +Application: ssh-4.11.1.7 +Predecessor: OTP 23.3.4.19 + + Check out the git tag OTP-23.3.4.20, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18897 Application(s): ssh + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH User's Guide. + + + --------------------------------------------------------------------- + --- ssh-4.11.1.7 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18897 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH User's Guide. + + + OTP-19002 Application(s): ssh + Related Id(s): ERIERL-1041 + + With this change, KEX strict terminal message is + emitted with debug verbosity. + + + Full runtime dependencies of ssh-4.11.1.7: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.1.README.txt b/release-notes/OTP-24.3.4.1.README.txt new file mode 100644 index 0000000..22a204c --- /dev/null +++ b/release-notes/OTP-24.3.4.1.README.txt @@ -0,0 +1,188 @@ +Patch Package: OTP 24.3.4.1 +Git Tag: OTP-24.3.4.1 +Date: 2022-06-08 +Trouble Report Id: OTP-17858, OTP-18085, OTP-18087, OTP-18092, + OTP-18093, OTP-18094, OTP-18100, OTP-18123, + OTP-18128, OTP-18129 +Seq num: ERIERL-728, GH-5950, GH-5961, GH-5985, + GH-5994 +System: OTP +Release: 24 +Application: crypto-5.0.6.1, erts-12.3.2.1, + mnesia-4.20.4.1, ssh-4.13.2.1, ssl-10.7.3.1 +Predecessor: OTP 24.3.4 + + Check out the git tag OTP-24.3.4.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-5.0.6.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.6.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17858 Application(s): crypto + Related Id(s): ERIERL-728 + + Fix timing bug in ensure_engine_loaded + + When two ensure_engine_loaded() calls were done in + parallel there was a possibility that a crypto lib + function was called by both instead of just one of them + which resulted in an error. This is solved by moving + the implementation from erlang down into a NIF function + that uses a mutex to protect the sensitive part. + + + Full runtime dependencies of crypto-5.0.6.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-12.3.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18093 Application(s): erts + Related Id(s): OTP-18104, PR-5987 + + Accept funs (NEW_FUN_EXT) with incorrectly encoded size + field. This is a workaround for a bug (OTP-18104) + existing in OTP 23 and 24 that could cause incorrect + size fields in certain cases. The emulator does not use + the decoded size field, but erl_interface still does + and is not helped by this workaround. + + + OTP-18123 Application(s): erts + Related Id(s): GH-5994 + + The zlib built in to the runtime system has been + updated to version 1.2.12. (Note that on most + platforms, the platform's own zlib is used.) + + + Full runtime dependencies of erts-12.3.2.1: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.20.4.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.4.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18128 Application(s): mnesia + Related Id(s): PR-6013 + + Fixed add_table_copy which could leave a table lock if + the receiving node went down during the operation. + + + Full runtime dependencies of mnesia-4.20.4.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ssh-4.13.2.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13.2.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18094 Application(s): ssh + + Binaries can be limited in logs with the parameter + max_log_item_len. The default value is 500 bytes. + + + Full runtime dependencies of ssh-4.13.2.1: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18087 Application(s): ssl + Related Id(s): GH-5961 + + When a TLS-1.3 enabled client tried to talk to a + TLS-1.2 server that coalesces TLS-1.2 handshake message + over one TLS record, the connection could fail due to + some message being handled in the wrong state, this has + been fixed. + + + OTP-18092 Application(s): ssl + Related Id(s): PR-5959 + + Fixed tls-1.3 session ticket lifetime which was + discarded to quickly before. + + + OTP-18100 Application(s): ssl + Related Id(s): GH-5985 + + Correctly handles supported protocol version change + from default to something else by sni_fun supplied to + ssl:handshake/[2,3] together with a TCP-socket (so + called upgrade). + + + OTP-18129 Application(s): ssl + Related Id(s): GH-5950 + + Also, TLS-1.3 should respond with a protocol version + alert if previous versions, that are supported but not + configured, are attempted. + + + --- Improvements and New Features --- + + OTP-18085 Application(s): ssl + + Enhance handling of handshake decoding errors, + especially for certificate authorities extension to + ensure graceful termination. + + + Full runtime dependencies of ssl-10.7.3.1: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.10.README.txt b/release-notes/OTP-24.3.4.10.README.txt new file mode 100644 index 0000000..449dbba --- /dev/null +++ b/release-notes/OTP-24.3.4.10.README.txt @@ -0,0 +1,87 @@ +Patch Package: OTP 24.3.4.10 +Git Tag: OTP-24.3.4.10 +Date: 2023-03-17 +Trouble Report Id: OTP-18422, OTP-18496, OTP-18509 +Seq num: ERIERL-873, GH-6947 +System: OTP +Release: 24 +Application: erts-12.3.2.10, inets-7.5.3.3, snmp-5.12.0.3 +Predecessor: OTP 24.3.4.9 + + Check out the git tag OTP-24.3.4.10, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-12.3.2.10 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.10 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18496 Application(s): erts + Related Id(s): GH-6947, PR-6953 + + Active process aliases of a process at its termination + leaked memory. + + + Full runtime dependencies of erts-12.3.2.10: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.3.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.3.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18509 Application(s): inets + Related Id(s): OTP-18476 + + Correct timing related pipelining/keepalive queue bug, + that could result in unexpected "socket_remotly_closed" + errors. + + + Full runtime dependencies of inets-7.5.3.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- snmp-5.12.0.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.12.0.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-18422 Application(s): snmp + Related Id(s): ERIERL-873 + + Attempts to minimize the number of the error reports + during a failed agent init. + + + Full runtime dependencies of snmp-5.12.0.3: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.11.README.txt b/release-notes/OTP-24.3.4.11.README.txt new file mode 100644 index 0000000..28896a5 --- /dev/null +++ b/release-notes/OTP-24.3.4.11.README.txt @@ -0,0 +1,136 @@ +Patch Package: OTP 24.3.4.11 +Git Tag: OTP-24.3.4.11 +Date: 2023-04-21 +Trouble Report Id: OTP-18243, OTP-18343, OTP-18525, OTP-18545, + OTP-18550, OTP-18557 +Seq num: ERIERL-928, ERIERL-937, GH-6247, GH-6496 +System: OTP +Release: 24 +Application: erts-12.3.2.11, inets-7.5.3.4, ssl-10.7.3.7 +Predecessor: OTP 24.3.4.10 + + Check out the git tag OTP-24.3.4.11, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-12.3.2.11 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.11 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18243 Application(s): erts + Related Id(s): GH-6247, PR-6258 + + Fix bug sometimes causing emulator crash at node + shutdown when there are pending connections. Only seen + when running duel distribution protocols, inet_drv and + inet_tls_dist. + + + OTP-18343 Application(s): erts + Related Id(s): GH-6496 + + Fix bug in binary_to_term (and distributed receive) + when decoding a large map (>32 keys) with unsorted + small maps (<= 32) as keys of the large map. + + This was only a problem if the term was encoded by + erl_interface, jinterface or otherwise, as the VM + itself always encodes small maps with sorted keys. + + The "binary_to_term" would appear as successful but the + created large map was internally inconsistent. The + smaller key-maps could not be found with maps:get and + friends. Other operations such as map compare and merge + could probably also give incorrect results. + + + OTP-18525 Application(s): erts + Related Id(s): PR-7049 + + Implementations of the call() driver callback that + returned a faulty encoded result could cause a memory + leak and could cause invalid data on the heap of the + processes calling erlang:port_call/3. + + + OTP-18557 Application(s): erts + Related Id(s): OTP-18496, PR-7131 + + Aliases created in combination with a monitor using the + {alias, explicit_unalias} option stopped working from + remote nodes when a 'DOWN' signal had been received due + to the monitor or if the monitor was removed using the + erlang:demonitor() BIF. + + This bug was introduced in OTP 24.3.4.10 and OTP 25.3. + + + Full runtime dependencies of erts-12.3.2.11: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.3.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.3.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18545 Application(s): inets + Related Id(s): ERIERL-928, ERIERL-937, OTP-18509 + + With this change, upon remote socket closure current + request is added to a retried queue (either pipeline or + keep_alive, but not both). + + + Full runtime dependencies of inets-7.5.3.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.7 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.7 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18550 Application(s): ssl + + Client signature algorithm list input order is now + honored again , it was accidently reversed by a + previous fix. + + + Full runtime dependencies of ssl-10.7.3.7: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.12.README.txt b/release-notes/OTP-24.3.4.12.README.txt new file mode 100644 index 0000000..0ed8b1e --- /dev/null +++ b/release-notes/OTP-24.3.4.12.README.txt @@ -0,0 +1,181 @@ +Patch Package: OTP 24.3.4.12 +Git Tag: OTP-24.3.4.12 +Date: 2023-05-30 +Trouble Report Id: OTP-18556, OTP-18560, OTP-18569, OTP-18570, + OTP-18593, OTP-18595, OTP-18597 +Seq num: ERIERL-944, GH-7252 +System: OTP +Release: 24 +Application: compiler-8.1.1.4, erts-12.3.2.12, + stdlib-3.17.2.3, xmerl-1.3.28.1 +Predecessor: OTP 24.3.4.11 + + Check out the git tag OTP-24.3.4.12, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.1.1.4 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.1.1.4 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18593 Application(s): compiler + Related Id(s): GH-7252 + + Complex guard expression using the or operator and + guard BIFs that can fail could sometimes be miscompiled + so that the guard would succeed even if a call to a + guard BIF failed. + + + Full runtime dependencies of compiler-8.1.1.4: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-12.3.2.12 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.12 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18560 Application(s): erts + + In rare circumstances, bit syntax matching of an + invalid code point for a utf32 would crash the runtime + system. + + + OTP-18570 Application(s): erts + Related Id(s): PR-7190 + + If a runtime system which was starting the distribution + already had existing pids, ports, or references + referring to a node with the same nodename/creation + pair that the runtime system was about to use, these + already existing pids, ports, or references would not + work as expected in various situations after the node + had gone alive. This could only occur if the runtime + system was communicated such pids, ports, or references + prior to the distribution was started. That is, it was + extremely unlikely to happen unless the distribution + was started dynamically and was even then very unlikely + to happen. The runtime system now checks for already + existing pids, ports, and references with the same + nodename/creation pair that it is about to use. If such + are found another creation will be chosen in order to + avoid these issues. + + + OTP-18597 Application(s): erts + + Constructing a binary segment not aligned with a byte + boundary, with a size not fitting in 31 bits, and with + a value not fitting in a 64-bit word could crash the + runtime system. + + + --- Improvements and New Features --- + + OTP-18569 Application(s): erts + + Further robustify implementation of large maps (> 32 + keys). Keys that happen to have same internal 32-bit + hash values are now put in collision nodes which are + traversed with linear search. This removes the demand + for the internal hash function when salted to + eventually produce different hashes for all possible + pairs of unequal terms. + + + Full runtime dependencies of erts-12.3.2.12: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- stdlib-3.17.2.3 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.2.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-18556 Application(s): stdlib + + Static supervisors are very idle processes after they + have started so they will now be hibernated after start + to improve resource management. + + + Full runtime dependencies of stdlib-3.17.2.3: compiler-5.0, + crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.28.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.28.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18595 Application(s): xmerl + Related Id(s): ERIERL-944 + + New options to xmerl_scan and xmerl_sax_parser so one + can limit the behaviour of the parsers to avoid some + XML security issues. + + xmerl_scan gets one new option: + + -- {allow_entities, Boolean} -- Gives the possibility + to disallow entities by setting this option to false + (true is default) + + xmerl_sax_parser gets the following options: + + -- disallow_entities -- Don't allow entities in + document + + -- {entity_recurse_limit, N} -- Set a limit on entity + recursion depth (default is 3) + + -- {external_entities, AllowedType} -- Specify which + types of external entities that are allowed, this also + affect external DTD's. The types are all(default), file + and none + + -- {fail_undeclared_ref, Boolean} -- Sets the behavior + for undeclared references due to an external file is + not parsed (true is default) + + The old option skip_external_dtd is still valid and the + same as {external_entities, none} and + {fail_undeclared_ref, false} but just affects DTD's and + not other external references. + + + Full runtime dependencies of xmerl-1.3.28.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.13.README.txt b/release-notes/OTP-24.3.4.13.README.txt new file mode 100644 index 0000000..3dea948 --- /dev/null +++ b/release-notes/OTP-24.3.4.13.README.txt @@ -0,0 +1,185 @@ +Patch Package: OTP 24.3.4.13 +Git Tag: OTP-24.3.4.13 +Date: 2023-06-29 +Trouble Report Id: OTP-18617, OTP-18618, OTP-18620, OTP-18643, + OTP-18644, OTP-18659 +Seq num: ERIERL-932, GH-7336, GH-7338 +System: OTP +Release: 24 +Application: compiler-8.1.1.5, debugger-5.2.1.1, + erts-12.3.2.13, ssh-4.13.2.3, ssl-10.7.3.8, + stdlib-3.17.2.4 +Predecessor: OTP 24.3.4.12 + + Check out the git tag OTP-24.3.4.13, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.1.1.5 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.1.1.5 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18617 Application(s): compiler + Related Id(s): GH-7338 + + The compiler could be very slow when compiling guards + with multiple guard tests separated with 'or' or ';'. + + + Full runtime dependencies of compiler-8.1.1.5: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- debugger-5.2.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The debugger-5.2.1.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18644 Application(s): debugger + Related Id(s): GH-7336 + + The call int:no_break(Module) did not remove any + breakpoints. + + + Full runtime dependencies of debugger-5.2.1.1: compiler-8.0, + erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-12.3.2.13 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.13 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + Full runtime dependencies of erts-12.3.2.13: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.13.2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13.2.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18620 Application(s): ssh + Related Id(s): OTP-18386, PR-6611 + + With this change, error logging related crashes in + ssh_connection_handler module are fixed. + + + Full runtime dependencies of ssh-4.13.2.3: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.8 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.8 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18643 Application(s): ssl + Related Id(s): ERIERL-932 + + Added keylog information to all protocol versions in + ssl:connection_information/2. + + + --- Improvements and New Features --- + + OTP-18618 Application(s): ssl + Related Id(s): ERIERL-932 + + Add RFC-6083 considerations for DTLS to enable gen_sctp + based callback for the transport. + + + Full runtime dependencies of ssl-10.7.3.8: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --- stdlib-3.17.2.4 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.2.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + Full runtime dependencies of stdlib-3.17.2.4: compiler-5.0, + crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.14.README.txt b/release-notes/OTP-24.3.4.14.README.txt new file mode 100644 index 0000000..b5a35b8 --- /dev/null +++ b/release-notes/OTP-24.3.4.14.README.txt @@ -0,0 +1,205 @@ +Patch Package: OTP 24.3.4.14 +Git Tag: OTP-24.3.4.14 +Date: 2023-10-12 +Trouble Report Id: OTP-18670, OTP-18707, OTP-18711, OTP-18712, + OTP-18718, OTP-18732, OTP-18752, OTP-18790, + OTP-18797 +Seq num: ERIERL-963, GH-7431, GH-7436, GH-7444, + GH-7546, GH-7683 +System: OTP +Release: 24 +Application: crypto-5.0.6.4, erts-12.3.2.14, + kernel-8.3.2.4, mnesia-4.20.4.3, + public_key-1.12.0.2, ssl-10.7.3.9 +Predecessor: OTP 24.3.4.13 + + Check out the git tag OTP-24.3.4.14, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-5.0.6.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.6.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18670 Application(s): crypto + Related Id(s): GH-7436, PR-7450 + + Fix VM crash caused by crypto being purged and reloaded + (by init:restart for example) on OS with musl libc + (such as Alpine linux). + + + Full runtime dependencies of crypto-5.0.6.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-12.3.2.14 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.14 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18732 Application(s): erts + Related Id(s): GH-7444, PR-7458 + + Fix bug causing "magic" references in a compressed ETS + table to not keep the referred object alive. The + symptom would be the referred object being garbage + collected prematurely and the reference appearing + stale, not referring to anything. Examples of such + magically referred objects are atomics and NIF + resources. + + + OTP-18752 Application(s): erts + Related Id(s): PR-7633 + + The cleanup operation of not yet delivered signals to a + terminated process yielded excessively. + + + OTP-18790 Application(s): erts + Related Id(s): PR-7742 + + If the external term format encoding of an argument + list part of a distributed spawn operation was faulty, + the newly spawned remote process could misbehave. The + misbehavior included hanging or interpret an incoming + message as an argument list to use. This was very + unlikely to happen unless using an alternate + implementation of the distribution protocol which made + a faulty encoding of the argument list. The child + process will now detect this error and terminate before + executing the user specified code. + + + OTP-18797 Application(s): erts + Related Id(s): GH-7683, PR-7712 + + Fix bugs where if the body of a matchspec would return + a map with a variable ('$1', '$_' etc) as one of the + keys or values and the variable was not an immidiate, + the term would not be copied to the receiving processes + heap. This would later corrupt the term in the table as + the GC could place move markers in it, which in turn + would cause the VM to crash. + + Bug has been present for since OTP 17.0. + + + Full runtime dependencies of erts-12.3.2.14: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.3.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.3.2.4 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18707 Application(s): kernel + Related Id(s): #7530 + + gen_tcp:connect with socket address and socket (inet-) + backend fails because of missing callback function. + + + Full runtime dependencies of kernel-8.3.2.4: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.20.4.3 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.4.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18711 Application(s): mnesia + Related Id(s): ERIERL-963 + + Do not delete old backup file if the new backup fails. + + + Full runtime dependencies of mnesia-4.20.4.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.12.0.2 --------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.12.0.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18718 Application(s): public_key + Related Id(s): GH-7546 + + Country name comparison shall be case insensitive + + + Full runtime dependencies of public_key-1.12.0.2: asn1-3.0, + crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.9 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.9 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18712 Application(s): ssl + Related Id(s): GH-7431 + + When a client initiated renegotiation was rejected and + the client socket was in active mode the expected error + message to the controlling process was not sent. + + + Full runtime dependencies of ssl-10.7.3.9: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.15.README.txt b/release-notes/OTP-24.3.4.15.README.txt new file mode 100644 index 0000000..8ef2b53 --- /dev/null +++ b/release-notes/OTP-24.3.4.15.README.txt @@ -0,0 +1,218 @@ +Patch Package: OTP 24.3.4.15 +Git Tag: OTP-24.3.4.15 +Date: 2023-12-18 +Trouble Report Id: OTP-18802, OTP-18830, OTP-18844, OTP-18850, + OTP-18869, OTP-18877, OTP-18885, OTP-18896, + OTP-18897, OTP-18899, OTP-18902 +Seq num: GH-7571, GH-7834, GH-7890 +System: OTP +Release: 24 +Application: asn1-5.0.18.2, erl_interface-5.2.2.1, + erts-12.3.2.15, mnesia-4.20.4.4, ssh-4.13.2.4 +Predecessor: OTP 24.3.4.14 + + Check out the git tag OTP-24.3.4.15, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18897 Application(s): ssh + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + --------------------------------------------------------------------- + --- OTP-24.3.4.15 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18896 Application(s): otp + + Updated copyright and license information. + + + --------------------------------------------------------------------- + --- asn1-5.0.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.18.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18844 Application(s): asn1 + + Fix benign warning from gcc 11 about mismatching call + to free(). + + + Full runtime dependencies of asn1-5.0.18.2: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- erl_interface-5.2.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.2.2.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + --------------------------------------------------------------------- + --- erts-12.3.2.15 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.15 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18802 Application(s): erts + + Fix faulty debug assert when page size is larger than + 16kb, like on PowerPC. Did crash debug VM directly at + start. + + + OTP-18885 Application(s): erts + Related Id(s): GH-7834, GH-7890, PR-7915 + + On OTP 24 and OTP 25, incoming distributed messages + larger than 64 KiB sent using an alias leaked memory if + the alias had been removed prior to entering the node. + This issue was not present on OTP 26. + + Incoming distributed messages larger than 64 KiB sent + using an alias which had been removed on the receiving + node could crash the node. This crash was quite + unlikely on OTP 24 and OTP 25, but very likely on OTP + 26. + + 'DOWN' signals with exit reason larger than 64 KiB + directed towards a process on a node with a not + matching creation leaked memory on the receiving node. + Such signals should however be very rare. + + + OTP-18902 Application(s): erts + + Removed unnecessary PCRE source tar-ball. + + + --- Improvements and New Features --- + + OTP-18830 Application(s): erts + Related Id(s): PR-7823 + + Removed unnecessary regexp library used when generating + yielding BIFs. + + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + OTP-18899 Application(s): erts + + Removed unused makewhatis script. + + + Full runtime dependencies of erts-12.3.2.15: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.20.4.4 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.4.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18850 Application(s): mnesia + + mnesia:add_table_copy/3 no longer fails with reason + system_limit when the node is starting. + + + Full runtime dependencies of mnesia-4.20.4.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ssh-4.13.2.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13.2.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18869 Application(s): ssh + Related Id(s): GH-7571, PR-7849 + + With this change, connection handler does not execute + socket operations until it becomes socket owner. + Previously errors could occur if connection handler + tried to work with socket whose owner exited. + + + OTP-18897 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + Full runtime dependencies of ssh-4.13.2.4: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.16.README.txt b/release-notes/OTP-24.3.4.16.README.txt new file mode 100644 index 0000000..17e43c7 --- /dev/null +++ b/release-notes/OTP-24.3.4.16.README.txt @@ -0,0 +1,99 @@ +Patch Package: OTP 24.3.4.16 +Git Tag: OTP-24.3.4.16 +Date: 2024-02-12 +Trouble Report Id: OTP-18911, OTP-18932, OTP-18964 +Seq num: ERIERL-1023 +System: OTP +Release: 24 +Application: common_test-1.22.1.2, erts-12.3.2.16, + ssh-4.13.2.5 +Predecessor: OTP 24.3.4.15 + + Check out the git tag OTP-24.3.4.16, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.22.1.2 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.22.1.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18932 Application(s): common_test + + Fix how CT finds Erlang/OTP releases for compatability + testing. This functionality is only used to test + Erlang/OTP. + + + Full runtime dependencies of common_test-1.22.1.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 + + + --------------------------------------------------------------------- + --- erts-12.3.2.16 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.16 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18911 Application(s): erts + Related Id(s): ERIERL-1023, PR-7983 + + 32-bit runtime systems on most Unix like platforms + could crash if a BIF timer was set with a huge timeout + of more than 68 years into the future. In order for the + crash to occur, the huge timer (at a later time than + when it was set) had to become the nearest active timer + set on the specific scheduler on which it was set. This + could not happen on a system with only one scheduler + since there would always be shorter timers in the + system. + + Setting a timer larger than 49 days on Windows could + under rare circumstances cause the timeout to be + delayed. + + + Full runtime dependencies of erts-12.3.2.16: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.13.2.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13.2.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18964 Application(s): ssh + + With this change, Curve25519 and Curve448 KEX methods + become most preferred (related to RFC8731). + + + Full runtime dependencies of ssh-4.13.2.5: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.2.README.txt b/release-notes/OTP-24.3.4.2.README.txt new file mode 100644 index 0000000..8b2ca8d --- /dev/null +++ b/release-notes/OTP-24.3.4.2.README.txt @@ -0,0 +1,92 @@ +Patch Package: OTP 24.3.4.2 +Git Tag: OTP-24.3.4.2 +Date: 2022-06-21 +Trouble Report Id: OTP-18144, OTP-18145, OTP-18147 +Seq num: GH-5981, GH-6024 +System: OTP +Release: 24 +Application: crypto-5.0.6.2, erts-12.3.2.2, ssl-10.7.3.2 +Predecessor: OTP 24.3.4.1 + + Check out the git tag OTP-24.3.4.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-5.0.6.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.6.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18147 Application(s): crypto + Related Id(s): GH-6024, PR-6056 + + Fix configure with --with-ssl and + --disable-dynamic-ssl-lib on Windows. + + + Full runtime dependencies of crypto-5.0.6.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-12.3.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18144 Application(s): erts + Related Id(s): GH-5981 + + Fixed emulator crash that could happen during crashdump + generation of ETS tables with options ordered_set and + {write_concurrency,true}. + + + Full runtime dependencies of erts-12.3.2.2: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18145 Application(s): ssl + + Improved handling of unexpected messages during the + handshake, taking the right action for unexpected + messages. + + + Full runtime dependencies of ssl-10.7.3.2: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.3.README.txt b/release-notes/OTP-24.3.4.3.README.txt new file mode 100644 index 0000000..334b3d0 --- /dev/null +++ b/release-notes/OTP-24.3.4.3.README.txt @@ -0,0 +1,445 @@ +Patch Package: OTP 24.3.4.3 +Git Tag: OTP-24.3.4.3 +Date: 2022-08-18 +Trouble Report Id: OTP-18044, OTP-18104, OTP-18162, OTP-18164, + OTP-18169, OTP-18170, OTP-18172, OTP-18173, + OTP-18175, OTP-18177, OTP-18182, OTP-18189, + OTP-18190, OTP-18193, OTP-18195, OTP-18197, + OTP-18198 +Seq num: ERIERL-826, ERIERL-829, GH-6122, GH-6129, + GH-6163, GH-6165, GH-6185 +System: OTP +Release: 24 +Application: compiler-8.1.1.1, crypto-5.0.6.3, + erts-12.3.2.3, inets-7.5.3.1, kernel-8.3.2.1, + public_key-1.12.0.1, ssl-10.7.3.3 +Predecessor: OTP 24.3.4.2 + + Check out the git tag OTP-24.3.4.3, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + --------------------------------------------------------------------- + --- compiler-8.1.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.1.1.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18162 Application(s): compiler + Related Id(s): PR-6102 + + The bin_opt_info and recv_opt_info options would cause + the compiler to crash when attempting to compile + generated code without location information. + + + OTP-18182 Application(s): compiler + Related Id(s): GH-6163 + + In rare circumstances involving floating point + operations, the compiler could terminate with an + internal consistency check failure. + + + Full runtime dependencies of compiler-8.1.1.1: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0.6.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.6.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions functions are removed from the + documentation and therefor the API, but they are left + in the code for compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + Full runtime dependencies of crypto-5.0.6.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-12.3.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18104 Application(s): erts + Related Id(s): OTP-18093 + + Fix faulty distribution encoding of terms with either + + -- a fun with bit-string or export-fun in its + environment when encoded toward a not yet established + (pending) connection + + -- or a fun with a binary/bitstring, in its + environment, referring to an off-heap binary (larger + than 64 bytes). + + The symptom could be failed decoding on the receiving + side leading to aborted connection. Fix OTP-18093 is a + workaround for theses bugs that makes the VM accepts + such faulty encoded funs. + + The first encoding bug toward pending connection exists + only in OTP 23 and 24, but the second one exists also + on OTP 25. + + + OTP-18164 Application(s): erts + Related Id(s): PR-6114 + + Distributed exit signals could be lost under the + following conditions: + + -- An exit signal from a parent process to a child + process was lost if: + + -- the parent process terminated before the spawn + request that created the child had completed, + + -- the spawn request set up a link between parent and + child + + -- the spawn request was distributed, and + + -- the exit reason was larger than one machine word. + + -- Loss of a connection over which a not yet completed + spawn request was ongoing could cause loss of exit + signals. Such loss of exit signals was very rare. + Besides the above described connection loss also the + following conditions had to be satisfied: + + -- The spawn request that was interrupted by the + connection loss also had to set up a link between the + parent process and the child process. + + -- The parent process that issued the spawn request + also had to be terminating while the spawn request was + interrupted by the connection loss. + + -- The same parent process also had to have made other + spawn requests to other nodes than to the node to which + the connection was lost. + + -- These spawn requests to the other nodes also had to + set up links. + + -- These spawn requests to the other nodes also had to + be not yet completed at the time of the connection + loss. That is, the spawn reply from the child process + had not yet reached the parent process. + + If all the conditions above were met, exit signals to + the children spawned due to the above described spawn + requests to other nodes *could* be lost. + + The above bug also caused a significant memory leak + when it was triggered since the destruction of the + parent process never completed. + + + OTP-18169 Application(s): erts + Related Id(s): PR-6134 + + A race could cause process_info(Pid, message_queue_len) + on other processes to return invalid results. + + + OTP-18170 Application(s): erts + Related Id(s): PR-6135 + + Fixed reduction counting for handling process system + tasks. + + + OTP-18175 Application(s): erts + Related Id(s): PR-6142 + + Priority elevation of terminating processes did not + work which could cause execution of such processes to + be delayed. + + + OTP-18177 Application(s): erts + Related Id(s): PR-6150 + + An unlink operation made by a process that terminated + before the unlink operation completed, i.e., before it + had received an unlink-ack signal from the linked + process, caused an exit signal to erroneously be sent + from the terminating process to the process being + unlinked. This exit signal would most often be ignored + by the receiver, but if the receiver of the exit signal + concurrently set up a new link, it could receive the + exit signal with the actual exit reason of the + terminating process instead of a noproc exit reason. It + is however very hard to detect that this has happened + and has no obvious negative consequences, so it should + be considered harmless. + + A distributed unlink-ack signal received by a + terminating process was also not properly removed which + could cause a minor memory leak. + + + OTP-18190 Application(s): erts + Related Id(s): GH-6185, PR-6209 + + The monitor/3 BIF did not apply options to the created + monitor if the target process or port did not exist. + That is, the corresponding down message would get a + `DOWN` tag even if a custom tag had been set, and the + returned reference was not an alias even if the alias + option had been passed. + + + OTP-18197 Application(s): erts + Related Id(s): GH-6165, PR-6213 + + The erlang:monotonic_time/1, erlang:system_time/1, + erlang:time_offset/1, and os:system_time/1 BIFs + erroneously failed when passed the argument native. + + + Full runtime dependencies of erts-12.3.2.3: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.3.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.3.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-18193 Application(s): inets + Related Id(s): GH-6122 + + Remove documentation of no longer supported callback. + + + Full runtime dependencies of inets-7.5.3.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-8.3.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.3.2.1 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18198 Application(s): kernel + Related Id(s): GH-6129, PR-6216 + + A call to net_kernel:setopts(new, Opts) at the same + time as a connection was being set up could cause a + deadlock between the net_kernel process and the process + setting up the connection. + + + Full runtime dependencies of kernel-8.3.2.1: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- public_key-1.12.0.1 --------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.12.0.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18189 Application(s): public_key + Related Id(s): ERIERL-829 + + Correct asn1 typenames available in type + pki_asn1_type() + + + Full runtime dependencies of public_key-1.12.0.1: asn1-3.0, + crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18044 Application(s): ssl + + Reject unexpected application data in all relevant + places for all TLS versions. Also, handle TLS-1.3 + middlebox compatibility with more care. This will make + malicious connections fail early and further, mitigate + possible DoS attacks, that would be caught by the + handshake timeout. + + Thanks to Aina Toky Rasoamanana and Olivier Levillain + from Télécom SudParis for alerting us of the issues in + our implementation. + + + OTP-18173 Application(s): ssl + + The link to crypto:engine_load refered the function + with wrong arity. + + + OTP-18195 Application(s): ssl + + Make sure periodical refresh of CA certificate files + repopulates cache properly. + + + Full runtime dependencies of ssl-10.7.3.3: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.4.README.txt b/release-notes/OTP-24.3.4.4.README.txt new file mode 100644 index 0000000..970baf7 --- /dev/null +++ b/release-notes/OTP-24.3.4.4.README.txt @@ -0,0 +1,47 @@ +Patch Package: OTP 24.3.4.4 +Git Tag: OTP-24.3.4.4 +Date: 2022-08-26 +Trouble Report Id: OTP-18218 +Seq num: ERIERL-855 +System: OTP +Release: 24 +Application: erts-12.3.2.4 +Predecessor: OTP 24.3.4.3 + + Check out the git tag OTP-24.3.4.4, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-12.3.2.4 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18218 Application(s): erts + Related Id(s): ERIERL-855 + + Fix bug causing ets:info (and sometimes ets:whereis) to + return 'undefined' for an existing table if a + concurrent process were doing ets:insert with a long + list on the same table. + + + Full runtime dependencies of erts-12.3.2.4: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.5.README.txt b/release-notes/OTP-24.3.4.5.README.txt new file mode 100644 index 0000000..e085a05 --- /dev/null +++ b/release-notes/OTP-24.3.4.5.README.txt @@ -0,0 +1,143 @@ +Patch Package: OTP 24.3.4.5 +Git Tag: OTP-24.3.4.5 +Date: 2022-09-13 +Trouble Report Id: OTP-18099, OTP-18219, OTP-18222, OTP-18233, + OTP-18239 +Seq num: GH-6241, GH-6242, GH-6244 +System: OTP +Release: 24 +Application: erts-12.3.2.5, ssl-10.7.3.4, stdlib-3.17.2.1 +Predecessor: OTP 24.3.4.4 + + Check out the git tag OTP-24.3.4.5, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18239 Application(s): stdlib + + When changing callback module in gen_statem the + state_enter calls flag from the old module was used in + for the first event in the new module, which could + confuse the new module and cause malfunction. This bug + has been corrected. + + With this change some sys debug message formats have + been modified, which can be a problem for debug code + relying on the format. + + + --------------------------------------------------------------------- + --- erts-12.3.2.5 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18222 Application(s): erts + Related Id(s): GH-6242, PR-6248 + + Fix writing and reading of more than 2 GB in a single + read/write operation on macOS. Before this fix + attempting to read/write more than 2GB would result in + {error,einval}. + + + Full runtime dependencies of erts-12.3.2.5: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18099 Application(s): ssl + Related Id(s): PR-6287 + + With this change, value of cacertfile option will be + adjusted before loading certs from the file. + Adjustments include converting relative paths to + absolute and converting symlinks to actual file path. + + Thanks to Marcus Johansson + + + OTP-18219 Application(s): ssl + Related Id(s): GH-6241, PR-6249 + + Incorrect handling of client middlebox negotiation for + TLS-1.3 could result in that a TLS-1.3 server would not + use middlebox mode although the client was expecting it + too and failing the negotiation with unexpected + message. + + + OTP-18233 Application(s): ssl + Related Id(s): GH-6244, PR-6270 + + If the "User" process, the process starting the TLS + connection, gets killed in the middle of spawning the + dynamic connection tree make sure we do not leave any + processes behind. + + + Full runtime dependencies of ssl-10.7.3.4: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --- stdlib-3.17.2.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.2.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18239 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + When changing callback module in gen_statem the + state_enter calls flag from the old module was used in + for the first event in the new module, which could + confuse the new module and cause malfunction. This bug + has been corrected. + + With this change some sys debug message formats have + been modified, which can be a problem for debug code + relying on the format. + + + Full runtime dependencies of stdlib-3.17.2.1: compiler-5.0, + crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.6.README.txt b/release-notes/OTP-24.3.4.6.README.txt new file mode 100644 index 0000000..9bb2943 --- /dev/null +++ b/release-notes/OTP-24.3.4.6.README.txt @@ -0,0 +1,144 @@ +Patch Package: OTP 24.3.4.6 +Git Tag: OTP-24.3.4.6 +Date: 2022-10-05 +Trouble Report Id: OTP-18232, OTP-18245, OTP-18258, OTP-18263, + OTP-18266 +Seq num: ERIERL-821, ERIERL-859, GH-6309, GH-6328 +System: OTP +Release: 24 +Application: asn1-5.0.18.1, dialyzer-4.4.4.1, + erts-12.3.2.6, kernel-8.3.2.2, ssl-10.7.3.5 +Predecessor: OTP 24.3.4.5 + + Check out the git tag OTP-24.3.4.6, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- asn1-5.0.18.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.18.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18245 Application(s): asn1 + Related Id(s): ERIERL-859 + + For the per and uper ASN.1 encoding rules, encoding and + decoding the SEQUENCE OF and SET OF constructs with + 16384 items or more is now supported. + + + Full runtime dependencies of asn1-5.0.18.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- dialyzer-4.4.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The dialyzer-4.4.4.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-18263 Application(s): dialyzer + Related Id(s): ERIERL-821 + + The --input_list_file option has been added. + + + Full runtime dependencies of dialyzer-4.4.4.1: compiler-7.0, + erts-9.0, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erts-12.3.2.6 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.6 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18258 Application(s): erts + Related Id(s): GH-6309, PR-6324 + + Notifications about available distribution data sent to + distribution controller processes could be lost. + Distribution controller processes can be used when + implementing an alternative distribution carrier. The + default distribution over tcp was not effected and the + bug was also not present on x86/x86_64 platforms. + + + Full runtime dependencies of erts-12.3.2.6: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.3.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.3.2.2 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Improvements and New Features --- + + OTP-18232 Application(s): kernel + Related Id(s): OTP-17843, PR-6264 + + A new function global:disconnect/0 has been introduced + with which one can cleanly disconnect a node from all + other nodes in a cluster of global nodes. + + + Full runtime dependencies of kernel-8.3.2.2: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18266 Application(s): ssl + Related Id(s): GH-6328 + + Fixes handling of symlinks in cacertfile option. + + + Full runtime dependencies of ssl-10.7.3.5: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.7.README.txt b/release-notes/OTP-24.3.4.7.README.txt new file mode 100644 index 0000000..0170ecd --- /dev/null +++ b/release-notes/OTP-24.3.4.7.README.txt @@ -0,0 +1,248 @@ +Patch Package: OTP 24.3.4.7 +Git Tag: OTP-24.3.4.7 +Date: 2022-12-27 +Trouble Report Id: OTP-18288, OTP-18296, OTP-18306, OTP-18315, + OTP-18317, OTP-18319, OTP-18321, OTP-18325, + OTP-18328, OTP-18352, OTP-18357, OTP-18358, + OTP-18363, OTP-18365 +Seq num: ERIERL-868, ERIERL-875, ERIERL-879, + ERIERL-881, GH-6393, GH-6439, GH-6465, + GH-6466 +System: OTP +Release: 24 +Application: common_test-1.22.1.1, compiler-8.1.1.2, + erts-12.3.2.7, kernel-8.3.2.3, + mnesia-4.20.4.2, snmp-5.12.0.1, + stdlib-3.17.2.2 +Predecessor: OTP 24.3.4.6 + + Check out the git tag OTP-24.3.4.7, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.22.1.1 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.22.1.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18363 Application(s): common_test + Related Id(s): ERIERL-879 + + Change timeout to infinity for gen_server calls in + cth_log_redirect + + + Full runtime dependencies of common_test-1.22.1.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.1.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.1.1.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + OTP-18365 Application(s): compiler + + Fixed a bug that could cause legal code to fail + validation. + + + Full runtime dependencies of compiler-8.1.1.2: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-12.3.2.7 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.7 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18296 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Spec for function net:if_names/0 incorrect + + + OTP-18306 Application(s): erts + Related Id(s): GH-6393, PR-6401 + + Fix bug in binary_to_term decoding a binary term 2Gbyte + or larger. + + + OTP-18321 Application(s): erts + + Fix list_to_atom/1 for negative code points. Could + either return with a positive code point or fail with + an incorrect exception. + + + OTP-18328 Application(s): erts + Related Id(s): GH-6439, PR-6440 + + Fix bug in binary_to_term decoding a list of length 1G + or longer. + + + Full runtime dependencies of erts-12.3.2.7: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.3.2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.3.2.3 application *cannot* be applied + independently of other applications on an arbitrary OTP 24 + installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18296 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Spec for function net:if_names/0 incorrect + + + OTP-18315 Application(s): kernel + + Missing ctrl option name transation for TOS and TTL (on + FreeBSD) when using gen_udp with the 'socket' + inet_backend. + + + OTP-18357 Application(s): kernel + Related Id(s): #6509 + + The tcp connect option 'bind_to_device' could not be + used with inet_backend = 'socket'. 'inet' requires + value type binarry() and 'socket' requires value type + 'string()'. + + + OTP-18358 Application(s): kernel + Related Id(s): #6528 + + Minor issue processing options when calling + gen_tcp:connect with a sockaddr() and inet_backend = + socket. + + + --- Improvements and New Features --- + + OTP-18317 Application(s): kernel + + Improve warning message format for gen_tcp_socket. + + + Full runtime dependencies of kernel-8.3.2.3: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.20.4.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.4.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18288 Application(s): mnesia + Related Id(s): ERIERL-868 + + Don't fill the logs if mnesia can't connect to all + nodes, due to partitioned network. + + + OTP-18319 Application(s): mnesia + Related Id(s): ERIERL-875 + + Fixed crash which could happen during startup if too + many decisions where sent from remote nodes. + + + Full runtime dependencies of mnesia-4.20.4.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- snmp-5.12.0.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.12.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18352 Application(s): snmp + Related Id(s): ERIERL-881 + + Explicitly close the socket(s) when terminating + (default-) net-if process. + + + Full runtime dependencies of snmp-5.12.0.1: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- stdlib-3.17.2.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.2.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + Full runtime dependencies of stdlib-3.17.2.2: compiler-5.0, + crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.8.README.txt b/release-notes/OTP-24.3.4.8.README.txt new file mode 100644 index 0000000..c447552 --- /dev/null +++ b/release-notes/OTP-24.3.4.8.README.txt @@ -0,0 +1,73 @@ +Patch Package: OTP 24.3.4.8 +Git Tag: OTP-24.3.4.8 +Date: 2023-01-17 +Trouble Report Id: OTP-18379, OTP-18383, OTP-18388 +Seq num: ERIERL-904, ERIERL-905 +System: OTP +Release: 24 +Application: erts-12.3.2.8, snmp-5.12.0.2 +Predecessor: OTP 24.3.4.7 + + Check out the git tag OTP-24.3.4.8, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-12.3.2.8 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.8 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18383 Application(s): erts + Related Id(s): ERIERL-905 + + Fixed a bug in selective receive optimization that + could crash 32-bit emulators. + + + OTP-18388 Application(s): erts + Related Id(s): OTP-17462, PR-6662 + + A race condition which was very rarely triggered could + cause the signal queue of a process to become + inconsistent causing the runtime system to crash. + + + Full runtime dependencies of erts-12.3.2.8: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- snmp-5.12.0.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.12.0.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18379 Application(s): snmp + Related Id(s): ERIERL-904 + + Single threaded agent crash when vacm table not + properly initiated. + + + Full runtime dependencies of snmp-5.12.0.2: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.4.9.README.txt b/release-notes/OTP-24.3.4.9.README.txt new file mode 100644 index 0000000..b63d6cb --- /dev/null +++ b/release-notes/OTP-24.3.4.9.README.txt @@ -0,0 +1,170 @@ +Patch Package: OTP 24.3.4.9 +Git Tag: OTP-24.3.4.9 +Date: 2023-02-23 +Trouble Report Id: OTP-18386, OTP-18417, OTP-18421, OTP-18433, + OTP-18463, OTP-18467, OTP-18470, OTP-18472 +Seq num: ERIERL-888, GH-6772, GH-6807, GH-6873 +System: OTP +Release: 24 +Application: compiler-8.1.1.3, erts-12.3.2.9, + inets-7.5.3.2, ssh-4.13.2.2, ssl-10.7.3.6 +Predecessor: OTP 24.3.4.8 + + Check out the git tag OTP-24.3.4.9, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.1.1.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.1.1.3 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18470 Application(s): compiler + Related Id(s): GH-6873, PR-6877 + + The compiler would generate incorrect code for the + following type of expression: + + Pattern = BoundVar1 = . . . = BoundVarN = Expression + + An exception should be raised if any of the bound + variables have different values than Expression. The + compiler would generate code that would cause the bound + variables to be bound to the value of Expressionwhether + the value matched or not. + + + Full runtime dependencies of compiler-8.1.1.3: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-12.3.2.9 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.3.2.9 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18421 Application(s): erts + Related Id(s): PR-6806 + + process_info(Pid, status) when Pid /= self() could + return an erroneous result. + + + OTP-18463 Application(s): erts + Related Id(s): PR-6858 + + In rare circumstances, when a process exceeded its + allowed heap size set by option max_heap_size, it would + not be killed as it should be, but instead enter a kind + of zombie state it would never get out of. + + + Full runtime dependencies of erts-12.3.2.9: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.3.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.3.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18472 Application(s): inets + Related Id(s): DAFH-1592 + + With this change, handling of URI to a folder, with + missing trailing / and a query component present is + fixed. + + + Full runtime dependencies of inets-7.5.3.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.13.2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13.2.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18386 Application(s): ssh + Related Id(s): PR-6611 + + With this change, ssh application does not crash when + formatting some of info reports for unsuccessful + connections. + + + OTP-18417 Application(s): ssh + Related Id(s): ERIERL-888, DAFH-1349, IA18357 + + With this change, ssh does not log extensively long + messages. + + + Full runtime dependencies of ssh-4.13.2.2: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.7.3.6 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.7.3.6 application *cannot* be applied independently + of other applications on an arbitrary OTP 24 installation. + + On a full OTP 24 installation, also the following runtime + dependencies have to be satisfied: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5) + + + --- Improvements and New Features --- + + OTP-18433 Application(s): ssl + Related Id(s): GH-6772 + + Maximize compatibility by ignoring change_cipher_spec + during handshake even if middle_box_mode is not + negotiated (mandated by client) + + + OTP-18467 Application(s): ssl + Related Id(s): GH-6807 + + Move assert of middlebox message after an + hello_retry_request to maximize interoperability. Does + not changes semantics of the protocol only allows + unexpected message delay from server. + + + Full runtime dependencies of ssl-10.7.3.6: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.17.2.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0.1.README.txt b/release-notes/OTP-25.0.1.README.txt new file mode 100644 index 0000000..6ff8957 --- /dev/null +++ b/release-notes/OTP-25.0.1.README.txt @@ -0,0 +1,317 @@ +Patch Package: OTP 25.0.1 +Git Tag: OTP-25.0.1 +Date: 2022-06-09 +Trouble Report Id: OTP-18010, OTP-18046, OTP-18087, OTP-18094, + OTP-18100, OTP-18105, OTP-18106, OTP-18110, + OTP-18112, OTP-18120, OTP-18122, OTP-18123, + OTP-18124, OTP-18128, OTP-18129, OTP-18132, + OTP-18136 +Seq num: ERIERL-811, GH-5950, GH-5961, GH-5985, + GH-5994, GH-6000, GH-6015 +System: OTP +Release: 25 +Application: crypto-5.1.1, dialyzer-5.0.1, erts-13.0.1, + kernel-8.4.1, mnesia-4.21.1, ssh-4.14.1, + ssl-10.8.1, stdlib-4.0.1 +Predecessor: OTP 25.0 + + Check out the git tag OTP-25.0.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-5.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18046 Application(s): crypto + + Note in the documentation that MODP (rfc3526) groups + and OpenSSL 3.0 can give an error if a call to + crypto:generate_key/2 specifies a key length, and that + length is to small. + + + --- Improvements and New Features --- + + OTP-18010 Application(s): crypto + + The cmac now uses only the 3.0 API + + + OTP-18132 Application(s): crypto + + Documentation is now updated with which OpenSSL + cryptolib versions that OTP currently is tested. + + + Full runtime dependencies of crypto-5.1.1: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.0.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18120 Application(s): dialyzer + + Fixed the documentation for the missing_return and + extra_return options. + + + Full runtime dependencies of dialyzer-5.0.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-13.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.0.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.4.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18105 Application(s): erts + Related Id(s): OTP-16982, PR-6003 + + A spawn_reply signal from a remote node could be + delayed and be delivered after other signals from the + newly spawned process. + + When this bug triggered, the connection to the node + where the process was spawned sometimes could be taken + down due to the bug. The following error message would + then be logged if this happened: Missing 'spawn_reply' + signal from the node <RemoteNode> detected by <Pid> on + the node <LocalNode>. The node <RemoteNode> probably + suffers from the bug with ticket id OTP-17737. + + This bug only affected processes which had enabled + off_heap message_queue_data and parallel reception of + signals had been automatically enabled. + + This bug was introduced in OTP 25.0, ERTS version 13.0. + + + OTP-18106 Application(s): erts + Related Id(s): PR-5992 + + Fixed type spec of erlang:system_info(dist_ctrl). + + + OTP-18123 Application(s): erts + Related Id(s): GH-5994 + + The zlib built in to the runtime system has been + updated to version 1.2.12. (Note that on most + platforms, the platform's own zlib is used.) + + + OTP-18124 Application(s): erts, kernel + Related Id(s): OTP-17558, PR-6032 + + The erlang:is_alive() BIF could return true before + configured distribution service was available. This bug + was introduced in OTP 25.0 ERTS version 13.0. + + The erlang:monitor_node() and erlang:monitor() BIFs + could erroneously fail even though configured + distribution service was available. This occurred if + these BIFs were called after the distribution had been + started using dynamic node name assignment but before + the name had been assigned. + + + Full runtime dependencies of erts-13.0.1: kernel-8.4.1, sasl-3.3, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- kernel-8.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.4.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- erts-13.0.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18112 Application(s): kernel + Related Id(s): ERIERL-811 + + The DNS resolver inet_res has been fixed to ignore + trailing dot difference in the request domain between + the sent request and the received response, when + validating a response. + + + OTP-18122 Application(s): kernel + Related Id(s): GH-6015, PR-6020 + + A bug in inet_res has been fixed where a missing + internal {ok,_} wrapper caused inet_res:resolve/* to + return a calculated host name instead of an `{ok,Msg} + tuple, when resolving an IP address or a host name that + is an IP address string. + + + OTP-18124 Application(s): erts, kernel + Related Id(s): OTP-17558, PR-6032 + + The erlang:is_alive() BIF could return true before + configured distribution service was available. This bug + was introduced in OTP 25.0 ERTS version 13.0. + + The erlang:monitor_node() and erlang:monitor() BIFs + could erroneously fail even though configured + distribution service was available. This occurred if + these BIFs were called after the distribution had been + started using dynamic node name assignment but before + the name had been assigned. + + + OTP-18136 Application(s): kernel + + Added the missing mandatory address/0 callback in the + gen_tcp_dist example. + + + Full runtime dependencies of kernel-8.4.1: crypto-5.0, erts-13.0.1, + sasl-3.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- mnesia-4.21.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18128 Application(s): mnesia + Related Id(s): PR-6013 + + Fixed add_table_copy which could leave a table lock if + the receiving node went down during the operation. + + + Full runtime dependencies of mnesia-4.21.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ssh-4.14.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.14.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18094 Application(s): ssh + + Binaries can be limited in logs with the parameter + max_log_item_len. The default value is 500 bytes. + + + Full runtime dependencies of ssh-4.14.1: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.8.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18087 Application(s): ssl + Related Id(s): GH-5961 + + When a TLS-1.3 enabled client tried to talk to a + TLS-1.2 server that coalesces TLS-1.2 handshake message + over one TLS record, the connection could fail due to + some message being handled in the wrong state, this has + been fixed. + + + OTP-18100 Application(s): ssl + Related Id(s): GH-5985 + + Correctly handles supported protocol version change + from default to something else by sni_fun supplied to + ssl:handshake/[2,3] together with a TCP-socket (so + called upgrade). + + + OTP-18129 Application(s): ssl + Related Id(s): GH-5950 + + Also, TLS-1.3 should respond with a protocol version + alert if previous versions, that are supported but not + configured, are attempted. + + + Full runtime dependencies of ssl-10.8.1: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-4.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-4.0.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18110 Application(s): stdlib + Related Id(s): GH-6000 + + In the initial release of Erlang/OTP 25, the expression + bound to the _ pseudo-field in a record initialization + would always be evaluated once, even if all other + fields in the record were explicitly initialized. That + would break the use case of binding the expression + error(...) to _ in order to get an exception if not all + fields were initialized. + + The behavior of binding to _ has been reverted to the + pre-OTP 25 behavior, that is, to not evaluate the + expression if all fields have been bound to explicit + values. + + + Full runtime dependencies of stdlib-4.0.1: compiler-5.0, crypto-4.5, + erts-12.0, kernel-8.4, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0.2.README.txt b/release-notes/OTP-25.0.2.README.txt new file mode 100644 index 0000000..16a6f32 --- /dev/null +++ b/release-notes/OTP-25.0.2.README.txt @@ -0,0 +1,68 @@ +Patch Package: OTP 25.0.2 +Git Tag: OTP-25.0.2 +Date: 2022-06-21 +Trouble Report Id: OTP-18143, OTP-18145 +Seq num: +System: OTP +Release: 25 +Application: erts-13.0.2, ssl-10.8.2 +Predecessor: OTP 25.0.1 + + Check out the git tag OTP-25.0.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.0.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.0.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.4.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18143 Application(s): erts + + On computers with the ARM64 (AArch64) architecture + (such as Apple Silicon Macs) a rem expression followed + by a div expression with the same operands could + evaluate to the wrong result if the result of the rem + expression was unused. + + + Full runtime dependencies of erts-13.0.2: kernel-8.4.1, sasl-3.3, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- ssl-10.8.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.8.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18145 Application(s): ssl + + Improved handling of unexpected messages during the + handshake, taking the right action for unexpected + messages. + + + Full runtime dependencies of ssl-10.8.2: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0.3.README.txt b/release-notes/OTP-25.0.3.README.txt new file mode 100644 index 0000000..84e69de --- /dev/null +++ b/release-notes/OTP-25.0.3.README.txt @@ -0,0 +1,157 @@ +Patch Package: OTP 25.0.3 +Git Tag: OTP-25.0.3 +Date: 2022-07-15 +Trouble Report Id: OTP-18164, OTP-18169, OTP-18170, OTP-18173, + OTP-18175, OTP-18177 +Seq num: +System: OTP +Release: 25 +Application: erts-13.0.3, ssl-10.8.3 +Predecessor: OTP 25.0.2 + + Check out the git tag OTP-25.0.3, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.0.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.0.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.4.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18164 Application(s): erts + Related Id(s): PR-6114 + + Distributed exit signals could be lost under the + following conditions: + + -- An exit signal from a parent process to a child + process was lost if: + + --- the parent process terminated before the spawn + request that created the child had completed, + + --- the spawn request set up a link between parent and + child + + --- the spawn request was distributed, and + + --- the exit reason was larger than one machine word. + + -- Loss of a connection over which a not yet completed + spawn request was ongoing could cause loss of exit + signals. Such loss of exit signals was very rare. + Besides the above described connection loss also the + following conditions had to be satisfied: + + --- The spawn request that was interrupted by the + connection loss also had to set up a link between the + parent process and the child process. + + --- The parent process that issued the spawn request + also had to be terminating while the spawn request was + interrupted by the connection loss. + + --- The same parent process also had to have made other + spawn requests to other nodes than to the node to which + the connection was lost. + + --- These spawn requests to the other nodes also had to + set up links. + + --- These spawn requests to the other nodes also had to + be not yet completed at the time of the connection + loss. That is, the spawn reply from the child process + had not yet reached the parent process. + + If all the conditions above were met, exit signals to + the children spawned due to the above described spawn + requests to other nodes *could* be lost. + + The above bug also caused a significant memory leak + when it was triggered since the destruction of the + parent process never completed. + + + OTP-18169 Application(s): erts + Related Id(s): PR-6134 + + A race could cause process_info(Pid, message_queue_len) + on other processes to return invalid results. + + + OTP-18170 Application(s): erts + Related Id(s): PR-6135 + + Fixed reduction counting for handling process system + tasks. + + + OTP-18175 Application(s): erts + Related Id(s): PR-6142 + + Priority elevation of terminating processes did not + work which could cause execution of such processes to + be delayed. + + + OTP-18177 Application(s): erts + Related Id(s): PR-6150 + + An unlink operation made by a process that terminated + before the unlink operation completed, i.e., before it + had received an unlink-ack signal from the linked + process, caused an exit signal to erroneously be sent + from the terminating process to the process being + unlinked. This exit signal would most often be ignored + by the receiver, but if the receiver of the exit signal + concurrently set up a new link, it could receive the + exit signal with the actual exit reason of the + terminating process instead of a noproc exit reason. It + is however very hard to detect that this has happened + and has no obvious negative consequences, so it should + be considered harmless. + + A distributed unlink-ack signal received by a + terminating process was also not properly removed which + could cause a minor memory leak. + + + Full runtime dependencies of erts-13.0.3: kernel-8.4.1, sasl-3.3, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- ssl-10.8.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.8.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18173 Application(s): ssl + + The link to crypto:engine_load refered the function + with wrong arity. + + + Full runtime dependencies of ssl-10.8.3: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0.4.README.txt b/release-notes/OTP-25.0.4.README.txt new file mode 100644 index 0000000..9ec237c --- /dev/null +++ b/release-notes/OTP-25.0.4.README.txt @@ -0,0 +1,84 @@ +Patch Package: OTP 25.0.4 +Git Tag: OTP-25.0.4 +Date: 2022-08-18 +Trouble Report Id: OTP-18190, OTP-18197, OTP-18198 +Seq num: GH-6129, GH-6165, GH-6185 +System: OTP +Release: 25 +Application: erts-13.0.4, kernel-8.4.2 +Predecessor: OTP 25.0.3 + + Check out the git tag OTP-25.0.4, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.0.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.0.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- kernel-8.4.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18190 Application(s): erts + Related Id(s): GH-6185, PR-6209 + + The monitor/3 BIF did not apply options to the created + monitor if the target process or port did not exist. + That is, the corresponding down message would get a + `DOWN` tag even if a custom tag had been set, and the + returned reference was not an alias even if the alias + option had been passed. + + + OTP-18197 Application(s): erts + Related Id(s): GH-6165, PR-6213 + + The erlang:monotonic_time/1, erlang:system_time/1, + erlang:time_offset/1, and os:system_time/1 BIFs + erroneously failed when passed the argument native. + + + Full runtime dependencies of erts-13.0.4: kernel-8.4.1, sasl-3.3, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- kernel-8.4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.4.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- erts-13.0.1 (first satisfied in OTP 25.0.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18198 Application(s): kernel + Related Id(s): GH-6129, PR-6216 + + A call to net_kernel:setopts(new, Opts) at the same + time as a connection was being set up could cause a + deadlock between the net_kernel process and the process + setting up the connection. + + + Full runtime dependencies of kernel-8.4.2: crypto-5.0, erts-13.0.1, + sasl-3.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0.README.txt b/release-notes/OTP-25.0.README.txt new file mode 100644 index 0000000..3c6bc4d --- /dev/null +++ b/release-notes/OTP-25.0.README.txt @@ -0,0 +1,3182 @@ +Inital Release: OTP 25.0 +Git Tag: OTP-25.0 +Date: 2022-05-18 +Trouble Report Id: OTP-15991, OTP-15993, OTP-16464, OTP-16607, + OTP-16702, OTP-16852, OTP-16982, OTP-17119, + OTP-17151, OTP-17224, OTP-17304, OTP-17318, + OTP-17323, OTP-17351, OTP-17370, OTP-17414, + OTP-17447, OTP-17471, OTP-17479, OTP-17480, + OTP-17481, OTP-17504, OTP-17518, OTP-17523, + OTP-17524, OTP-17544, OTP-17550, OTP-17551, + OTP-17554, OTP-17555, OTP-17556, OTP-17558, + OTP-17561, OTP-17562, OTP-17566, OTP-17569, + OTP-17589, OTP-17592, OTP-17608, OTP-17612, + OTP-17617, OTP-17627, OTP-17630, OTP-17636, + OTP-17644, OTP-17654, OTP-17660, OTP-17661, + OTP-17667, OTP-17669, OTP-17676, OTP-17681, + OTP-17682, OTP-17683, OTP-17684, OTP-17685, + OTP-17705, OTP-17710, OTP-17717, OTP-17720, + OTP-17728, OTP-17729, OTP-17733, OTP-17752, + OTP-17753, OTP-17755, OTP-17758, OTP-17762, + OTP-17772, OTP-17778, OTP-17779, OTP-17784, + OTP-17798, OTP-17802, OTP-17810, OTP-17819, + OTP-17820, OTP-17821, OTP-17824, OTP-17826, + OTP-17832, OTP-17836, OTP-17841, OTP-17842, + OTP-17846, OTP-17855, OTP-17858, OTP-17860, + OTP-17866, OTP-17869, OTP-17870, OTP-17878, + OTP-17881, OTP-17882, OTP-17884, OTP-17885, + OTP-17889, OTP-17890, OTP-17892, OTP-17894, + OTP-17897, OTP-17899, OTP-17901, OTP-17908, + OTP-17909, OTP-17910, OTP-17911, OTP-17915, + OTP-17920, OTP-17921, OTP-17923, OTP-17925, + OTP-17927, OTP-17930, OTP-17935, OTP-17939, + OTP-17945, OTP-17950, OTP-17951, OTP-17953, + OTP-17958, OTP-17961, OTP-17964, OTP-17965, + OTP-17968, OTP-17969, OTP-17974, OTP-17976, + OTP-17977, OTP-17980, OTP-17984, OTP-17985, + OTP-17986, OTP-17988, OTP-17990, OTP-17991, + OTP-17996, OTP-17997, OTP-17999, OTP-18000, + OTP-18001, OTP-18003, OTP-18006, OTP-18008, + OTP-18009, OTP-18011, OTP-18012, OTP-18014, + OTP-18015, OTP-18020, OTP-18033, OTP-18034, + OTP-18035, OTP-18036, OTP-18038, OTP-18045, + OTP-18047, OTP-18063, OTP-18067, OTP-18068, + OTP-18070, OTP-18079, OTP-18083, OTP-18084, + OTP-18085, OTP-18086, OTP-18087, OTP-18088, + OTP-18092 +Seq num: ERIERL-590, ERIERL-663, ERIERL-728, + ERIERL-760, ERIERL-792, ERIERL-798, ERL-1347, + GH-2375, GH-2690, GH-4143, GH-4492, GH-4622, + GH-4673, GH-4759, GH-4784, GH-4819, GH-4853, + GH-4915, GH-4965, GH-4968, GH-4971, GH-5016, + GH-5071, GH-5093, GH-5094, GH-5140, GH-5204, + GH-5214, GH-5276, GH-5297, GH-5368, GH-5376, + GH-5379, GH-5402, GH-5403, GH-5463, GH-5513, + GH-5606, GH-5617, GH-5655, GH-5683, GH-5728, + GH-5760, GH-5767, GH-5780, GH-5782, GH-5801, + GH-5828, GH-5903, GH-5961 +System: OTP +Release: 25 +Application: asn1-5.0.19, common_test-1.23, compiler-8.2, + crypto-5.1, debugger-5.3, dialyzer-5.0, + diameter-2.2.6, edoc-1.2, erl_docgen-1.3, + erl_interface-5.3, erts-13.0, eunit-2.7.1, + inets-8.0, jinterface-1.13, kernel-8.4, + megaco-4.4, mnesia-4.21, observer-2.12, + odbc-2.14, parsetools-2.4, public_key-1.13, + runtime_tools-1.19, sasl-4.2, snmp-5.13, + ssh-4.14, ssl-10.8, stdlib-4.0, + syntax_tools-3.0, tools-3.5.3, wx-2.2, + xmerl-1.3.29 +Predecessor: OTP + + Check out the git tag OTP-25.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-15991 Application(s): erts, stdlib + Related Id(s): PR-5208 + + Users can now configure ETS tables with the + {write_concurrency, auto} option. This option forces + tables to automatically change the number of locks that + are used at run-time depending on how much concurrency + is detected. The {decentralized_counters, true} option + is enabled by default when {write_concurrency, auto} is + active. + + Benchmark results comparing this option with the other + ETS optimization options are available here: + + https://erlang.org/bench/ets_bench_result_lock_config.html + + + OTP-15993 Application(s): ssl + Related Id(s): GH-4143 + + With this change, it is possible to provide several + certificates. Most appropriate will be selected based + on negotiated properties. + + + OTP-16702 Application(s): compiler, erts + + To enable more optimizations, BEAM files compiled with + OTP 21 and earlier cannot be loaded in OTP 25. + + + OTP-16982 Application(s): erts + Related Id(s): PR-5020 + + The signal queue of a process with + message_queue_data=off_heap* has been optimized to + allow parallel reception of signals from multiple + processes. + + This is possible to do as Erlang only guarantees that + signals (i.e., message signals and non-message signals) + sent from a single process to another process are + ordered in send order. However, there are no ordering + guarantees for signals sent from different processes to + a particular process. Therefore, several processes can + send signals in parallel to a specific process without + synchronizing with each other. However, such signal + sending was previously always serialized as the senders + had to acquire the lock for the outer signal queue of + the receiving process. This parallel signal sending + optimization yields much better scalability for signal + sending than what was previously possible, see + https://erlang.org/bench/sigq_bench_result.html for + benchmark results. + + * Information about how to enable the + message_queue_data=off_heap setting can be found in the + documentation of the function erlang:process_flag/2. + + + OTP-17119 Application(s): erts + Related Id(s): PR-4869 + + The JIT now works for 64-bit ARM processors. + + + OTP-17151 Application(s): compiler, erts + Related Id(s): ERIERL-590, PR-5479 + + Added support for the compile attribute -nifs() to + empower compiler and loader with information about + which functions may be overridden as NIFs by + erlang:load_nif/2. It is recommended to use this + attribute in all modules that load NIF libraries. + + + OTP-17351 Application(s): stdlib + Related Id(s): GH-4673, PR-4952 + + The format_status/2 callback for gen_server, gen_statem + and gen_event has been deprecated in favor of the new + format_status/1 callback. + + The new callback adds the possibility to limit and + change many more things than the just the state, such + as the last received message, the reason for + terminating and more events specific to each type of + behavior. See the respective modules documentation for + more details. + + + OTP-17481 Application(s): stdlib + Related Id(s): PR-4811 + + The timer module has been modernized and made more + efficient, which makes the timer server less + susceptible to being overloaded. The timer:sleep/1 + function now accepts an arbitrarily large integer. + + + OTP-17504 Application(s): compiler, erts + Related Id(s): GH-4971, PR-5281, PR-5752 + + When binary construction using the binary syntax fails, + the error message printed in the shell and by + erl_error:format_exception/3,4 will contain more + detailed information about what went wrong. + + + OTP-17684 Application(s): compiler, erts + Related Id(s): PR-5316, PR-5664 + + The Erlang compiler now includes type information in + BEAM files, and the JIT can now use that type + information to do optimizations such as eliminating or + simplifying type tests. + + + OTP-17705 Application(s): compiler + Related Id(s): PR-5411 + + The maybe ... end construction proposed in EEP-49 has + been implemented. It can simplify complex code where + otherwise deeply nested cases would have to be used. + + To enable maybe, give the option -enable-feature + maybe_expr to erlc or add -feature(maybe_expr, enable). + inside the module. + + + OTP-17710 Application(s): otp + Related Id(s): PR-5597 + + A new DEVELOPMENT how-to guide has been added that + describes how to build and test Erlang/OTP when fixing + bugs or developing new functionality. + + The makefile system has been extended to make it easier + to run tests at different granulates directly from the + command line. This new functionality is described in + the development how-to. + + Using the extended makefile system, testing has been + added to the Github actions run for each opened PR so + that more bugs are caught earlier when bug fixes and + new features are proposed. + + + OTP-17720 Application(s): common_test, kernel, stdlib + Related Id(s): PR-5162 + + The new module peer supersedes the slave module. The + slave module is now deprecated and will be removed in + OTP 27. + + peer contains an extended and more robust API for + starting erlang nodes. + + + OTP-17784 Application(s): kernel, stdlib + Related Id(s): PR-5792 + + In order to make it easier for the user to manage + multiple outstanding asynchronous call requests, new + functionality utilizing request identifier collections + have been introduced in erpc, gen_server, gen_statem, + and gen_event. + + + OTP-17798 Application(s): public_key + Related Id(s): GH-5760 + + Added functions to retrieve OS provided CA-certs. + + + OTP-17841 Application(s): compiler, erts + Related Id(s): PR-5694 + + When a record matching or record update fails, a + {badrecord,ExpectedRecordTag} exception used to be + raised. In this release, the exception has been changed + to {badrecord,ActualValue}, where ActualValue is the + actual that was found instead of the expected record. + + + OTP-17911 Application(s): kernel + Related Id(s): OTP-17843, PR-5611, PR-5687 + + *** POTENTIAL INCOMPATIBILITY *** + + As of OTP 25, global will by default prevent + overlapping partitions due to network issues by + actively disconnecting from nodes that reports that + they have lost connections to other nodes. This will + cause fully connected partitions to form instead of + leaving the network in a state with overlapping + partitions. + + Prevention of overlapping partitions can be disabled + using the prevent_overlapping_partitions kernel(6) + parameter, making global behave like it used to do. + This is, however, problematic for all applications + expecting a fully connected network to be provided, + such as for example mnesia, but also for global itself. + A network of overlapping partitions might cause the + internal state of global to become inconsistent. Such + an inconsistency can remain even after such partitions + have been brought together to form a fully connected + network again. The effect on other applications that + expects that a fully connected network is maintained + may vary, but they might misbehave in very subtle hard + to detect ways during such a partitioning. Since you + might get hard to detect issues without this fix, you + are strongly advised not to disable this fix. Also note + that this fix has to be enabled on all nodes in the + network in order to work properly. + + + OTP-17953 Application(s): stdlib + Related Id(s): PR-5621 + + Added filelib:ensure_path/1 that ensures that all + directories for the given path exists (unlike + filelib:ensure_dir/1, which will not create the last + segment of the path). + + + OTP-17969 Application(s): stdlib + Related Id(s): PR-5588 + + The functions groups_from_list/2 and groups_from_list/3 + have been added to the maps module. + + + OTP-17977 Application(s): stdlib + Related Id(s): GH-5606, PR-5766 + + The functions uniq/1 and uniq/2 for removing duplicates + have been added to the lists module. + + + OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools + + Added support for configurable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (-enable-feature Feature, + -disable-feature Feature and +{feature, Feature, + enable|disable}) to erlc as well as with directives + (-feature(Feature, enable|disable).) in the file. + Similar options can be used to erl for + enabling/disabling features allowed at runtime. The new + maybe expression (EEP-49) is fully supported as the + feature maybe_expr. The features support is documented + in the reference manual. + + + OTP-18011 Application(s): stdlib + + A new PRNG have been added to the rand module: mwc59 + which has been developed in collaboration with + Sebastiano Vigna. It is intended for applications that + need really fast pseudo-random numbers, and it comes + with two output value scramblers, one fast and one + thorough. + + Two internal functions for the exsp generator have also + been exported so they can be used outside the rand + plug-in framework to shave off some overhead. + + The internal splitmix64 generator has also been + exported which can be useful for seeding other kinds of + PRNG:s than its own. + + + OTP-18086 Application(s): crypto + Related Id(s): OTP-16282, OTP-16643, OTP-16644, + OTP-17701, OTP-17702, OTP-17704 + + The cryptolib API deprecated in OpenSSL 3.0 is now no + longer used with a few exceptions listed below. + + Although OpenSSL 3.0.x itself is stable, its usage in + OTP/crypto should still not be considered suitable for + production code. + + The use of ENGINEs is still disabled by default when + using 3.0. + + Deprecated functions are still called in the + otp_test_engine.c (only used in tests), in mac.c + (EVP_PKEY_new_CMAC_key) and five function calls in ec.c + (EVP_PKEY_assign, EC_KEY_get_conv_form, + EVP_PKEY_get1_EC_KEY, EC_KEY_get0_group and + EC_KEY_set_public_key). + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-17544 Application(s): stdlib + Related Id(s): PR-5008 + + Fix gen_server:call with the first argument as self() + to throw an error instead of failing with a timeout. + + The same fix has also been done for gen_statem:call/3, + gen_event:sync_notify/2 and any other functionality + relying on the internal gen:call/3 function. + + A similar fix was also done when using io:format/2 and + the current group_leader was set to the current + process. + + + OTP-17569 Application(s): erts + Related Id(s): PR-4793 + + The growth rate of writable binaries has been adjusted + to only increase by 20% after 16MB in size. Before this + change the size would always double. + + This change may degrade write performance of large + binaries. + + + OTP-17627 Application(s): inets, stdlib + + Adjust uri_string:normalize behavior for URIs with + undefined port (URI string with a port colon but no + port value or URI map with port => undefined). + + Remove redundant normalization from http_request + module. + + Before this change, normalize would not remove port + subcomponent in such cases and could for example return + "http://localhost:" URI. + + + OTP-17644 Application(s): dialyzer + Related Id(s): PR-5223 + + Fixed a bug that could cause the type analyzer to enter + an infinite loop. + + + OTP-17681 Application(s): kernel + Related Id(s): PR-5307 + + The most, or at least the most used, rpc operations now + require erpc support in order to communicate with other + Erlang nodes. erpc was introduced in OTP 23. That is, + rpc operations against Erlang nodes of releases prior + to OTP 23 will fail. + + + OTP-17683 Application(s): erts + Related Id(s): PR-5306 + + Distributed spawn operations now require distributed + spawn_request() support. Distributed spawn_request() + was introduced in OTP 23. That is, distributed spawn + operations against Erlang nodes of releases prior to + OTP 23 will fail. + + + OTP-17821 Application(s): dialyzer + Related Id(s): GH-5016, OTP-17554, PR-5408 + + The default location of the plt has been changed from + $HOME to filename:basedir(user_cache,"erlang"). + + + OTP-17866 Application(s): inets + + This change removes deprecated functions: + http_uri:parse/1, http_uri:parse/2 and + http_uri:scheme_defaults/0. + + This change delays until OTP-26 removal of deprecated + functions: http_uri:encode/1 and http_uri:decode/1. + + This change marks httpd_util:decode_hex/1 and + httpd_util:encode_hex/1 as deprecated. + + + OTP-17889 Application(s): inets + + Fixed typo in Reason term returned from + httpc_handler:handle_http_body. + + After this change, could_not_establish_ssl_tunnel atom + is returned within Reason term. + + + OTP-17894 Application(s): syntax_tools + Related Id(s): PR-5509 + + The erl_syntax_lib:analyze_attribute/1 function would + return {Name, {Name, Value}} instead of {Name, Value} + (which is the documented return value). + + + OTP-17911 Application(s): kernel + Related Id(s): OTP-17843, PR-5611, PR-5687 + + *** HIGHLIGHT *** + + As of OTP 25, global will by default prevent + overlapping partitions due to network issues by + actively disconnecting from nodes that reports that + they have lost connections to other nodes. This will + cause fully connected partitions to form instead of + leaving the network in a state with overlapping + partitions. + + Prevention of overlapping partitions can be disabled + using the prevent_overlapping_partitions kernel(6) + parameter, making global behave like it used to do. + This is, however, problematic for all applications + expecting a fully connected network to be provided, + such as for example mnesia, but also for global itself. + A network of overlapping partitions might cause the + internal state of global to become inconsistent. Such + an inconsistency can remain even after such partitions + have been brought together to form a fully connected + network again. The effect on other applications that + expects that a fully connected network is maintained + may vary, but they might misbehave in very subtle hard + to detect ways during such a partitioning. Since you + might get hard to detect issues without this fix, you + are strongly advised not to disable this fix. Also note + that this fix has to be enabled on all nodes in the + network in order to work properly. + + + OTP-17920 Application(s): ssh + + The representation of Edward curves (ed25519 and ed448) + inside ssh had a temporary representation (ed_pri and + ed_pub). + + That is now changed to the public_key form. See the + manual for more information. + + + OTP-17921 Application(s): public_key + + The deprecated public_key functions ssh_decode/2, + ssh_encode/2, ssh_hostkey_fingerprint/1 and + ssh_hostkey_fingerprint/2 are removed. + + They are replaced by ssh_file:decode/2, + ssh_file:encode/2, ssh:hostkey_fingerprint/1 and + ssh:hostkey_fingerprint/2 respectively. + + Note that the decode/2 and encode/2 are not exact + replacement functions, some minor changes may be + needed. Se the manual for more information. + + + OTP-17925 Application(s): stdlib + Related Id(s): PR-5631 + + The non-local function handler for the erl_eval can now + be called with either two or three arguments. When + called with three arguments, the first argument is the + annotation for the node in the abstract format. + + All errors during evaluation will now be passed through + erlang:raise/3. If the restricted shell is active and + it does not let erlang:raise/3 through, evaluation + errors will be printed in less clear way. See the + documentation for restricted shell in shell. + + + OTP-17950 Application(s): wx + + Added aux1Down and aux2Down fields to the wxMouseState + record. Since one record have been changed a + recompilation of user code might be required. + + + OTP-17965 Application(s): crypto + + The information in error messages are increased. + + Previously the error was signaled with en error class + exception badarg, notsup or error, and also in some + more ways like an other exception or a return value in + a non-standardized format. + + Now it is an error-class exception + {notsup|badarg|error, InfoFromCfile, + Description::string()}. + + The InfoFromCfile is a term with name and line number + of the C-file where the error was found. This is + primarily intended for a crypto maintainer or an + advanced user to find the cause of complicated errors - + maybe in crypto itself. The contents of that term might + be changed in the future. + + The Description is a clear text string that describes + the error. In case of badarg and notsup the intention + is that it should help the user to find the cause ("Bad + key size" as an example). Specially for some error that + are unlikely, the string may not be possible to + understand without deep knowledge of the underlying + cryptolib. Such messages are intended for a crypto + maintainer. + + The first element on call stack (the S in try ... catch + error:E:S .... end) gives more information like the + actual argument list in the call of crypto and the + argument number (if possible) in the call to the NIF + inside crypto. + + The functions in crypto affected by this change are: + + sign/4, sign/5, verify/5, verify/6, + + generate_key/2, generate_key/3, compute_key/4, + + hash/2, hash/4, hash_init/1, hash_update/4, + hash_final/1, + + mac/3,4, mac_init/3, mac_update/2, mac_final/2, + + pbkdf2_hmac/5, + + public_encrypt/4, private_decrypt/4, private_encrypt/4, + public_decrypt/4 + + This schema was introduced earlier in: + + crypto_init/3, crypto_init/4, crypto_update/2, + crypto_final/1, crypto_get_data/1, + + crypto_one_time/4, crypto_one_time/5, + crypto_one_time_aead/6, crypto_one_time_aead/7 + + + OTP-17991 Application(s): stdlib + + The function filename:safe_relative_path/1, which has + been deprecated since OTP 25, has been removed. Use + filelib:safe_relative_path/2 instead. + + + OTP-18009 Application(s): stdlib + Related Id(s): PR-5785 + + Fixed string:next_grapheme/1 to return an empty binary + in the tail for binary input for the last grapheme + cluster. + + + --------------------------------------------------------------------- + --- OTP-25.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17224 Application(s): erts, otp + + A test case has been added to the otp_SUITE that test + that the dependency versions for OTP's applications are + correct. The test case uses xref to check if the used + functions are available in the specified dependency + versions. The test case depends on the Erlang/OTP + team's testing infrastructure and will be skipped if + its dependencies are not met. + + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17669 Application(s): erl_docgen, otp + Related Id(s): PR-5226 + + Any exported, but private function or module in + Erlang/OTP now generate an EEP-48 style documentation + entry with the content set to hidden. + + Before this change, exported but private functions and + modules did not have any entry at all. + + + OTP-17710 Application(s): otp + Related Id(s): PR-5597 + + *** HIGHLIGHT *** + + A new DEVELOPMENT how-to guide has been added that + describes how to build and test Erlang/OTP when fixing + bugs or developing new functionality. + + The makefile system has been extended to make it easier + to run tests at different granulates directly from the + command line. This new functionality is described in + the development how-to. + + Using the extended makefile system, testing has been + added to the Github actions run for each opened PR so + that more bugs are caught earlier when bug fixes and + new features are proposed. + + + --------------------------------------------------------------------- + --- asn1-5.0.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17980 Application(s): asn1 + + The atom maybe has been quoted in the source code. + + + Full runtime dependencies of asn1-5.0.19: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.23 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17881 Application(s): common_test + Related Id(s): PR-5581 + + Fix bug when running parallel test cases and together + with one or more ct hooks that would cause the hook + lock process to crash and produce printouts in the ct + logs. + + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17676 Application(s): common_test + Related Id(s): PR-5021 + + Remove unused and undocumented tracer node + functionality. + + + OTP-17720 Application(s): common_test, kernel, stdlib + Related Id(s): PR-5162 + + *** HIGHLIGHT *** + + The new module peer supersedes the slave module. The + slave module is now deprecated and will be removed in + OTP 27. + + peer contains an extended and more robust API for + starting erlang nodes. + + + OTP-17882 Application(s): common_test + Related Id(s): PR-5581 + + The cth_surefire ct hook has been updated to include + the file and line number of the executed test case in + the xml output. + + The performance of the hook has also been improved + greatly for test runs with many test cases. + + + Full runtime dependencies of common_test-1.23: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17810 Application(s): compiler + Related Id(s): GH-5379 + + A subtle bug regarding variable scoping has been + corrected. Consider this example: + + (A=1) + fun() -> A = 2() end + + In the shell, the expression correctly evaluates to 3. + In compiled code, it raised a {badmatch, 2} exception. + + + OTP-17820 Application(s): compiler + + Fixed a rare bug that would crash the compiler during + type optimization. + + + OTP-17860 Application(s): compiler + Related Id(s): GH-5513, OTP-17226 + + Starting in OTP 24, when a fun was created and + immediately used, it would be inlined. An unintended + consequence of the inlining was that what would be a + function_clause exception without the inlining would + now be a rather confusing case_clause exception. This + has been corrected, so that function_clause exceptions + remain function_clause exceptions in inlined code. + + + OTP-18083 Application(s): compiler, stdlib + + If a default record field initialization (_ = Expr) was + used even though all records fields were explicitly + initialized, Expr would not be evaluated. That would + not be a problem, except when Expr would bind a + variable subsequently used, in which case the compiler + would crash. + + As an example, if record #r{} is defined to have only + one field a, the following code would crash the + compiler: + + #r{a=[],_=V=42}, V + + To fix that problem, the compiler will make sure that + Expr is always evaluated at least once. The compiler + will now rewrite the example to essentially: + + V=42, #r{a=[]}, V + + + --- Improvements and New Features --- + + OTP-16702 Application(s): compiler, erts + + *** HIGHLIGHT *** + + To enable more optimizations, BEAM files compiled with + OTP 21 and earlier cannot be loaded in OTP 25. + + + OTP-17151 Application(s): compiler, erts + Related Id(s): ERIERL-590, PR-5479 + + *** HIGHLIGHT *** + + Added support for the compile attribute -nifs() to + empower compiler and loader with information about + which functions may be overridden as NIFs by + erlang:load_nif/2. It is recommended to use this + attribute in all modules that load NIF libraries. + + + OTP-17504 Application(s): compiler, erts + Related Id(s): GH-4971, PR-5281, PR-5752 + + *** HIGHLIGHT *** + + When binary construction using the binary syntax fails, + the error message printed in the shell and by + erl_error:format_exception/3,4 will contain more + detailed information about what went wrong. + + + OTP-17684 Application(s): compiler, erts + Related Id(s): PR-5316, PR-5664 + + *** HIGHLIGHT *** + + The Erlang compiler now includes type information in + BEAM files, and the JIT can now use that type + information to do optimizations such as eliminating or + simplifying type tests. + + + OTP-17685 Application(s): compiler, erts + + Improved the JIT's support for external tools like perf + and gdb, allowing them to show line numbers and even + the original Erlang source code when that can be found. + + To aid them in finding the source code, the + absolute_path compiler option has been added to embed + the absolute file path of a module. + + + OTP-17705 Application(s): compiler + Related Id(s): PR-5411 + + *** HIGHLIGHT *** + + The maybe ... end construction proposed in EEP-49 has + been implemented. It can simplify complex code where + otherwise deeply nested cases would have to be used. + + To enable maybe, give the option -enable-feature + maybe_expr to erlc or add -feature(maybe_expr, enable). + inside the module. + + + OTP-17841 Application(s): compiler, erts + Related Id(s): PR-5694 + + *** HIGHLIGHT *** + + When a record matching or record update fails, a + {badrecord,ExpectedRecordTag} exception used to be + raised. In this release, the exception has been changed + to {badrecord,ActualValue}, where ActualValue is the + actual that was found instead of the expected record. + + + OTP-17842 Application(s): compiler + + Improved optimization of try/catch expressions. + + + OTP-17885 Application(s): compiler + Related Id(s): GH-5140 + + The beam_trim pass of the compiler could be extremely + slow for huge straight-line functions. It will now + compile such functions much faster (down to seconds + from minutes for some huge functions). + + + OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools + + *** HIGHLIGHT *** + + Added support for configurable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (-enable-feature Feature, + -disable-feature Feature and +{feature, Feature, + enable|disable}) to erlc as well as with directives + (-feature(Feature, enable|disable).) in the file. + Similar options can be used to erl for + enabling/disabling features allowed at runtime. The new + maybe expression (EEP-49) is fully supported as the + feature maybe_expr. The features support is documented + in the reference manual. + + + Full runtime dependencies of compiler-8.2: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17858 Application(s): crypto + Related Id(s): ERIERL-728 + + Fix timing bug in ensure_engine_loaded + + When two ensure_engine_loaded() calls were done in + parallel there was a possibility that a crypto lib + function was called by both instead of just one of them + which resulted in an error. This is solved by moving + the implementation from erlang down into a NIF function + that uses a mutex to protect the sensitive part. + + + OTP-17984 Application(s): crypto + + Remove faulty types run_time_error() and + descriptive_error(). + + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17471 Application(s): crypto + Related Id(s): PR-4750 + + Add crypto:hash_equals/2 + + + OTP-17561 Application(s): crypto + + Add /opt/homebrew/opt/openssl to standard locations to + search for OpenSSL cryptolib. + + + OTP-17870 Application(s): crypto + + crypto_dyn_iv_init/3 and crypto_dyn_iv_update/3 are + deprecated. + + + OTP-17965 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The information in error messages are increased. + + Previously the error was signaled with en error class + exception badarg, notsup or error, and also in some + more ways like an other exception or a return value in + a non-standardized format. + + Now it is an error-class exception + {notsup|badarg|error, InfoFromCfile, + Description::string()}. + + The InfoFromCfile is a term with name and line number + of the C-file where the error was found. This is + primarily intended for a crypto maintainer or an + advanced user to find the cause of complicated errors - + maybe in crypto itself. The contents of that term might + be changed in the future. + + The Description is a clear text string that describes + the error. In case of badarg and notsup the intention + is that it should help the user to find the cause ("Bad + key size" as an example). Specially for some error that + are unlikely, the string may not be possible to + understand without deep knowledge of the underlying + cryptolib. Such messages are intended for a crypto + maintainer. + + The first element on call stack (the S in try ... catch + error:E:S .... end) gives more information like the + actual argument list in the call of crypto and the + argument number (if possible) in the call to the NIF + inside crypto. + + The functions in crypto affected by this change are: + + sign/4, sign/5, verify/5, verify/6, + + generate_key/2, generate_key/3, compute_key/4, + + hash/2, hash/4, hash_init/1, hash_update/4, + hash_final/1, + + mac/3,4, mac_init/3, mac_update/2, mac_final/2, + + pbkdf2_hmac/5, + + public_encrypt/4, private_decrypt/4, private_encrypt/4, + public_decrypt/4 + + This schema was introduced earlier in: + + crypto_init/3, crypto_init/4, crypto_update/2, + crypto_final/1, crypto_get_data/1, + + crypto_one_time/4, crypto_one_time/5, + crypto_one_time_aead/6, crypto_one_time_aead/7 + + + OTP-18067 Application(s): crypto + Related Id(s): PR-5866 + + Add Output Feedback mode (OFB) support for AES + encryption / decryption for key sizes of 128, 192 and + 256 bits. + + + OTP-18086 Application(s): crypto + Related Id(s): OTP-16282, OTP-16643, OTP-16644, + OTP-17701, OTP-17702, OTP-17704 + + *** HIGHLIGHT *** + + The cryptolib API deprecated in OpenSSL 3.0 is now no + longer used with a few exceptions listed below. + + Although OpenSSL 3.0.x itself is stable, its usage in + OTP/crypto should still not be considered suitable for + production code. + + The use of ENGINEs is still disabled by default when + using 3.0. + + Deprecated functions are still called in the + otp_test_engine.c (only used in tests), in mac.c + (EVP_PKEY_new_CMAC_key) and five function calls in ec.c + (EVP_PKEY_assign, EC_KEY_get_conv_form, + EVP_PKEY_get1_EC_KEY, EC_KEY_get0_group and + EC_KEY_set_public_key). + + + Full runtime dependencies of crypto-5.1: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- debugger-5.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17554 Application(s): debugger, erts, kernel, observer, + stdlib + Related Id(s): GH-5016, OTP-17821, PR-5408 + + The configuration files .erlang, .erlang.cookie and + .erlang.crypt can now be located in the XDG Config Home + directory. + + See the documentation for each file and + filename:basedir/2 for more details. + + + Full runtime dependencies of debugger-5.3: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-5.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17644 Application(s): dialyzer + Related Id(s): PR-5223 + + *** POTENTIAL INCOMPATIBILITY *** + + Fixed a bug that could cause the type analyzer to enter + an infinite loop. + + + --- Improvements and New Features --- + + OTP-17524 Application(s): dialyzer + + Optimize operations in the erl_types module. + Parallelize the Dialyzer pass remote. + + + OTP-17654 Application(s): dialyzer + Related Id(s): GH-5214 + + Added the missing_return and extra_return options to + raise warnings when specifications differ from inferred + types. These are similar to, but not quite as verbose + as overspecs and underspecs. + + + OTP-17819 Application(s): dialyzer + + The race_conditions option has been removed. + + + OTP-17821 Application(s): dialyzer + Related Id(s): GH-5016, OTP-17554, PR-5408 + + *** POTENTIAL INCOMPATIBILITY *** + + The default location of the plt has been changed from + $HOME to filename:basedir(user_cache,"erlang"). + + + OTP-17826 Application(s): dialyzer + Related Id(s): PR-5498 + + dialyzer will now honor dependencies inside type + declarations. That is, if the declaration of an + exported type changes, all modules using said type will + be revisited. + + + OTP-17897 Application(s): dialyzer + Related Id(s): PR-5651 + + Dialyzer now better understands the types for min/2, + max/2, and erlang:raise/3. Because of that, Dialyzer + can potentially generate new warnings. In particular, + functions that use erlang:raise/3 could now need a spec + with a no_return() return type to avoid an unwanted + warning. + + + OTP-17964 Application(s): dialyzer + Related Id(s): PR-5660 + + The typer_core module has been added to provide an + Erlang API for running typer. + + + OTP-18035 Application(s): dialyzer + Related Id(s): PR-5802 + + Added the --annotate-in-place option to typer, which + can be used to annotate the specs that the tool + inferred directly into the source code files. + + + Full runtime dependencies of dialyzer-5.0: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.2.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17976 Application(s): diameter + Related Id(s): GH-5463 + + Fix decode of non-IP address types; that is, of values + of the derived AVP data format Address whose first two + octets specify an address family other than 1 (IP) or 2 + (IP6). Such values have never been decoded, and were + treated as decode errors. They're now decoded to a + 2-tuple of the integer() address family and binary() + remaining octets, with no family-specific decode. The + 2-tuple distinguishes the decode from the 4-tuple and + 8-tuple IP address decodes. 2-tuples are also now + encoded. + + Note that even currently unassigned address families + are decoded: only the reserved values, 0 and 65535, are + treated as errors. + + + Full runtime dependencies of diameter-2.2.6: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- edoc-1.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17550 Application(s): edoc + Related Id(s): GH-5094, PR-5106 + + Fix unused types warnings in internal edoc module. + + + --- Improvements and New Features --- + + OTP-17556 Application(s): edoc + Related Id(s): PR-5023 + + Add source file to the warning on skipped tags when + generating EEP-48 style docs. + + + OTP-17733 Application(s): edoc + Related Id(s): PR-5205 + + Fix the doc chunks generators to emit documentation + even if there is not module level documentation. + + Fix the doc chunks generators to respect the @hidden + and @private tags properly for both modules and + functions. + + + Full runtime dependencies of edoc-1.2: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-2.0, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.3 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18084 Application(s): erl_docgen + Related Id(s): PR-5948 + + Fix types that are not derived from code to display the + correct information in EEP-48 style documentation + chunks. + + + --- Improvements and New Features --- + + OTP-17669 Application(s): erl_docgen, otp + Related Id(s): PR-5226 + + Any exported, but private function or module in + Erlang/OTP now generate an EEP-48 style documentation + entry with the content set to hidden. + + Before this change, exported but private functions and + modules did not have any entry at all. + + + Full runtime dependencies of erl_docgen-1.3: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.3 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17846 Application(s): erl_interface + Related Id(s): PR-5558 + + erl_call no longer links against nsl on platforms where + gethostbyname is provided by libc. + + + --- Improvements and New Features --- + + OTP-17318 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-4972 + + The following distribution flags are now mandatory: + DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG, + DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS. + This mainly concerns libraries or application that + implement the distribution protocol themselves. + + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17682 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-5347 + + Removed use of node creation value zero as a wildcard. + Also prevent zero from being used as creation by + erl_interface and jinterface nodes. + + + OTP-17802 Application(s): erl_interface + Related Id(s): PR-5347 + + Changed creation arguments, of function ei_connect_init + and friends, from type short to unsigned int for full + 32-bit range. + + + --- 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-13.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17447 Application(s): erts, kernel + Related Id(s): GH-4819 + + The socket option 'reuseaddr' is *no longer* ignored on + Windows. + + + OTP-17569 Application(s): erts + Related Id(s): PR-4793 + + *** POTENTIAL INCOMPATIBILITY *** + + The growth rate of writable binaries has been adjusted + to only increase by 20% after 16MB in size. Before this + change the size would always double. + + This change may degrade write performance of large + binaries. + + + OTP-17661 Application(s): erts, stdlib + Related Id(s): PR-5165 + + Fix reduction counting bug in re:run that caused the + function to yield too frequently when doing global + matches. + + + OTP-17758 Application(s): erts + Related Id(s): PR-5391 + + Fix spelling mistakes in epmd error messages. + + + OTP-17779 Application(s): erts + Related Id(s): GH-5403, PR-5599 + + Fix bug where the "newshell" would trigger a newline at + the column width of the terminal, even if the next + character to be printed was a newline. This would cause + the terminal to render two newlines instead of one. + + + OTP-17832 Application(s): erts, stdlib + Related Id(s): PR-5494 + + Fix the memory value returned from ets:info(Tid,memory) + when the read_concurrency option is used. + + Before this fix the memory used by the scheduler + specific lock cache lines was not counted towards the + total. This caused the returned memory usage to be very + incorrect on systems with many schedulers for tables + with man locks. + + + OTP-17836 Application(s): erts + Related Id(s): PR-5546 + + Fix the undocumented --profile_boot option to work + again. + + + OTP-18020 Application(s): erts, kernel + + [socket] Encode of sockaddr has been improved. + + + OTP-18047 Application(s): erts + Related Id(s): PR-5861 + + Fix erl_child_setup (the program used by + open_port({spawn,...}) and os:cmd/1) to better handle + partial reads from the Erlang VM. + + + OTP-18068 Application(s): erts + Related Id(s): GH-5903 + + The runtime system would crash when attempting to + create more than 33554431 atoms. + + + --- Improvements and New Features --- + + OTP-15991 Application(s): erts, stdlib + Related Id(s): PR-5208 + + *** HIGHLIGHT *** + + Users can now configure ETS tables with the + {write_concurrency, auto} option. This option forces + tables to automatically change the number of locks that + are used at run-time depending on how much concurrency + is detected. The {decentralized_counters, true} option + is enabled by default when {write_concurrency, auto} is + active. + + Benchmark results comparing this option with the other + ETS optimization options are available here: + + https://erlang.org/bench/ets_bench_result_lock_config.html + + + OTP-16464 Application(s): erts, kernel + + The net module now works on Windows. + + + OTP-16702 Application(s): compiler, erts + + *** HIGHLIGHT *** + + To enable more optimizations, BEAM files compiled with + OTP 21 and earlier cannot be loaded in OTP 25. + + + OTP-16852 Application(s): erts + Related Id(s): ERL-1347, PR-5195 + + Optimize minor garbage collection for processes with + large number of binaries, funs and/or external + pids/ports/refs. This is a continuation of the + optimization (OTP-17602) released in OTP-24.1. + + + OTP-16982 Application(s): erts + Related Id(s): PR-5020 + + *** HIGHLIGHT *** + + The signal queue of a process with + message_queue_data=off_heap* has been optimized to + allow parallel reception of signals from multiple + processes. + + This is possible to do as Erlang only guarantees that + signals (i.e., message signals and non-message signals) + sent from a single process to another process are + ordered in send order. However, there are no ordering + guarantees for signals sent from different processes to + a particular process. Therefore, several processes can + send signals in parallel to a specific process without + synchronizing with each other. However, such signal + sending was previously always serialized as the senders + had to acquire the lock for the outer signal queue of + the receiving process. This parallel signal sending + optimization yields much better scalability for signal + sending than what was previously possible, see + https://erlang.org/bench/sigq_bench_result.html for + benchmark results. + + * Information about how to enable the + message_queue_data=off_heap setting can be found in the + documentation of the function erlang:process_flag/2. + + + OTP-17119 Application(s): erts + Related Id(s): PR-4869 + + *** HIGHLIGHT *** + + The JIT now works for 64-bit ARM processors. + + + OTP-17151 Application(s): compiler, erts + Related Id(s): ERIERL-590, PR-5479 + + *** HIGHLIGHT *** + + Added support for the compile attribute -nifs() to + empower compiler and loader with information about + which functions may be overridden as NIFs by + erlang:load_nif/2. It is recommended to use this + attribute in all modules that load NIF libraries. + + + OTP-17224 Application(s): erts, otp + + A test case has been added to the otp_SUITE that test + that the dependency versions for OTP's applications are + correct. The test case uses xref to check if the used + functions are available in the specified dependency + versions. The test case depends on the Erlang/OTP + team's testing infrastructure and will be skipped if + its dependencies are not met. + + + OTP-17304 Application(s): erts, kernel, sasl + + An Erlang installation directory is now relocatable on + the file system given that the paths in the + installation's RELEASES file are paths that are + relative to the installations root directory. The + `release_handler:create_RELEASES/4 function can + generate a RELEASES file with relative paths if its + RootDir parameter is set to the empty string. + + + OTP-17318 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-4972 + + The following distribution flags are now mandatory: + DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG, + DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS. + This mainly concerns libraries or application that + implement the distribution protocol themselves. + + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17504 Application(s): compiler, erts + Related Id(s): GH-4971, PR-5281, PR-5752 + + *** HIGHLIGHT *** + + When binary construction using the binary syntax fails, + the error message printed in the shell and by + erl_error:format_exception/3,4 will contain more + detailed information about what went wrong. + + + OTP-17554 Application(s): debugger, erts, kernel, observer, + stdlib + Related Id(s): GH-5016, OTP-17821, PR-5408 + + The configuration files .erlang, .erlang.cookie and + .erlang.crypt can now be located in the XDG Config Home + directory. + + See the documentation for each file and + filename:basedir/2 for more details. + + + OTP-17555 Application(s): erts + Related Id(s): PR-5027 + + Make byte_size/1 and binary_part/2/3 callable from + match specs (in ETS and tracing). + + + OTP-17558 Application(s): erts, kernel + Related Id(s): GH-5402, OTP-17538, PR-5111 + + Dynamic node name improvements: erlang:is_alive/0 + changed to return true for pending dynamic node name + and new function net_kernel:get_state/0. + + + OTP-17562 Application(s): erts + Related Id(s): GH-4492 + + A new option called short has been added to the + functions erlang:float_to_list and + erlang:float_to_binary. This option creates the + shortest correctly rounded string representation of the + given float that can be converted back to the same + float again. + + + OTP-17608 Application(s): erts, kernel, stdlib + + The tagged tuple tests and fun-calls have been + optimized and are now a little bit cheaper than + previously. + + These optimizations become possible after making sure + that all boxed terms have at least one word allocated + after the arity word. This has been accomplished by + letting all empty tuples refer to the same empty tuple + literal which also reduces memory usage for empty + tuples. + + + OTP-17630 Application(s): erts, stdlib + + The signal queue benchmark in parallel_messages_SUITE + and the ETS benchmark in ets_SUITE have benchmark + result visualization HTML pages with "fill-screen" + buttons to make the graphs bigger. This button did not + work as intended before. When pressing the button for a + graph, the last graph got replaced with a bigger + version and not the one over the button. This is now + fixed. + + + OTP-17636 Application(s): erts + + The test case num_bif_SUITE:t_float_to_string + previously failed sometimes as it assumed a certain + rounding of floats printed with sprintf but the + rounding type is platform specific. + + + OTP-17660 Application(s): erts + Related Id(s): PR-5164 + + Optimize interpreter to create heap binaries of small + match contexts if possible. + + This optimization was already done in the JIT. + + + OTP-17667 Application(s): erts + Related Id(s): PR-5237 + + Optimize integer multiplication for x86 JIT + + + OTP-17682 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-5347 + + Removed use of node creation value zero as a wildcard. + Also prevent zero from being used as creation by + erl_interface and jinterface nodes. + + + OTP-17683 Application(s): erts + Related Id(s): PR-5306 + + *** POTENTIAL INCOMPATIBILITY *** + + Distributed spawn operations now require distributed + spawn_request() support. Distributed spawn_request() + was introduced in OTP 23. That is, distributed spawn + operations against Erlang nodes of releases prior to + OTP 23 will fail. + + + OTP-17684 Application(s): compiler, erts + Related Id(s): PR-5316, PR-5664 + + *** HIGHLIGHT *** + + The Erlang compiler now includes type information in + BEAM files, and the JIT can now use that type + information to do optimizations such as eliminating or + simplifying type tests. + + + OTP-17685 Application(s): compiler, erts + + Improved the JIT's support for external tools like perf + and gdb, allowing them to show line numbers and even + the original Erlang source code when that can be found. + + To aid them in finding the source code, the + absolute_path compiler option has been added to embed + the absolute file path of a module. + + + OTP-17717 Application(s): erts + Related Id(s): PR-5290 + + Add [32-bit] to the Erlang shell title row for 32-bit + VMs. + + + OTP-17728 Application(s): erts + Related Id(s): PR-5284 + + Instructions for how to build the runtime system for + iOS/iPadOS can now be found in HOWTO/INSTALL.md. + + + OTP-17729 Application(s): erts + Related Id(s): PR-5477 + + Add support for static Elixir NIF modules with + non-alphanumeric characters by using new macro + STATIC_ERLANG_NIF_LIBNAME. + + + OTP-17753 Application(s): erts + Related Id(s): GH-5297, PR-5305 + + Add new function caller_line to for trace match + specifications used by erlang:trace_pattern/3. + + This new option puts the line number of the caller into + the trace message sent to the trace receiver. + + + OTP-17762 Application(s): erts + Related Id(s): GH-5204, PR-5219 + + A new erl command line argument +ssrct has been + introduced which will cause the runtime system to skip + reading CPU topology information. This reduce start up + time especially when the CPU topology is large. Reading + of CPU topology information is now also skipped if a + user defined CPU topology is set using the +sct command + line argument. + + + OTP-17772 Application(s): erts + Related Id(s): GH-4965, PR-5644 + + The default time warp mode will change in Erlang/OTP + 26. Added a warning about this upcoming potential + incompatibility to the documentation. + + + OTP-17824 Application(s): erts + + The emulator will no longer mark unused memory as + discardable (e.g. through madvise(2)), as it caused + more problems than it solved. + + + OTP-17841 Application(s): compiler, erts + Related Id(s): PR-5694 + + *** HIGHLIGHT *** + + When a record matching or record update fails, a + {badrecord,ExpectedRecordTag} exception used to be + raised. In this release, the exception has been changed + to {badrecord,ActualValue}, where ActualValue is the + actual that was found instead of the expected record. + + + OTP-17892 Application(s): erts, tools + Related Id(s): PR-5591 + + Removed the previously undocumented and unsupported + emem tool. + + + OTP-17899 Application(s): erts + Related Id(s): PR-5524 + + Remove version number from the default install path on + Windows. + + + OTP-17927 Application(s): erts + Related Id(s): PR-5283 + + On Windows apply the limit flag + JOB_OBJECT_LIMIT_BREAKAWAY_OK in the Erlang service to + be able to start a OS child process with a different + session number. + + + OTP-17945 Application(s): erts + Related Id(s): GH-4759, PR-5809 + + New erl command line option +IOs. It can be used to + disable scheduler thread poll optimization, which has + been seen to cause degraded event latency in some use + cases. + + + OTP-17951 Application(s): erts, kernel + Related Id(s): PR-5656 + + An API for multihomed SCTP connect has been added in + the guise of gen_sctp:connectx_init/* + + + OTP-17968 Application(s): erts, kernel + Related Id(s): OTP-16464 + + [socket] Add encoding of the field hatype of the type + sockaddr_ll (family 'packet'). + + + OTP-17985 Application(s): erts + Related Id(s): GH-5728 + + A cross compilation issue has been fixed about finding + libdlpi during the configure phase. + + + OTP-17999 Application(s): erts + Related Id(s): PR-5768 + + process_info/2 now also accepts parent as argument. + When passed, the process identifier of the parent + process will be returned. + + + OTP-18006 Application(s): erts + Related Id(s): PR-5932 + + Add function attributes to erl_nif and erl_driver APis + to improve compiler detection of interface misuse. + + + OTP-18033 Application(s): erts + Related Id(s): GH-5376, PR-2926 + + The exported type erlang:send_destination/0 has been + introduced. + + + OTP-18036 Application(s): erts + Related Id(s): PR-5846 + + Building of the C/C++ make dependencies on Windows has + been optimized to be a lot faster. + + + OTP-18038 Application(s): erts + + file:sync/1 will now use the F_BARRIERFSYNC flag when + available on Mac OS. + + + Full runtime dependencies of erts-13.0: kernel-8.3, sasl-3.3, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- eunit-2.7.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17884 Application(s): eunit + Related Id(s): GH-5617 + + Minor internal improvements. + + + Full runtime dependencies of eunit-2.7.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- inets-8.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17627 Application(s): inets, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Adjust uri_string:normalize behavior for URIs with + undefined port (URI string with a port colon but no + port value or URI map with port => undefined). + + Remove redundant normalization from http_request + module. + + Before this change, normalize would not remove port + subcomponent in such cases and could for example return + "http://localhost:" URI. + + + OTP-17889 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Fixed typo in Reason term returned from + httpc_handler:handle_http_body. + + After this change, could_not_establish_ssl_tunnel atom + is returned within Reason term. + + + OTP-18063 Application(s): inets + Related Id(s): ERIERL-798 + + With this change, inet6fb4 option is documented for + inets/httpc. Option can be used when IP family needs to + be discovered by a connection attempt. + + + --- Improvements and New Features --- + + OTP-17866 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + This change removes deprecated functions: + http_uri:parse/1, http_uri:parse/2 and + http_uri:scheme_defaults/0. + + This change delays until OTP-26 removal of deprecated + functions: http_uri:encode/1 and http_uri:decode/1. + + This change marks httpd_util:decode_hex/1 and + httpd_util:encode_hex/1 as deprecated. + + + OTP-17997 Application(s): inets + Related Id(s): GH-5782 + + After this change, connect_timeout value is re-used + when upgrading TCP connection to TLS over a proxy. + + + OTP-18088 Application(s): inets + Related Id(s): GH-5276 + + Remove reference to unsupported Apache-like config file + from httpd manual. + + + Full runtime dependencies of inets-8.0: erts-6.0, kernel-6.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-9.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- jinterface-1.13 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17318 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-4972 + + The following distribution flags are now mandatory: + DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG, + DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS. + This mainly concerns libraries or application that + implement the distribution protocol themselves. + + + OTP-17682 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-5347 + + Removed use of node creation value zero as a wildcard. + Also prevent zero from being used as creation by + erl_interface and jinterface nodes. + + + OTP-17961 Application(s): jinterface + Related Id(s): PR-4839 + + Add new abstract class OtpGenericTransportFactory to + allow implementation of any transport protocol without + dependency on epmd. + + + --------------------------------------------------------------------- + --- kernel-8.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17323 Application(s): kernel + + The DNS resolver implementation has been rewritten to + validate replies more thoroughly, and a bit optimized + to create less garbage. + + + OTP-17447 Application(s): erts, kernel + Related Id(s): GH-4819 + + The socket option 'reuseaddr' is *no longer* ignored on + Windows. + + + OTP-17551 Application(s): kernel + Related Id(s): GH-5071, PR-5075 + + Fix bug where using the atoms string or report as the + format when calling logger:log(Level, Format, Args) (or + any other logging function) would cause a crash or + incorrect logging. + + + OTP-17911 Application(s): kernel + Related Id(s): OTP-17843, PR-5611, PR-5687 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + As of OTP 25, global will by default prevent + overlapping partitions due to network issues by + actively disconnecting from nodes that reports that + they have lost connections to other nodes. This will + cause fully connected partitions to form instead of + leaving the network in a state with overlapping + partitions. + + Prevention of overlapping partitions can be disabled + using the prevent_overlapping_partitions kernel(6) + parameter, making global behave like it used to do. + This is, however, problematic for all applications + expecting a fully connected network to be provided, + such as for example mnesia, but also for global itself. + A network of overlapping partitions might cause the + internal state of global to become inconsistent. Such + an inconsistency can remain even after such partitions + have been brought together to form a fully connected + network again. The effect on other applications that + expects that a fully connected network is maintained + may vary, but they might misbehave in very subtle hard + to detect ways during such a partitioning. Since you + might get hard to detect issues without this fix, you + are strongly advised not to disable this fix. Also note + that this fix has to be enabled on all nodes in the + network in order to work properly. + + + OTP-17958 Application(s): kernel + Related Id(s): OTP-17978 + + Starting the helper program for name resolving; + inet_gethost, has been improved to use an absolute file + system path to ensure that the right program is + started. + + If the helper program can not be started - the system + now halts, to avoid running with a silently broken name + resolver. + + + OTP-17986 Application(s): kernel + Related Id(s): PR-5412, PR-5803 + + The type specification for inet_res:getbyname/2,3 has + been corrected to reflect that it can return peculiar + #hostent{} records. + + + OTP-17990 Application(s): kernel + Related Id(s): GH-5801 + + code:module_status/1 would always report BEAM files + loaded from an archive as modified, and + code:modified_modules/0 would always return the name of + all modules loaded from archives. + + + OTP-18001 Application(s): kernel + Related Id(s): GH-5780, PR-5829 + + In logger fix file handler shutdown delay by using + erlang timers instead of the timer module's timers. + + + OTP-18003 Application(s): kernel + Related Id(s): PR-5771 + + Fix the meta data in log events generated by logger on + failure to not contain the original log event's meta + data. + + + OTP-18015 Application(s): kernel + Related Id(s): GH-5828, PR-5845 + + Fix logger file backend to re-create the log folder if + it has been deleted. + + + OTP-18020 Application(s): erts, kernel + + [socket] Encode of sockaddr has been improved. + + + OTP-18070 Application(s): kernel + Related Id(s): PR-5885 + + Fix put_chars requests to the io server with incomplete + unicode data to exit with no_translation error. + + + --- Improvements and New Features --- + + OTP-16464 Application(s): erts, kernel + + The net module now works on Windows. + + + OTP-17304 Application(s): erts, kernel, sasl + + An Erlang installation directory is now relocatable on + the file system given that the paths in the + installation's RELEASES file are paths that are + relative to the installations root directory. The + `release_handler:create_RELEASES/4 function can + generate a RELEASES file with relative paths if its + RootDir parameter is set to the empty string. + + + OTP-17318 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-4972 + + The following distribution flags are now mandatory: + DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG, + DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS. + This mainly concerns libraries or application that + implement the distribution protocol themselves. + + + OTP-17479 Application(s): kernel + Related Id(s): PR-4917 + + Fix os:cmd to work on Android OS. + + + OTP-17554 Application(s): debugger, erts, kernel, observer, + stdlib + Related Id(s): GH-5016, OTP-17821, PR-5408 + + The configuration files .erlang, .erlang.cookie and + .erlang.crypt can now be located in the XDG Config Home + directory. + + See the documentation for each file and + filename:basedir/2 for more details. + + + OTP-17558 Application(s): erts, kernel + Related Id(s): GH-5402, OTP-17538, PR-5111 + + Dynamic node name improvements: erlang:is_alive/0 + changed to return true for pending dynamic node name + and new function net_kernel:get_state/0. + + + OTP-17589 Application(s): kernel + Related Id(s): PR-4926 + + The types for callback result types in gen_statem has + bee augmented with arity 2 types where it is possible + for a callback module to specify the type of the + callback data, so the callback module can get type + validation of it. + + + OTP-17608 Application(s): erts, kernel, stdlib + + The tagged tuple tests and fun-calls have been + optimized and are now a little bit cheaper than + previously. + + These optimizations become possible after making sure + that all boxed terms have at least one word allocated + after the arity word. This has been accomplished by + letting all empty tuples refer to the same empty tuple + literal which also reduces memory usage for empty + tuples. + + + OTP-17617 Application(s): kernel + Related Id(s): PR-5069 + + A net_ticker_spawn_options kernel configuration + parameter with which one can set spawn options for the + distribution channel ticker processes has been + introduced. + + + OTP-17681 Application(s): kernel + Related Id(s): PR-5307 + + *** POTENTIAL INCOMPATIBILITY *** + + The most, or at least the most used, rpc operations now + require erpc support in order to communicate with other + Erlang nodes. erpc was introduced in OTP 23. That is, + rpc operations against Erlang nodes of releases prior + to OTP 23 will fail. + + + OTP-17720 Application(s): common_test, kernel, stdlib + Related Id(s): PR-5162 + + *** HIGHLIGHT *** + + The new module peer supersedes the slave module. The + slave module is now deprecated and will be removed in + OTP 27. + + peer contains an extended and more robust API for + starting erlang nodes. + + + OTP-17784 Application(s): kernel, stdlib + Related Id(s): PR-5792 + + *** HIGHLIGHT *** + + In order to make it easier for the user to manage + multiple outstanding asynchronous call requests, new + functionality utilizing request identifier collections + have been introduced in erpc, gen_server, gen_statem, + and gen_event. + + + OTP-17915 Application(s): kernel, stdlib + Related Id(s): GH-2375, GH-2690, PR-5751 + + Type specifications have been added to the gen_server, + and the documentation has been updated to utilize this. + + This surfaced a few type violations that has been + corrected in global, logger_olp and rpc. + + + OTP-17923 Application(s): kernel + Related Id(s): PR-5646 + + IP address validation functions is_ipv4_address/1, + is_ipv6_address/1 and is_ip_address/1 have been added + to the module inet in Kernel. + + + OTP-17951 Application(s): erts, kernel + Related Id(s): PR-5656 + + An API for multihomed SCTP connect has been added in + the guise of gen_sctp:connectx_init/* + + + OTP-17968 Application(s): erts, kernel + Related Id(s): OTP-16464 + + [socket] Add encoding of the field hatype of the type + sockaddr_ll (family 'packet'). + + + OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools + + *** HIGHLIGHT *** + + Added support for configurable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (-enable-feature Feature, + -disable-feature Feature and +{feature, Feature, + enable|disable}) to erlc as well as with directives + (-feature(Feature, enable|disable).) in the file. + Similar options can be used to erl for + enabling/disabling features allowed at runtime. The new + maybe expression (EEP-49) is fully supported as the + feature maybe_expr. The features support is documented + in the reference manual. + + + Full runtime dependencies of kernel-8.4: crypto-5.0, erts-13.0, + sasl-3.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- megaco-4.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17910 Application(s): megaco + + Megaco test suite(s) use the new peer module for node + starts. + + + Full runtime dependencies of megaco-4.4: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.21 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17930 Application(s): mnesia + + Documentation fixes. + + + Full runtime dependencies of mnesia-4.21: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.12 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17996 Application(s): observer + Related Id(s): PR-5795 + + Fixed default handling of Mac specific menus. + + + OTP-18012 Application(s): observer, runtime_tools + Related Id(s): #5798 + + Reading port socket options on macOS and Windows + "skips" invalid options. + + + --- Improvements and New Features --- + + OTP-17554 Application(s): debugger, erts, kernel, observer, + stdlib + Related Id(s): GH-5016, OTP-17821, PR-5408 + + The configuration files .erlang, .erlang.cookie and + .erlang.crypt can now be located in the XDG Config Home + directory. + + See the documentation for each file and + filename:basedir/2 for more details. + + + Full runtime dependencies of observer-2.12: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.14 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + Full runtime dependencies of odbc-2.14: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17755 Application(s): parsetools + + In the generated code, yecc will now quote all atoms + coming from terminals in the grammar, in order to avoid + conflicts with future reserved words. + + + Full runtime dependencies of parsetools-2.4: erts-6.0, kernel-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17798 Application(s): public_key + Related Id(s): GH-5760 + + *** HIGHLIGHT *** + + Added functions to retrieve OS provided CA-certs. + + + OTP-17890 Application(s): public_key, ssl + + Allow key file passwords to be input as a single + binary, that is we change the data type to be the more + for the purpose logical data type iodata() instead of + string(). + + + OTP-17921 Application(s): public_key + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated public_key functions ssh_decode/2, + ssh_encode/2, ssh_hostkey_fingerprint/1 and + ssh_hostkey_fingerprint/2 are removed. + + They are replaced by ssh_file:decode/2, + ssh_file:encode/2, ssh:hostkey_fingerprint/1 and + ssh:hostkey_fingerprint/2 respectively. + + Note that the decode/2 and encode/2 are not exact + replacement functions, some minor changes may be + needed. Se the manual for more information. + + + Full runtime dependencies of public_key-1.13: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.19 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18012 Application(s): observer, runtime_tools + Related Id(s): #5798 + + Reading port socket options on macOS and Windows + "skips" invalid options. + + + --- Improvements and New Features --- + + OTP-17909 Application(s): runtime_tools + Related Id(s): ERIERL-760 + + dbg:stop/0 now behaves like dbg:stop_clear/0, clearing + all global trace patterns for all functions. + + + OTP-17939 Application(s): runtime_tools + + erts_alloc_config has been scheduled for removal in OTP + 26. It has not produced good configurations for a very + long time, and unfortunately it cannot be fixed in a + backwards compatible manner. + + + Full runtime dependencies of runtime_tools-1.19: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17752 Application(s): sasl + Related Id(s): PR-5302 + + Fix systools:make* to recursively search for source + code when doing a src_tests. + + + --- Improvements and New Features --- + + OTP-17304 Application(s): erts, kernel, sasl + + An Erlang installation directory is now relocatable on + the file system given that the paths in the + installation's RELEASES file are paths that are + relative to the installations root directory. The + `release_handler:create_RELEASES/4 function can + generate a RELEASES file with relative paths if its + RootDir parameter is set to the empty string. + + + Full runtime dependencies of sasl-4.2: erts-10.2, kernel-6.0, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.13 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17612 Application(s): snmp + + Removed deprecated functions slated for removal in + OTP-25. Also removed "dead" code, kept for backward + compatibility reasons. + + + Full runtime dependencies of snmp-5.13: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.14 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17920 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The representation of Edward curves (ed25519 and ed448) + inside ssh had a temporary representation (ed_pri and + ed_pub). + + That is now changed to the public_key form. See the + manual for more information. + + + OTP-18079 Application(s): ssh + Related Id(s): GH-5767 + + Former internal function ssh_file:extract_public_key/1 + documented publicly. + + Internally it was previously in ssh_transport. + + + Full runtime dependencies of ssh-4.14: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.8 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18087 Application(s): ssl + Related Id(s): GH-5961 + + When a TLS-1.3 enabled client tried to talk to a + TLS-1.2 server that coalesces TLS-1.2 handshake message + over one TLS record, the connection could fail due to + some message being handled in the wrong state, this has + been fixed. + + + OTP-18092 Application(s): ssl + Related Id(s): PR-5959 + + Fixed tls-1.3 session ticket lifetime which was + discarded to quickly before. + + + --- Improvements and New Features --- + + OTP-15993 Application(s): ssl + Related Id(s): GH-4143 + + *** HIGHLIGHT *** + + With this change, it is possible to provide several + certificates. Most appropriate will be selected based + on negotiated properties. + + + OTP-17855 Application(s): ssl + Related Id(s): PR-5328 + + Add options for users to be able to set spawn_opts for + TLS processes (sender and receiver) this may be useful + for tuning trade-offs between CPU and Memory usage. + + + OTP-17890 Application(s): public_key, ssl + + Allow key file passwords to be input as a single + binary, that is we change the data type to be the more + for the purpose logical data type iodata() instead of + string(). + + + OTP-18000 Application(s): ssl + Related Id(s): PR-5790 + + Logging enhancement, add location information to the + warning log message. + + + OTP-18014 Application(s): ssl + + Now also accepts the signature_algs_cert option in + TLS-1.2 configuration. + + + OTP-18045 Application(s): ssl + Related Id(s): ERIERL-792, OTP-15993 + + Handle certificate selection correctly for server + fallback and certificate authorities considerations. + + + OTP-18085 Application(s): ssl + + Enhance handling of handshake decoding errors, + especially for certificate authorities extension to + ensure graceful termination. + + + Full runtime dependencies of ssl-10.8: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17370 Application(s): stdlib + Related Id(s): GH-4784 + + Improve the Erlang code linter's check of unused types. + + + OTP-17480 Application(s): stdlib + Related Id(s): GH-4853, PR-4872 + + Fix race condition in proc_lib:stop/3 where the process + is not stopped when the timeout given is very short. + + + OTP-17518 Application(s): stdlib + Related Id(s): GH-4915 + + Maps are now fully supported in by ms_transform. + + + OTP-17544 Application(s): stdlib + Related Id(s): PR-5008 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix gen_server:call with the first argument as self() + to throw an error instead of failing with a timeout. + + The same fix has also been done for gen_statem:call/3, + gen_event:sync_notify/2 and any other functionality + relying on the internal gen:call/3 function. + + A similar fix was also done when using io:format/2 and + the current group_leader was set to the current + process. + + + OTP-17566 Application(s): stdlib + Related Id(s): GH-5093, PR-5095 + + erl_pp printed unary - and + operators with a space + between the operator and the operand. This is fixed by + not having any space in between. + + + OTP-17627 Application(s): inets, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Adjust uri_string:normalize behavior for URIs with + undefined port (URI string with a port colon but no + port value or URI map with port => undefined). + + Remove redundant normalization from http_request + module. + + Before this change, normalize would not remove port + subcomponent in such cases and could for example return + "http://localhost:" URI. + + + OTP-17661 Application(s): erts, stdlib + Related Id(s): PR-5165 + + Fix reduction counting bug in re:run that caused the + function to yield too frequently when doing global + matches. + + + OTP-17832 Application(s): erts, stdlib + Related Id(s): PR-5494 + + Fix the memory value returned from ets:info(Tid,memory) + when the read_concurrency option is used. + + Before this fix the memory used by the scheduler + specific lock cache lines was not counted towards the + total. This caused the returned memory usage to be very + incorrect on systems with many schedulers for tables + with man locks. + + + OTP-17878 Application(s): stdlib + + Avoid confusion by correcting the argument order in the + gen_event crash log printout. + + + OTP-18009 Application(s): stdlib + Related Id(s): PR-5785 + + *** POTENTIAL INCOMPATIBILITY *** + + Fixed string:next_grapheme/1 to return an empty binary + in the tail for binary input for the last grapheme + cluster. + + + OTP-18034 Application(s): stdlib + Related Id(s): GH-4622, PR-4661 + + Fixed type specifications of the supervisor:sup_name/0 + and supervisor:sup_ref/0 types. + + + OTP-18083 Application(s): compiler, stdlib + + If a default record field initialization (_ = Expr) was + used even though all records fields were explicitly + initialized, Expr would not be evaluated. That would + not be a problem, except when Expr would bind a + variable subsequently used, in which case the compiler + would crash. + + As an example, if record #r{} is defined to have only + one field a, the following code would crash the + compiler: + + #r{a=[],_=V=42}, V + + To fix that problem, the compiler will make sure that + Expr is always evaluated at least once. The compiler + will now rewrite the example to essentially: + + V=42, #r{a=[]}, V + + + --- Improvements and New Features --- + + OTP-15991 Application(s): erts, stdlib + Related Id(s): PR-5208 + + *** HIGHLIGHT *** + + Users can now configure ETS tables with the + {write_concurrency, auto} option. This option forces + tables to automatically change the number of locks that + are used at run-time depending on how much concurrency + is detected. The {decentralized_counters, true} option + is enabled by default when {write_concurrency, auto} is + active. + + Benchmark results comparing this option with the other + ETS optimization options are available here: + + https://erlang.org/bench/ets_bench_result_lock_config.html + + + OTP-17351 Application(s): stdlib + Related Id(s): GH-4673, PR-4952 + + *** HIGHLIGHT *** + + The format_status/2 callback for gen_server, gen_statem + and gen_event has been deprecated in favor of the new + format_status/1 callback. + + The new callback adds the possibility to limit and + change many more things than the just the state, such + as the last received message, the reason for + terminating and more events specific to each type of + behavior. See the respective modules documentation for + more details. + + + OTP-17481 Application(s): stdlib + Related Id(s): PR-4811 + + *** HIGHLIGHT *** + + The timer module has been modernized and made more + efficient, which makes the timer server less + susceptible to being overloaded. The timer:sleep/1 + function now accepts an arbitrarily large integer. + + + OTP-17523 Application(s): stdlib + Related Id(s): PR-4928 + + Add lists:enumerate/[1,2]. + + + OTP-17554 Application(s): debugger, erts, kernel, observer, + stdlib + Related Id(s): GH-5016, OTP-17821, PR-5408 + + The configuration files .erlang, .erlang.cookie and + .erlang.crypt can now be located in the XDG Config Home + directory. + + See the documentation for each file and + filename:basedir/2 for more details. + + + OTP-17592 Application(s): stdlib + Related Id(s): ERIERL-663, PR-5243 + + Support native time unit in calendar functions + system_time_to_rfc3339/2 and rfc3339_to_system_time. + + + OTP-17608 Application(s): erts, kernel, stdlib + + The tagged tuple tests and fun-calls have been + optimized and are now a little bit cheaper than + previously. + + These optimizations become possible after making sure + that all boxed terms have at least one word allocated + after the arity word. This has been accomplished by + letting all empty tuples refer to the same empty tuple + literal which also reduces memory usage for empty + tuples. + + + OTP-17630 Application(s): erts, stdlib + + The signal queue benchmark in parallel_messages_SUITE + and the ETS benchmark in ets_SUITE have benchmark + result visualization HTML pages with "fill-screen" + buttons to make the graphs bigger. This button did not + work as intended before. When pressing the button for a + graph, the last graph got replaced with a bigger + version and not the one over the button. This is now + fixed. + + + OTP-17720 Application(s): common_test, kernel, stdlib + Related Id(s): PR-5162 + + *** HIGHLIGHT *** + + The new module peer supersedes the slave module. The + slave module is now deprecated and will be removed in + OTP 27. + + peer contains an extended and more robust API for + starting erlang nodes. + + + OTP-17778 Application(s): stdlib + Related Id(s): GH-5368 + + This change introduces quote and unquote functions in + uri_string module - a replacement for deprecated encode + and decode functions from http_uri. + + + OTP-17784 Application(s): kernel, stdlib + Related Id(s): PR-5792 + + *** HIGHLIGHT *** + + In order to make it easier for the user to manage + multiple outstanding asynchronous call requests, new + functionality utilizing request identifier collections + have been introduced in erpc, gen_server, gen_statem, + and gen_event. + + + OTP-17869 Application(s): stdlib + Related Id(s): PR-5595 + + Update to the Unicode 14.0 specification. + + + OTP-17901 Application(s): stdlib + Related Id(s): GH-4968, PR-5649 + + The following ets types have been renamed to a clearer + name: tab/0 to table/0 and comp_match_spec/0 to + compiled_match_spec/0. + + The types table_access/0 and table_type/0 have been + exported. + + + OTP-17908 Application(s): stdlib + Related Id(s): GH-5655, PR-5669 + + Add support for locating .asn1 files to the default + search rules of filelib:find_file/1 and + filelib:find_source/1. + + + OTP-17915 Application(s): kernel, stdlib + Related Id(s): GH-2375, GH-2690, PR-5751 + + Type specifications have been added to the gen_server, + and the documentation has been updated to utilize this. + + This surfaced a few type violations that has been + corrected in global, logger_olp and rpc. + + + OTP-17925 Application(s): stdlib + Related Id(s): PR-5631 + + *** POTENTIAL INCOMPATIBILITY *** + + The non-local function handler for the erl_eval can now + be called with either two or three arguments. When + called with three arguments, the first argument is the + annotation for the node in the abstract format. + + All errors during evaluation will now be passed through + erlang:raise/3. If the restricted shell is active and + it does not let erlang:raise/3 through, evaluation + errors will be printed in less clear way. See the + documentation for restricted shell in shell. + + + OTP-17953 Application(s): stdlib + Related Id(s): PR-5621 + + *** HIGHLIGHT *** + + Added filelib:ensure_path/1 that ensures that all + directories for the given path exists (unlike + filelib:ensure_dir/1, which will not create the last + segment of the path). + + + OTP-17969 Application(s): stdlib + Related Id(s): PR-5588 + + *** HIGHLIGHT *** + + The functions groups_from_list/2 and groups_from_list/3 + have been added to the maps module. + + + OTP-17974 Application(s): stdlib + Related Id(s): GH-5683 + + gen_server has been refactored to throw more readable + exceptions when a callback returns bad values in the + Timeout field (timeout() | 'hibernate' | + {'continue,_}), and also to verify that argument in the + gen_server:enter_loop/3,4,5 API function. + + + OTP-17977 Application(s): stdlib + Related Id(s): GH-5606, PR-5766 + + *** HIGHLIGHT *** + + The functions uniq/1 and uniq/2 for removing duplicates + have been added to the lists module. + + + OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools + + *** HIGHLIGHT *** + + Added support for configurable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (-enable-feature Feature, + -disable-feature Feature and +{feature, Feature, + enable|disable}) to erlc as well as with directives + (-feature(Feature, enable|disable).) in the file. + Similar options can be used to erl for + enabling/disabling features allowed at runtime. The new + maybe expression (EEP-49) is fully supported as the + feature maybe_expr. The features support is documented + in the reference manual. + + + OTP-17991 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The function filename:safe_relative_path/1, which has + been deprecated since OTP 25, has been removed. Use + filelib:safe_relative_path/2 instead. + + + OTP-18011 Application(s): stdlib + + *** HIGHLIGHT *** + + A new PRNG have been added to the rand module: mwc59 + which has been developed in collaboration with + Sebastiano Vigna. It is intended for applications that + need really fast pseudo-random numbers, and it comes + with two output value scramblers, one fast and one + thorough. + + Two internal functions for the exsp generator have also + been exported so they can be used outside the rand + plug-in framework to shave off some overhead. + + The internal splitmix64 generator has also been + exported which can be useful for seeding other kinds of + PRNG:s than its own. + + + Full runtime dependencies of stdlib-4.0: compiler-5.0, crypto-4.5, + erts-12.0, kernel-8.4, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.0 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17894 Application(s): syntax_tools + Related Id(s): PR-5509 + + *** POTENTIAL INCOMPATIBILITY *** + + The erl_syntax_lib:analyze_attribute/1 function would + return {Name, {Name, Value}} instead of {Name, Value} + (which is the documented return value). + + + --- Improvements and New Features --- + + OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools + + *** HIGHLIGHT *** + + Added support for configurable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (-enable-feature Feature, + -disable-feature Feature and +{feature, Feature, + enable|disable}) to erlc as well as with directives + (-feature(Feature, enable|disable).) in the file. + Similar options can be used to erl for + enabling/disabling features allowed at runtime. The new + maybe expression (EEP-49) is fully supported as the + feature maybe_expr. The features support is documented + in the reference manual. + + + Full runtime dependencies of syntax_tools-3.0: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tools-3.5.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17892 Application(s): erts, tools + Related Id(s): PR-5591 + + Removed the previously undocumented and unsupported + emem tool. + + + Full runtime dependencies of tools-3.5.3: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.2 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17414 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, otp, snmp, wx + Related Id(s): PR-4967 + + Input for configure scripts adapted to autoconf 2.71. + + + OTP-17950 Application(s): wx + + *** POTENTIAL INCOMPATIBILITY *** + + Added aux1Down and aux2Down fields to the wxMouseState + record. Since one record have been changed a + recompilation of user code might be required. + + + OTP-18008 Application(s): wx + Related Id(s): PR-5816 + + Add mac specific menubar functions. + + + Full runtime dependencies of wx-2.2: erts-12.0, kernel-8.0, + stdlib-3.15 + + + --------------------------------------------------------------------- + --- xmerl-1.3.29 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17935 Application(s): xmerl + Related Id(s): PR-5590 + + Fixed misspellings in both documentation, comments and + code (internal data structures). + + + Full runtime dependencies of xmerl-1.3.29: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.1.1.README.txt b/release-notes/OTP-25.1.1.README.txt new file mode 100644 index 0000000..9de8e77 --- /dev/null +++ b/release-notes/OTP-25.1.1.README.txt @@ -0,0 +1,222 @@ +Patch Package: OTP 25.1.1 +Git Tag: OTP-25.1.1 +Date: 2022-10-03 +Trouble Report Id: OTP-18240, OTP-18245, OTP-18249, OTP-18258, + OTP-18262, OTP-18263, OTP-18264, OTP-18266 +Seq num: ERIERL-821, ERIERL-859, GH-6309, GH-6320, + GH-6323, GH-6328 +System: OTP +Release: 25 +Application: asn1-5.0.21, dialyzer-5.0.3, erts-13.1.1, + eunit-2.8.1, kernel-8.5.1, ssl-10.8.5, + stdlib-4.1.1 +Predecessor: OTP 25.1 + + Check out the git tag OTP-25.1.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- asn1-5.0.21 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.21 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18245 Application(s): asn1 + Related Id(s): ERIERL-859 + + For the per and uper ASN.1 encoding rules, encoding and + decoding the SEQUENCE OF and SET OF constructs with + 16384 items or more is now supported. + + + Full runtime dependencies of asn1-5.0.21: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- dialyzer-5.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.0.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18262 Application(s): dialyzer + Related Id(s): GH-6323 + + Dialyzer could crash when analyzing Elixir code that + used intricate macros. + + + --- Improvements and New Features --- + + OTP-18263 Application(s): dialyzer + Related Id(s): ERIERL-821 + + The --input_list_file option has been added. + + + Full runtime dependencies of dialyzer-5.0.3: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-13.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18240 Application(s): erts, kernel + Related Id(s): #6285 + + Listen sockets created with the socket module, leaked + (erlang-) monitors. + + + OTP-18258 Application(s): erts + Related Id(s): GH-6309, PR-6324 + + Notifications about available distribution data sent to + distribution controller processes could be lost. + Distribution controller processes can be used when + implementing an alternative distribution carrier. The + default distribution over tcp was not effected and the + bug was also not present on x86/x86_64 platforms. + + + Full runtime dependencies of erts-13.1.1: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- eunit-2.8.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.8.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18264 Application(s): eunit + Related Id(s): GH-6320, PR-6322 + + With this change, eunit exact_execution option works + with application primitive. + + + Full runtime dependencies of eunit-2.8.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- kernel-8.5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18240 Application(s): erts, kernel + Related Id(s): #6285 + + Listen sockets created with the socket module, leaked + (erlang-) monitors. + + + OTP-18249 Application(s): kernel, stdlib + Related Id(s): PR-6301 + + peer nodes failed to halt when the process supervising + the control connection crashed. When an alternative + control connection was used, this supervision process + also quite frequently crashed when the peer node was + stopped by the node that started it which caused the + peer node to linger without ever halting. + + + Full runtime dependencies of kernel-8.5.1: crypto-5.0, erts-13.1, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- ssl-10.8.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.8.5 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18266 Application(s): ssl + Related Id(s): GH-6328 + + Fixes handling of symlinks in cacertfile option. + + + Full runtime dependencies of ssl-10.8.5: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-4.1.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18249 Application(s): kernel, stdlib + Related Id(s): PR-6301 + + peer nodes failed to halt when the process supervising + the control connection crashed. When an alternative + control connection was used, this supervision process + also quite frequently crashed when the peer node was + stopped by the node that started it which caused the + peer node to linger without ever halting. + + + Full runtime dependencies of stdlib-4.1.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.1.2.1.README.txt b/release-notes/OTP-25.1.2.1.README.txt new file mode 100644 index 0000000..72697b0 --- /dev/null +++ b/release-notes/OTP-25.1.2.1.README.txt @@ -0,0 +1,74 @@ +Patch Package: OTP 25.1.2.1 +Git Tag: OTP-25.1.2.1 +Date: 2023-01-18 +Trouble Report Id: OTP-18379, OTP-18383, OTP-18388 +Seq num: ERIERL-904, ERIERL-905 +System: OTP +Release: 25 +Application: erts-13.1.2.1, snmp-5.13.1.1 +Predecessor: OTP 25.1.2 + + Check out the git tag OTP-25.1.2.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.1.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.2.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18383 Application(s): erts + Related Id(s): ERIERL-905 + + Fixed a bug in selective receive optimization that + could crash 32-bit emulators. + + + OTP-18388 Application(s): erts + Related Id(s): OTP-17462, PR-6662 + + A race condition which was very rarely triggered could + cause the signal queue of a process to become + inconsistent causing the runtime system to crash. + + + Full runtime dependencies of erts-13.1.2.1: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- snmp-5.13.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.1.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18379 Application(s): snmp + Related Id(s): ERIERL-904 + + Single threaded agent crash when vacm table not + properly initiated. + + + Full runtime dependencies of snmp-5.13.1.1: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.1.2.README.txt b/release-notes/OTP-25.1.2.README.txt new file mode 100644 index 0000000..516ea57 --- /dev/null +++ b/release-notes/OTP-25.1.2.README.txt @@ -0,0 +1,72 @@ +Patch Package: OTP 25.1.2 +Git Tag: OTP-25.1.2 +Date: 2022-10-24 +Trouble Report Id: OTP-18288, OTP-18290 +Seq num: ERIERL-866, ERIERL-868 +System: OTP +Release: 25 +Application: erts-13.1.2, mnesia-4.21.2 +Predecessor: OTP 25.1.1 + + Check out the git tag OTP-25.1.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.1.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18290 Application(s): erts + Related Id(s): ERIERL-866, PR-6378 + + Add abandon carrier free utilization limit (+Muacful) + option to erts_alloc. This option allows the user to + mark unused segments in a memory carrier as re-useable + by the OS if needed. + + This functionality was a non-configurable default + before Erlang/OTP 25, but removed due to performance + issues. + + + Full runtime dependencies of erts-13.1.2: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- mnesia-4.21.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18288 Application(s): mnesia + Related Id(s): ERIERL-868 + + Don't fill the logs if mnesia can't connect to all + nodes, due to partitioned network. + + + Full runtime dependencies of mnesia-4.21.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.1.README.txt b/release-notes/OTP-25.1.README.txt new file mode 100644 index 0000000..efa5649 --- /dev/null +++ b/release-notes/OTP-25.1.README.txt @@ -0,0 +1,1364 @@ +Patch Package: OTP 25.1 +Git Tag: OTP-25.1 +Date: 2022-09-21 +Trouble Report Id: OTP-17115, OTP-17340, OTP-17934, OTP-18032, + OTP-18037, OTP-18044, OTP-18050, OTP-18091, + OTP-18093, OTP-18099, OTP-18102, OTP-18104, + OTP-18107, OTP-18109, OTP-18115, OTP-18118, + OTP-18121, OTP-18125, OTP-18127, OTP-18133, + OTP-18134, OTP-18138, OTP-18139, OTP-18142, + OTP-18144, OTP-18146, OTP-18147, OTP-18148, + OTP-18151, OTP-18152, OTP-18153, OTP-18154, + OTP-18160, OTP-18161, OTP-18162, OTP-18163, + OTP-18165, OTP-18166, OTP-18171, OTP-18172, + OTP-18178, OTP-18179, OTP-18180, OTP-18181, + OTP-18182, OTP-18183, OTP-18184, OTP-18186, + OTP-18187, OTP-18189, OTP-18191, OTP-18193, + OTP-18194, OTP-18195, OTP-18196, OTP-18199, + OTP-18200, OTP-18201, OTP-18202, OTP-18203, + OTP-18205, OTP-18207, OTP-18208, OTP-18214, + OTP-18215, OTP-18216, OTP-18217, OTP-18218, + OTP-18219, OTP-18220, OTP-18222, OTP-18229, + OTP-18232, OTP-18233, OTP-18234, OTP-18239, + OTP-18241, OTP-18243, OTP-18244 +Seq num: ERIERL-456, ERIERL-661, ERIERL-666, + ERIERL-817, ERIERL-826, ERIERL-829, + ERIERL-833, ERIERL-834, ERIERL-835, + ERIERL-836, ERIERL-837, ERIERL-852, + ERIERL-855, ERL-97, GH-3064, GH-5719, + GH-5981, GH-6021, GH-6024, GH-6026, GH-6105, + GH-6122, GH-6158, GH-6163, GH-6164, GH-6169, + GH-6184, GH-6219, GH-6222, GH-6239, GH-6241, + GH-6242, GH-6244, GH-6247, GH-6277 +System: OTP +Release: 25 +Application: asn1-5.0.20, common_test-1.23.1, + compiler-8.2.1, crypto-5.1.2, dialyzer-5.0.2, + diameter-2.2.7, erl_docgen-1.4, erts-13.1, + eunit-2.8, inets-8.1, jinterface-1.13.1, + kernel-8.5, megaco-4.4.1, observer-2.13, + parsetools-2.4.1, public_key-1.13.1, + snmp-5.13.1, ssh-4.15, ssl-10.8.4, + stdlib-4.1, xmerl-1.3.30 +Predecessor: OTP 25.0.4 + + Check out the git tag OTP-25.1, and build a full OTP system including + documentation. Apply one or more applications from this build as + patches to your installation using the 'otp_patch_apply' tool. For + information on install requirements, see descriptions for each + application version below. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-18153 Application(s): crypto + + Crypto is now considered to be usable with the OpenSSL + 3.0 cryptolib for production code. + + ENGINE and FIPS are not yet fully functional. + + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions are removed from the documentation and + therefor the API, but they are left in the code for + compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + OTP-18241 Application(s): ssl + + A vulnerability has been discovered and corrected. It + is registered as CVE-2022-37026 "Client Authentication + Bypass". Corrections have been released on the + supported tracks with patches 23.3.4.15, 24.3.4.2, and + 25.0.2. The vulnerability might also exist in older OTP + versions. We recommend that impacted users upgrade to + one of these versions or later on the respective + tracks. OTP 25.1 would be an even better choice. + Impacted are those who are running an ssl/tls/dtls + server using the ssl application either directly or + indirectly via other applications. For example via + inets (httpd), cowboy, etc. Note that the vulnerability + only affects servers that request client certification, + that is sets the option {verify, verify_peer}. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions are removed from the documentation and + therefor the API, but they are left in the code for + compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + OTP-18239 Application(s): stdlib + + When changing callback module in gen_statem the + state_enter calls flag from the old module was used in + for the first event in the new module, which could + confuse the new module and cause malfunction. This bug + has been corrected. + + With this change some sys debug message formats have + been modified, which can be a problem for debug code + relying on the format. + + + --------------------------------------------------------------------- + --- OTP-25.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + --------------------------------------------------------------------- + --- asn1-5.0.20 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.20 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of asn1-5.0.20: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.23.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.23.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18208 Application(s): common_test + Related Id(s): ERIERL-852, PR-6229 + + Fix cth_surefire to handle when a suite is not compiled + with debug_info. This bug has been present since + Erlang/OTP 25.0. + + + --- Improvements and New Features --- + + OTP-18138 Application(s): common_test + Related Id(s): GH-5719, PR-6029 + + Common Test now preserves stack traces for throws. + + + Full runtime dependencies of common_test-1.23.1: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18125 Application(s): compiler + Related Id(s): GH-6026 + + The compiler will now forbid using the empty atom '' as + module name. Also forbidden are modules names + containing control characters, and module names + containing only spaces and soft hyphens. + + + OTP-18162 Application(s): compiler + Related Id(s): PR-6102 + + The bin_opt_info and recv_opt_info options would cause + the compiler to crash when attempting to compile + generated code without location information. + + + OTP-18182 Application(s): compiler + Related Id(s): GH-6163 + + In rare circumstances involving floating point + operations, the compiler could terminate with an + internal consistency check failure. + + + OTP-18183 Application(s): compiler + Related Id(s): GH-6169 + + In rare circumstances when doing arithmetic + instructions on non-numbers, the compiler could crash. + + + OTP-18184 Application(s): compiler + Related Id(s): GH-6164 + + In rare circumstances, complex boolean expressions in + nested cases could cause the compiler to crash. + + + OTP-18186 Application(s): compiler + + Expression similar to #{assoc:=V} = #key=>self()}, V + would return the empty map instead of raising an + exception. + + + OTP-18187 Application(s): compiler + Related Id(s): GH-6184 + + Eliminated a crash in the beam_ssa_bool pass of the + compiler when compiling a complex guard expression. + + + OTP-18202 Application(s): compiler + Related Id(s): GH-6222 + + In rare circumstances, the compiler could crash with an + internal consistency check failure. + + + OTP-18214 Application(s): compiler + Related Id(s): GH-6158 + + When compiling with the option inline_list_funcs, the + compiler could produce a nonsensical warning. + + + OTP-18234 Application(s): compiler + Related Id(s): GH-6277 + + When given the no_ssa_opt option, the compiler could + terminate with an internal consistency failure + diagnostic when compiling map matching. + + + --- Improvements and New Features --- + + OTP-18050 Application(s): compiler + + Made warnings for existing atoms being keywords in + experimental features more precise, by not warning + about quoted atoms. + + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of compiler-8.2.1: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18147 Application(s): crypto + Related Id(s): GH-6024, PR-6056 + + Fix configure with --with-ssl and + --disable-dynamic-ssl-lib on Windows. + + + OTP-18152 Application(s): crypto + + Remove all references correctly in the garbage + collection if an engine handle was not explicit + unloaded. + + + OTP-18172 Application(s): crypto + Related Id(s): ERIERL-826 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the behaviour of the engine load/unload + functions + + The engine load/unload functions have got changed + semantics to get a more consistent behaviour and work + correct when variables are garbage collected. + + The load functions now don't register the methods for + the engine to replace. That will now be handled with + the new functions engine_register/engine_unregister if + needed. + + Some functions are removed from the documentation and + therefor the API, but they are left in the code for + compatibility. + + -- engine_load/4: is now the same as engine_load/3 + + -- engine_unload/2: is now the same as engine_unload/1 + + -- ensure_engine_loaded/3: is now the same as + ensure_engine_loaded/2 + + -- ensure_engine_unloaded/1, ensure_engine_unloaded/2: + is now the same as engine_unload/1 + + + OTP-18200 Application(s): crypto + + Fixed a naming bug for AES-CFB and Blowfish-CFB/OFB + when linked with OpenSSL 3.0 cryptolib. + + + OTP-18205 Application(s): crypto, public_key + Related Id(s): GH-6219 + + Sign/verify does now behave as in OTP-24 and earlier + for eddsa. + + + --- Improvements and New Features --- + + OTP-18037 Application(s): crypto + + Pass elliptic curve names from crypto.erl to crypto's + nif. + + + OTP-18133 Application(s): crypto + + The configure option --disable-deprecated-warnings is + removed. It was used for some releases when the support + for OpenSSL 3.0 was not completed. It is not needed in + OTP 25. + + + OTP-18153 Application(s): crypto + + *** HIGHLIGHT *** + + Crypto is now considered to be usable with the OpenSSL + 3.0 cryptolib for production code. + + ENGINE and FIPS are not yet fully functional. + + + OTP-18217 Application(s): crypto + + Do not exit if the legacy provider is missing in + libcrypto 3.0. + + + Full runtime dependencies of crypto-5.1.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.0.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18127 Application(s): dialyzer + Related Id(s): ERIERL-817 + + Two bugs have been fixed in Dialyzer's checking of + behaviors: + + When a *mandatory* callback function is present but not + exported, Dialyzer would not complain about a missing + callback. + + When an *optional* callback function was not exported + and had incompatible arguments and/or the return values + were incompatible, Dialyzer would complain. This has + been changed to suppress the warning, because the + function might not be intended to be a callback + function, for instance if a release added a new + optional callback function (such as format_status/1 for + the gen_server behaviour added in OTP 25). + + + OTP-18148 Application(s): dialyzer + Related Id(s): PR-6068 + + The no_extra_return and no_missing_return warnings can + now be suppressed through -dialyzer directives in + source code. + + + Full runtime dependencies of dialyzer-5.0.2: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.2.7 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.2.7 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of diameter-2.2.7: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The erl_docgen-1.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18244 Application(s): erl_docgen + + Update DTD to allow XML tag em under pre. + + + Full runtime dependencies of erl_docgen-1.4: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-13.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17934 Application(s): erts, kernel, stdlib + Related Id(s): PR-6007 + + Fixed inconsistency bugs in global due to + nodeup/nodedown messages not being delivered + before/after traffic over connections. Also fixed + various other inconsistency bugs and deadlocks in both + global_group and global. + + As building blocks for these fixes, a new BIF + erlang:nodes/2 has been introduced and + net_kernel:monitor_nodes/2 has been extended. + + The -hidden and -connect_all command line arguments did + not work if multiple instances were present on the + command line which has been fixed. The new kernel + parameter connect_all has also been introduced in order + to replace the -connect_all command line argument. + + + OTP-18091 Application(s): erts, kernel + Related Id(s): #5789 + + Fixed IPv6 multicast_if and membership socket options. + + + OTP-18093 Application(s): erts + Related Id(s): OTP-18104, PR-5987 + + Accept funs (NEW_FUN_EXT) with incorrectly encoded size + field. This is a workaround for a bug (OTP-18104) + existing in OTP 23 and 24 that could cause incorrect + size fields in certain cases. The emulator does not use + the decoded size field, but erl_interface still does + and is not helped by this workaround. + + + OTP-18102 Application(s): erts, kernel + Related Id(s): #5904 + + Fixed issue with inet:getifaddrs hanging on pure IPv6 + Windows + + + OTP-18104 Application(s): erts + Related Id(s): OTP-18093 + + Fix faulty distribution encoding of terms with either + + -- a fun with bit-string or export-fun in its + environment when encoded toward a not yet established + (pending) connection + + -- or a fun with a binary/bitstring, in its + environment, referring to an off-heap binary (larger + than 64 bytes). + + The symptom could be failed decoding on the receiving + side leading to aborted connection. Fix OTP-18093 is a + workaround for theses bugs that makes the VM accepts + such faulty encoded funs. + + The first encoding bug toward pending connection exists + only in OTP 23 and 24, but the second one exists also + on OTP 25. + + + OTP-18144 Application(s): erts + Related Id(s): GH-5981 + + Fixed emulator crash that could happen during crashdump + generation of ETS tables with options ordered_set and + {write_concurrency,true}. + + + OTP-18160 Application(s): erts + Related Id(s): PR-6103 + + Retrieval of monotonic and system clock resolution on + MacOS could cause a crash and/or erroneous results. + + + OTP-18161 Application(s): erts + Related Id(s): PR-6081 + + Fix bug where the max allowed size of erl +hmax was + lower than what was allowed by process_flag. + + + OTP-18201 Application(s): erts + + On computers with ARM64 (AArch64) processors, the JIT + could generate incorrect code when more than 4095 bits + were skipped at the tail end of a binary match. + + + OTP-18216 Application(s): erts + Related Id(s): GH-6239, PR-6240 + + In rare circumstances, an is_binary/1 guard test could + succeed when given a large integer. + + + OTP-18218 Application(s): erts + Related Id(s): ERIERL-855 + + Fix bug causing ets:info (and sometimes ets:whereis) to + return 'undefined' for an existing table if a + concurrent process were doing ets:insert with a long + list on the same table. + + + OTP-18222 Application(s): erts + Related Id(s): GH-6242, PR-6248 + + Fix writing and reading of more than 2 GB in a single + read/write operation on macOS. Before this fix + attempting to read/write more than 2GB would result in + {error,einval}. + + + OTP-18243 Application(s): erts + Related Id(s): GH-6247, PR-6258 + + Fix bug sometimes causing emulator crash at node + shutdown when there are pending connections. Only seen + when running duel distribution protocols, inet_drv and + inet_tls_dist. + + + --- Improvements and New Features --- + + OTP-17340 Application(s): erts + Related Id(s): PR-6133 + + Yield when adjusting large process message queues due + to + + -- copying terms from a literal area prior to removing + the literal area. + + -- changing the message_queue_data state from on_heap + to off_heap. + + The message queue adjustment work will now be + interleaved with all other types of work that processes + have to do, even other message queue adjustment work. + + + OTP-18032 Application(s): erts, kernel + + Add rudimentary debug feature (option) for the + inet-driver based sockets, such as gen_tcp and gen_udp. + + + OTP-18107 Application(s): erts, kernel + Related Id(s): PR-6009 + + Introduced the hidden and dist_listen options to + net_kernel:start/2. + + Also documented the -dist_listen command line argument + which was erroneously documented as a kernel parameter + and not as a command line argument. + + + OTP-18109 Application(s): erts + + New documentation chapter "Debugging NIFs and Port + Drivers" under Interoperability Tutorial. + + + OTP-18199 Application(s): erts, stdlib + Related Id(s): PR-5790 + + Add new API function erl_features:configurable/0 + + + Full runtime dependencies of erts-13.1: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- eunit-2.8 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.8 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18181 Application(s): eunit + Related Id(s): ERL-97, GH-3064, PR-5461 + + With this change, Eunit can optionally not try to + execute related module with "_tests" suffix. This might + be used for avoiding duplicated executions when source + and test modules are located in the same folder. + + + Full runtime dependencies of eunit-2.8: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- inets-8.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18118 Application(s): inets + + Add httpc:ssl_verify_host_options/1 to help setting + default ssl options for the https client. + + + OTP-18178 Application(s): inets, ssh + Related Id(s): ERIERL-833, ERIERL-834, ERIERL-835 + + This change fixes dialyzer warnings generated for + inets/httpd examples (includes needed adjustment of + spec for ssh_sftp module). + + + OTP-18193 Application(s): inets + Related Id(s): GH-6122 + + Remove documentation of no longer supported callback. + + + Full runtime dependencies of inets-8.1: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- jinterface-1.13.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.13.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18215 Application(s): jinterface + Related Id(s): PR-6154 + + Fix javadoc build error by adding option -encoding + UTF-8. + + + --------------------------------------------------------------------- + --- kernel-8.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-8.5 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17934 Application(s): erts, kernel, stdlib + Related Id(s): PR-6007 + + Fixed inconsistency bugs in global due to + nodeup/nodedown messages not being delivered + before/after traffic over connections. Also fixed + various other inconsistency bugs and deadlocks in both + global_group and global. + + As building blocks for these fixes, a new BIF + erlang:nodes/2 has been introduced and + net_kernel:monitor_nodes/2 has been extended. + + The -hidden and -connect_all command line arguments did + not work if multiple instances were present on the + command line which has been fixed. The new kernel + parameter connect_all has also been introduced in order + to replace the -connect_all command line argument. + + + OTP-18091 Application(s): erts, kernel + Related Id(s): #5789 + + Fixed IPv6 multicast_if and membership socket options. + + + OTP-18102 Application(s): erts, kernel + Related Id(s): #5904 + + Fixed issue with inet:getifaddrs hanging on pure IPv6 + Windows + + + OTP-18115 Application(s): kernel + Related Id(s): PR-5939 + + The type specifications for inet:getopts/2 and + inet:setopts/2 have been corrected regarding SCTP + options. + + + OTP-18121 Application(s): kernel + Related Id(s): PR-5972 + + The type specifications for inet:parse_* have been + tightened. + + + OTP-18171 Application(s): kernel + Related Id(s): PR-6131 + + Fix gen_tcp:connect/3 spec to include the inet_backend + option. + + + OTP-18229 Application(s): kernel + Related Id(s): PR-6212 + + Fix bug where using a binary as the format when calling + logger:log(Level, Format, Args) (or any other logging + function) would cause a crash or incorrect logging. + + + --- Improvements and New Features --- + + OTP-18032 Application(s): erts, kernel + + Add rudimentary debug feature (option) for the + inet-driver based sockets, such as gen_tcp and gen_udp. + + + OTP-18107 Application(s): erts, kernel + Related Id(s): PR-6009 + + Introduced the hidden and dist_listen options to + net_kernel:start/2. + + Also documented the -dist_listen command line argument + which was erroneously documented as a kernel parameter + and not as a command line argument. + + + OTP-18163 Application(s): kernel + Related Id(s): PR-6058, PR-6275 + + Scope and group monitoring have been introduced in pg. + For more information see the documentation of + pg:monitor_scope(), pg:monitor(), and pg:demonitor(). + + + OTP-18232 Application(s): kernel + Related Id(s): OTP-17843, PR-6264 + + A new function global:disconnect/0 has been introduced + with which one can cleanly disconnect a node from all + other nodes in a cluster of global nodes. + + + Full runtime dependencies of kernel-8.5: crypto-5.0, erts-13.1, + sasl-3.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- megaco-4.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-4.4.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18179 Application(s): megaco + Related Id(s): ERIERL-836 + + Fixed various dialyzer related issues in the examples + and the application proper. + + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of megaco-4.4.1: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- observer-2.13 --------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.13 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18151 Application(s): observer + Related Id(s): PR-6063 + + Fixed units in gui. + + + Full runtime dependencies of observer-2.13: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- parsetools-2.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.4.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of parsetools-2.4.1: erts-6.0, kernel-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.13.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18154 Application(s): public_key + Related Id(s): PR-6002 + + Support more Linux distributions in cacerts_load/0. + + + OTP-18189 Application(s): public_key + Related Id(s): ERIERL-829 + + Correct asn1 typenames available in type + pki_asn1_type() + + + OTP-18205 Application(s): crypto, public_key + Related Id(s): GH-6219 + + Sign/verify does now behave as in OTP-24 and earlier + for eddsa. + + + Full runtime dependencies of public_key-1.13.1: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- snmp-5.13.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17115 Application(s): snmp + Related Id(s): ERIERL-456 + + Improved the get-bulk response max size calculation. + Its now possible to configure 'empty pdu size', see + appendix c for more info. + + + OTP-18180 Application(s): snmp + Related Id(s): ERIERL-837 + + Fix various example dialyzer issues + + + Full runtime dependencies of snmp-5.13.1: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.15 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.15 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18220 Application(s): ssh + Related Id(s): ERIERL-661, ERIERL-666 + + Handling rare race condition at channel close. + + + --- Improvements and New Features --- + + OTP-18134 Application(s): ssh + Related Id(s): GH-6021 + + New ssh option no_auth_needed to skip the ssh + authentication. Use with caution! + + + OTP-18178 Application(s): inets, ssh + Related Id(s): ERIERL-833, ERIERL-834, ERIERL-835 + + This change fixes dialyzer warnings generated for + inets/httpd examples (includes needed adjustment of + spec for ssh_sftp module). + + + OTP-18196 Application(s): ssh + + The new function ssh:daemon_replace_options/2 makes it + possible to change the Options in a running SSH server. + + Established connections are not affected, only those + created after the call to this new function. + + + OTP-18207 Application(s): ssh + Related Id(s): PR-6231 + + Add a timeout as option max_initial_idle_time. It + closes a connection that does not allocate a channel + within the timeout time. + + For more information about timeouts, see the Timeouts + section in the User's Guide Hardening chapter. + + + Full runtime dependencies of ssh-4.15: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.8.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.8.4 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18044 Application(s): ssl + + Reject unexpected application data in all relevant + places for all TLS versions. Also, handle TLS-1.3 + middlebox compatibility with more care. This will make + malicious connections fail early and further, mitigate + possible DoS attacks, that would be caught by the + handshake timeout. + + Thanks to Aina Toky Rasoamanana and Olivier Levillain + from Télécom SudParis for alerting us of the issues in + our implementation. + + + OTP-18099 Application(s): ssl + Related Id(s): PR-6287 + + With this change, value of cacertfile option will be + adjusted before loading certs from the file. + Adjustments include converting relative paths to + absolute and converting symlinks to actual file path. + + Thanks to Marcus Johansson + + + OTP-18191 Application(s): ssl + Related Id(s): GH-6105 + + In TLS-1.3, if chain certs are missing (so server auth + domain adherence can not be determined) send peer cert + and hope the server is able to recreate a chain in its + auth domain. + + + OTP-18195 Application(s): ssl + + Make sure periodical refresh of CA certificate files + repopulates cache properly. + + + OTP-18203 Application(s): ssl + Related Id(s): PR-5996 + + Correct internal CRL cache functions to use internal + format consistently. + + + OTP-18219 Application(s): ssl + Related Id(s): GH-6241, PR-6249 + + Incorrect handling of client middlebox negotiation for + TLS-1.3 could result in that a TLS-1.3 server would not + use middlebox mode although the client was expecting it + too and failing the negotiation with unexpected + message. + + + OTP-18233 Application(s): ssl + Related Id(s): GH-6244, PR-6270 + + If the "User" process, the process starting the TLS + connection, gets killed in the middle of spawning the + dynamic connection tree make sure we do not leave any + processes behind. + + + --- Improvements and New Features --- + + OTP-18241 Application(s): ssl + + *** HIGHLIGHT *** + + A vulnerability has been discovered and corrected. It + is registered as CVE-2022-37026 "Client Authentication + Bypass". Corrections have been released on the + supported tracks with patches 23.3.4.15, 24.3.4.2, and + 25.0.2. The vulnerability might also exist in older OTP + versions. We recommend that impacted users upgrade to + one of these versions or later on the respective + tracks. OTP 25.1 would be an even better choice. + Impacted are those who are running an ssl/tls/dtls + server using the ssl application either directly or + indirectly via other applications. For example via + inets (httpd), cowboy, etc. Note that the vulnerability + only affects servers that request client certification, + that is sets the option {verify, verify_peer}. + + + Full runtime dependencies of ssl-10.8.4: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-4.1 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17934 Application(s): erts, kernel, stdlib + Related Id(s): PR-6007 + + Fixed inconsistency bugs in global due to + nodeup/nodedown messages not being delivered + before/after traffic over connections. Also fixed + various other inconsistency bugs and deadlocks in both + global_group and global. + + As building blocks for these fixes, a new BIF + erlang:nodes/2 has been introduced and + net_kernel:monitor_nodes/2 has been extended. + + The -hidden and -connect_all command line arguments did + not work if multiple instances were present on the + command line which has been fixed. The new kernel + parameter connect_all has also been introduced in order + to replace the -connect_all command line argument. + + + OTP-18139 Application(s): stdlib + Related Id(s): PR-6060 + + Fix the public_key:ssh* functions to be listed under + the correct release in the Removed Functionality User's + Guide. + + + OTP-18142 Application(s): stdlib + Related Id(s): PR-6078 + + The type spec for format_status/1 in gen_statem, + gen_server and gen_event has been corrected to state + that the return value is of the same type as the + argument (instead of the same value as the argument). + + + OTP-18146 Application(s): stdlib + Related Id(s): PR-5983 + + If the timer server child spec was already present in + kernel_sup but it was not started, the timer server + would fail to start with an {error, already_present} + error instead of restarting the server. + + + OTP-18239 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + When changing callback module in gen_statem the + state_enter calls flag from the old module was used in + for the first event in the new module, which could + confuse the new module and cause malfunction. This bug + has been corrected. + + With this change some sys debug message formats have + been modified, which can be a problem for debug code + relying on the format. + + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + OTP-18166 Application(s): stdlib + Related Id(s): PR-6108 + + The rfc339_to_system_time/1,2 functions now allows the + minutes part to be omitted from the time zone. + + + OTP-18194 Application(s): stdlib + Related Id(s): PR-6199 + + The receive statement in gen_event has been optimized + to not use selective receive (which was never needed, + and could cause severe performance degradation under + heavy load). + + + OTP-18199 Application(s): erts, stdlib + Related Id(s): PR-5790 + + Add new API function erl_features:configurable/0 + + + Full runtime dependencies of stdlib-4.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-8.4, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.30 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.30 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp, + parsetools, stdlib, xmerl + Related Id(s): PR-5965 + + There is a new configure option, + --enable-deterministic-build, which will apply the + deterministic compiler option when building Erlang/OTP. + The deterministic option has been improved to eliminate + more sources of non-determinism in several + applications. + + + Full runtime dependencies of xmerl-1.3.30: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.2.1.README.txt b/release-notes/OTP-25.2.1.README.txt new file mode 100644 index 0000000..84fbac4 --- /dev/null +++ b/release-notes/OTP-25.2.1.README.txt @@ -0,0 +1,182 @@ +Patch Package: OTP 25.2.1 +Git Tag: OTP-25.2.1 +Date: 2023-01-17 +Trouble Report Id: OTP-18357, OTP-18358, OTP-18362, OTP-18363, + OTP-18365, OTP-18368, OTP-18379, OTP-18383, + OTP-18388 +Seq num: ERIERL-879, ERIERL-895, ERIERL-904, + ERIERL-905, GH-6558 +System: OTP +Release: 25 +Application: common_test-1.23.3, compiler-8.2.3, + erts-13.1.4, inets-8.2.1, kernel-8.5.3, + snmp-5.13.3 +Predecessor: OTP 25.2 + + Check out the git tag OTP-25.2.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.23.3 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.23.3 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18363 Application(s): common_test + Related Id(s): ERIERL-879 + + Change timeout to infinity for gen_server calls in + cth_log_redirect + + + Full runtime dependencies of common_test-1.23.3: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18365 Application(s): compiler + + Fixed a bug that could cause legal code to fail + validation. + + + OTP-18368 Application(s): compiler + + Eliminated a rare crash in the beam_types module. + + + Full runtime dependencies of compiler-8.2.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- erts-13.1.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18383 Application(s): erts + Related Id(s): ERIERL-905 + + Fixed a bug in selective receive optimization that + could crash 32-bit emulators. + + + OTP-18388 Application(s): erts + Related Id(s): OTP-17462, PR-6662 + + A race condition which was very rarely triggered could + cause the signal queue of a process to become + inconsistent causing the runtime system to crash. + + + Full runtime dependencies of erts-13.1.4: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-8.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.2.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18362 Application(s): inets + Related Id(s): ERIERL-895, GH-6558 + + fixes a missing case of the type specification for + httpd:info/2/3/4 + + + Full runtime dependencies of inets-8.2.1: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- kernel-8.5.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1.3 (first satisfied in OTP 25.2) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18357 Application(s): kernel + Related Id(s): #6509 + + The tcp connect option 'bind_to_device' could not be + used with inet_backend = 'socket'. 'inet' requires + value type binarry() and 'socket' requires value type + 'string()'. + + + OTP-18358 Application(s): kernel + Related Id(s): #6528 + + Minor issue processing options when calling + gen_tcp:connect with a sockaddr() and inet_backend = + socket. + + + Full runtime dependencies of kernel-8.5.3: crypto-5.0, erts-13.1.3, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- snmp-5.13.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18379 Application(s): snmp + Related Id(s): ERIERL-904 + + Single threaded agent crash when vacm table not + properly initiated. + + + Full runtime dependencies of snmp-5.13.3: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.2.2.README.txt b/release-notes/OTP-25.2.2.README.txt new file mode 100644 index 0000000..5722398 --- /dev/null +++ b/release-notes/OTP-25.2.2.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 25.2.2 +Git Tag: OTP-25.2.2 +Date: 2023-01-30 +Trouble Report Id: OTP-18409 +Seq num: ERIERL-908 +System: OTP +Release: 25 +Application: ftp-1.1.3 +Predecessor: OTP 25.2.1 + + Check out the git tag OTP-25.2.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- ftp-1.1.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.1.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18409 Application(s): ftp + Related Id(s): ERIERL-908, PR-6721 + + Fixes calls to ftp:nlist/2 returning {error, epath} + when the file / folder exists + + + Full runtime dependencies of ftp-1.1.3: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.2.3.README.txt b/release-notes/OTP-25.2.3.README.txt new file mode 100644 index 0000000..c573c12 --- /dev/null +++ b/release-notes/OTP-25.2.3.README.txt @@ -0,0 +1,150 @@ +Patch Package: OTP 25.2.3 +Git Tag: OTP-25.2.3 +Date: 2023-02-17 +Trouble Report Id: OTP-18386, OTP-18415, OTP-18417, OTP-18421, + OTP-18433, OTP-18461, OTP-18462, OTP-18467 +Seq num: ERIERL-888, ERIERL-890, GH-6772, GH-6807, + GH-6846 +System: OTP +Release: 25 +Application: erts-13.1.5, inets-8.2.2, ssh-4.15.2, + ssl-10.8.7 +Predecessor: OTP 25.2.2 + + Check out the git tag OTP-25.2.3, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.1.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18415 Application(s): erts + + Comparisons between small numbers and pids or ports + would in some edge cases say that the number was + greater than the pid or port, violating the term order. + + + OTP-18421 Application(s): erts + Related Id(s): PR-6806 + + process_info(Pid, status) when Pid /= self() could + return an erroneous result. + + + Full runtime dependencies of erts-13.1.5: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-8.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.2.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18461 Application(s): inets + Related Id(s): ERIERL-890 + + Ensure graceful shutdown + + + OTP-18462 Application(s): inets + Related Id(s): GH-6846 + + Return type of the type specification for function + httpc:cookie_header/{1,2,3} has been fixed from -spec + cookie_header(url()) -> [{ field(), value() }] | + {error, Reason} to -spec cookie_header(url()) -> { + field(), value() } | {error, Reason} + + + Full runtime dependencies of inets-8.2.2: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- ssh-4.15.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.15.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18386 Application(s): ssh + Related Id(s): PR-6611 + + With this change, ssh application does not crash when + formatting some of info reports for unsuccessful + connections. + + + OTP-18417 Application(s): ssh + Related Id(s): ERIERL-888, DAFH-1349, IA18357 + + With this change, ssh does not log extensively long + messages. + + + Full runtime dependencies of ssh-4.15.2: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.8.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.8.7 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Improvements and New Features --- + + OTP-18433 Application(s): ssl + Related Id(s): GH-6772 + + Maximize compatibility by ignoring change_cipher_spec + during handshake even if middle_box_mode is not + negotiated (mandated by client) + + + OTP-18467 Application(s): ssl + Related Id(s): GH-6807 + + Move assert of middlebox message after an + hello_retry_request to maximize interoperability. Does + not changes semantics of the protocol only allows + unexpected message delay from server. + + + Full runtime dependencies of ssl-10.8.7: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.2.README.txt b/release-notes/OTP-25.2.README.txt new file mode 100644 index 0000000..9516633 --- /dev/null +++ b/release-notes/OTP-25.2.README.txt @@ -0,0 +1,782 @@ +Patch Package: OTP 25.2 +Git Tag: OTP-25.2 +Date: 2022-12-14 +Trouble Report Id: OTP-18213, OTP-18250, OTP-18251, OTP-18252, + OTP-18255, OTP-18256, OTP-18257, OTP-18267, + OTP-18268, OTP-18269, OTP-18270, OTP-18273, + OTP-18280, OTP-18281, OTP-18283, OTP-18284, + OTP-18289, OTP-18291, OTP-18292, OTP-18293, + OTP-18294, OTP-18295, OTP-18296, OTP-18298, + OTP-18302, OTP-18304, OTP-18306, OTP-18307, + OTP-18308, OTP-18313, OTP-18314, OTP-18315, + OTP-18317, OTP-18319, OTP-18321, OTP-18322, + OTP-18323, OTP-18324, OTP-18325, OTP-18326, + OTP-18328, OTP-18332, OTP-18333, OTP-18336, + OTP-18339, OTP-18343, OTP-18345, OTP-18347, + OTP-18349, OTP-18351, OTP-18352 +Seq num: ERIERL-865, ERIERL-867, ERIERL-875, + ERIERL-881, ERIERL-885, ERL-6435, GH-5823, + GH-6106, GH-6245, GH-6290, GH-6307, GH-6332, + GH-6341, GH-6363, GH-6373, GH-6387, GH-6393, + GH-6419, GH-6426, GH-6435, GH-6439, GH-6461, + GH-6465, GH-6466, GH-6473, GH-6496, GH-6501, + GH-6518 +System: OTP +Release: 25 +Application: common_test-1.23.2, compiler-8.2.2, + dialyzer-5.0.4, erts-13.1.3, ftp-1.1.2, + inets-8.2, kernel-8.5.2, megaco-4.4.2, + mnesia-4.21.3, observer-2.14, os_mon-2.8, + public_key-1.13.2, snmp-5.13.2, ssh-4.15.1, + ssl-10.8.6, stdlib-4.2, wx-2.2.1 +Predecessor: OTP 25.1.2 + + Check out the git tag OTP-25.2, and build a full OTP system including + documentation. Apply one or more applications from this build as + patches to your installation using the 'otp_patch_apply' tool. For + information on install requirements, see descriptions for each + application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18324 Application(s): erts, kernel + Related Id(s): GH-6461, PR-6481 + + The inet:setopts/2 {reuseaddr, true} option will now be + ignored on Windows unless the socket is an UDP socket. + For more information see the documentation of the + reuseaddr option part of the documentation of + inet:setopts/2. + + Prior to OTP 25 the {reuseaddr, true} option was + ignored for all sockets on Windows, but as of OTP 25.0 + this was changed so that it was not ignored for any + sockets. + + + --------------------------------------------------------------------- + --- common_test-1.23.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.23.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18255 Application(s): common_test + Related Id(s): PR-6314 + + Fix starting of peer nodes on old releases when the + compile server was active and the current Erlang + installation contained non-latin1 characters in its + path. + + + Full runtime dependencies of common_test-1.23.2: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18268 Application(s): compiler + Related Id(s): GH-6332 + + Line number in compiler messages would be truncated to + 4 digits for line numbers greater than 9999. + + + OTP-18273 Application(s): compiler + Related Id(s): GH-6341 + + In rare circumstance, matching a binary as part of a + receive clause could cause the compiler to terminate + because of an internal consistency check failure. + + + OTP-18308 Application(s): compiler + Related Id(s): GH-6426 + + Compiling a function with complex bit syntax matching + such as f(<<X:0, _:X>>, <<Y:0, _:Y>>) -> ok. could + crash the compiler. + + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + OTP-18336 Application(s): compiler, stdlib + Related Id(s): GH-6501, PR-6502 + + The compiler could crash when using a record with + complex field initialization expression as a filter in + a list comprehension. + + + Full runtime dependencies of compiler-8.2.2: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- dialyzer-5.0.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.0.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18307 Application(s): dialyzer + Related Id(s): GH-6419, GH-6473 + + Dialyzer would crash when attempting to analyze a bit + syntax segment size having an literal non-integer size + such as []. + + + OTP-18347 Application(s): dialyzer + Related Id(s): GH-6518, PR-6525 + + Dialyzer could crash when trying to analyze a + convoluted nested expression involving funs, + + + Full runtime dependencies of dialyzer-5.0.4: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-13.1.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.1.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18256 Application(s): erts + Related Id(s): PR-6316 + + Fix perf/gdb JIT symbols to not contain + CodeInfoPrologue for the JIT internal module + erts_beamasm. + + + OTP-18281 Application(s): erts + Related Id(s): PR-4840 + + Fixed minor memory leaks. + + + OTP-18284 Application(s): erts + Related Id(s): PR-6305 + + Fix bugs in ets:insert and ets:insert_new when called + with a list of tuples to insert while a concurrent + process either deletes or renames the table. The table + deletion could be done with ets:delete/1 or be caused + by termination of the table owning process. + + Symptoms are either VM crash or strange incorrect + behavior from the insert operation. The risk of + triggering the bugs increases with the length of the + list of tuple to insert. Bugs exist since OTP 23.0. + + + OTP-18294 Application(s): erts + Related Id(s): PR-6390 + + Boost execution of scheduled thread progress jobs. This + to prevent memory exhaustion in extremely rapid + allocation/deallocation scenarios, such as repeated ETS + table creations/deletions. + + + OTP-18295 Application(s): erts + + Fix segv crash during crash dumping an ETS table doing + ets:delete_all_objects. + + + OTP-18296 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Spec for function net:if_names/0 incorrect + + + OTP-18306 Application(s): erts + Related Id(s): GH-6393, PR-6401 + + Fix bug in binary_to_term decoding a binary term 2Gbyte + or larger. + + + OTP-18313 Application(s): erts + Related Id(s): PR-6456 + + Documentation of erlang:module_loaded/1 has been + adjusted: + + -- It did not previously say that the BIF only returns + true for modules loaded as current code. + + -- The warning claiming that the BIF should only be + used by the code server has been removed. + + + OTP-18321 Application(s): erts + + Fix list_to_atom/1 for negative code points. Could + either return with a positive code point or fail with + an incorrect exception. + + + OTP-18322 Application(s): erts + Related Id(s): PR-6479 + + Fix rare bug causing VM crash when sending to a pid of + a spawning process returned from erlang:processes/0. + + Only seen when provoked by system process + literal_area_collector, triggered by a module purge + operation, on a VM started with +Meamin (no customized + allocators). + + + OTP-18323 Application(s): erts, kernel + Related Id(s): #6476 + + gen_udp:open/2 with option(s) add_membership or + drop_membership would drop earlier options. + + + OTP-18324 Application(s): erts, kernel + Related Id(s): GH-6461, PR-6481 + + *** POTENTIAL INCOMPATIBILITY *** + + The inet:setopts/2 {reuseaddr, true} option will now be + ignored on Windows unless the socket is an UDP socket. + For more information see the documentation of the + reuseaddr option part of the documentation of + inet:setopts/2. + + Prior to OTP 25 the {reuseaddr, true} option was + ignored for all sockets on Windows, but as of OTP 25.0 + this was changed so that it was not ignored for any + sockets. + + + OTP-18328 Application(s): erts + Related Id(s): GH-6439, PR-6440 + + Fix bug in binary_to_term decoding a list of length 1G + or longer. + + + OTP-18343 Application(s): erts + Related Id(s): GH-6496 + + Fix bug in binary_to_term (and distributed receive) + when decoding a large map (>32 keys) with unsorted + small maps (<= 32) as keys of the large map. + + This was only a problem if the term was encoded by + erl_interface, jinterface or otherwise, as the VM + itself always encodes small maps with sorted keys. + + The "binary_to_term" would appear as successful but the + created large map was internally inconsistent. The + smaller key-maps could not be found with maps:get and + friends. Other operations such as map compare and merge + could probably also give incorrect results. + + + OTP-18345 Application(s): erts + Related Id(s): GH-6387, PR-6396 + + Fix Windows bug in open_port({spawn, Command}, ..) when + Command is found via the OS search PATH and that + directory path contains white spaces. The port program + would start but the command line arguments to it could + be incorrect. + + + Full runtime dependencies of erts-13.1.3: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ftp-1.1.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.1.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18252 Application(s): ftp + Related Id(s): GH-5823 + + fix unexpected result ok when calling ftp:nlist + repeatedly + + + Full runtime dependencies of ftp-1.1.2: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-8.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18250 Application(s): inets + + This change allows body requests to httpc:request/5 be + an iolist() + + + OTP-18251 Application(s): inets + Related Id(s): GH-6245 + + addition of type specs in httpc.erl + + + OTP-18280 Application(s): inets + Related Id(s): GH-6290, PR-6291 + + httpc: Add support for HTTP 308 status code + + + Full runtime dependencies of inets-8.2: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- kernel-8.5.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1.3 (first satisfied in OTP 25.2) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18270 Application(s): kernel + Related Id(s): #6331 + + Fixed shutdown crash in gen_tcp socket backend, when + the other end closed the socket. + + + OTP-18289 Application(s): kernel, stdlib + Related Id(s): PR-6343 + + erl_tar can now read gzip-compressed tar files that are + padded. There is a new option compressed_one for + file:open/2 that will read a single member from a gzip + file, + + + OTP-18291 Application(s): kernel + Related Id(s): PR-6382 + + Fix os:cmd to not translate all exceptions thrown to + badarg. For example emfile from erlang:open_port was + translated to badarg. + + This bug has existed since Erlang/OTP 24. + + + OTP-18296 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Spec for function net:if_names/0 incorrect + + + OTP-18315 Application(s): kernel + + Missing ctrl option name transation for TOS and TTL (on + FreeBSD) when using gen_udp with the 'socket' + inet_backend. + + + OTP-18323 Application(s): erts, kernel + Related Id(s): #6476 + + gen_udp:open/2 with option(s) add_membership or + drop_membership would drop earlier options. + + + OTP-18324 Application(s): erts, kernel + Related Id(s): GH-6461, PR-6481 + + *** POTENTIAL INCOMPATIBILITY *** + + The inet:setopts/2 {reuseaddr, true} option will now be + ignored on Windows unless the socket is an UDP socket. + For more information see the documentation of the + reuseaddr option part of the documentation of + inet:setopts/2. + + Prior to OTP 25 the {reuseaddr, true} option was + ignored for all sockets on Windows, but as of OTP 25.0 + this was changed so that it was not ignored for any + sockets. + + + --- Improvements and New Features --- + + OTP-18293 Application(s): kernel + + The distribution socket option handling in + inet_tcp_dist has been cleaned up to clarify which were + mandatory and which just had default values. + + + OTP-18317 Application(s): kernel + + Improve warning message format for gen_tcp_socket. + + + Full runtime dependencies of kernel-8.5.2: crypto-5.0, erts-13.1.3, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- megaco-4.4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-4.4.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18298 Application(s): megaco + + A very minor improvement to the measurement tool. + + + Full runtime dependencies of megaco-4.4.2: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.21.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18319 Application(s): mnesia + Related Id(s): ERIERL-875 + + Fixed crash which could happen during startup if too + many decisions where sent from remote nodes. + + + Full runtime dependencies of mnesia-4.21.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.14 --------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.14 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18339 Application(s): observer + + A WX event race could causes a crash in when handling + socket or port info. + + + --- Improvements and New Features --- + + OTP-18269 Application(s): observer + Related Id(s): PR-6030 + + Improve the nodes menu to include more nodes. + + + Full runtime dependencies of observer-2.14: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.8 ------------------------------------------------------ + --------------------------------------------------------------------- + + The os_mon-2.8 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18304 Application(s): os_mon + Related Id(s): PR-6385 + + The disk_space_check_interval configuration parameter + of disksup can now be set to values smaller than a + minute. + + + Full runtime dependencies of os_mon-2.8: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13.2 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.13.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18333 Application(s): public_key + Related Id(s): GH-6363 + + Disregard LDAP URIs when HTTP URIs are expected. + + + Full runtime dependencies of public_key-1.13.2: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- snmp-5.13.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18352 Application(s): snmp + Related Id(s): ERIERL-881 + + Explicitly close the socket(s) when terminating + (default-) net-if process. + + + Full runtime dependencies of snmp-5.13.2: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.15.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.15.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18326 Application(s): ssh + Related Id(s): ERIERL-865 + + graceful shutdown of ssh_conection_handler when + connection is closed by peer + + + Full runtime dependencies of ssh-4.15.1: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.8.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.8.6 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18314 Application(s): ssl + Related Id(s): GH-6373 + + With this change, tls_sender process is hibernated + after sufficient inactivity. + + + OTP-18332 Application(s): ssl + Related Id(s): ERL-6435, GH-6435, PR-6435 + + Correct handling of legacy schemes so that ECDSA certs + using sha1 may be used for some TLS-1.3 configurations. + + + OTP-18349 Application(s): ssl + + With this change, tls_sender does not cause logger + crash upon key update. + + + --- Improvements and New Features --- + + OTP-18257 Application(s): ssl + Related Id(s): GH-6307 + + Enhance warning message + + + OTP-18267 Application(s): ssl + Related Id(s): GH-6106, PR-6228 + + Provide server option to make certificate_authorities + extension in the TLS-1.3 servers certificate request + optional. This will allow clients to send incomplete + chains that may be reconstructable and thereby + verifiable by the server, but that would not adhere to + the certificate_authorities extension. + + + OTP-18302 Application(s): ssl + Related Id(s): ERIERL-867 + + If the verify_fun handles four arguments the DER cert + will be supplied as one of the arguments. + + + Full runtime dependencies of ssl-10.8.6: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-4.2 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18289 Application(s): kernel, stdlib + Related Id(s): PR-6343 + + erl_tar can now read gzip-compressed tar files that are + padded. There is a new option compressed_one for + file:open/2 that will read a single member from a gzip + file, + + + OTP-18292 Application(s): stdlib + Related Id(s): PR-6366 + + A concurrent call to ets:rename could cause + ets:delete_all_objects to fail halfway through with + badarg. + + + OTP-18325 Application(s): compiler, stdlib + Related Id(s): GH-6465, GH-6466 + + It is not allowed to call functions from guards. The + compiler failed to reject a call in a guard when done + by constructing a record with a default initialization + expression that called a function. + + + OTP-18336 Application(s): compiler, stdlib + Related Id(s): GH-6501, PR-6502 + + The compiler could crash when using a record with + complex field initialization expression as a filter in + a list comprehension. + + + OTP-18351 Application(s): stdlib + Related Id(s): ERIERL-885, PR-6529 + + unicode:characters_to_binary() could build + unnecessarily large call stack. + + + --- Improvements and New Features --- + + OTP-18283 Application(s): stdlib + Related Id(s): PR-6338 + + Improve error message for ets:new/2 name clash. Say + "name already exists" instead of less specific "invalid + options". + + + Full runtime dependencies of stdlib-4.2: compiler-5.0, crypto-4.5, + erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.2.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.2.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18213 Application(s): wx + Related Id(s): PR-6113 + + Added environment variable WX_MACOS_NON_GUI_APP to + allow user to override OSXIsGUIApplication behavior. + + + Full runtime dependencies of wx-2.2.1: erts-12.0, kernel-8.0, + stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.1.README.txt b/release-notes/OTP-25.3.1.README.txt new file mode 100644 index 0000000..bd27f10 --- /dev/null +++ b/release-notes/OTP-25.3.1.README.txt @@ -0,0 +1,313 @@ +Patch Package: OTP 25.3.1 +Git Tag: OTP-25.3.1 +Date: 2023-04-27 +Trouble Report Id: OTP-18422, OTP-18480, OTP-18489, OTP-18497, + OTP-18506, OTP-18509, OTP-18512, OTP-18516, + OTP-18519, OTP-18525, OTP-18545, OTP-18550, + OTP-18553, OTP-18554, OTP-18555, OTP-18557, + OTP-18560, OTP-18563 +Seq num: ERIERL-873, ERIERL-928, ERIERL-937, GH-6956, + GH-6960, GH-6969, GH-7024, GH-7114 +System: OTP +Release: 25 +Application: compiler-8.2.5, crypto-5.1.4, eldap-1.2.11, + erl_interface-5.3.2, erts-13.2.1, + inets-8.3.1, snmp-5.13.5, ssl-10.9.1, + stdlib-4.3.1, wx-2.2.2 +Predecessor: OTP 25.3 + + Check out the git tag OTP-25.3.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.5 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18497 Application(s): compiler + Related Id(s): GH-6960, PR-6965 + + When a map update such as #{}#{key:=value} that should + fail with an exception was unused, the exception would + be lost. + + + OTP-18516 Application(s): compiler + Related Id(s): GH-6969 + + Fixed bug in the validator that made it reject valid + code. + + + Full runtime dependencies of compiler-8.2.5: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18555 Application(s): crypto + + With this change, random errors are fixed for + crypto:generate_key calls with OpenSSL 3. + + + Full runtime dependencies of crypto-5.1.4: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- eldap-1.2.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.11 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18480 Application(s): eldap + + Added a new function eldap:info/1 that returns the + socket and the transport protocol for the eldap + connection. + + + Full runtime dependencies of eldap-1.2.11: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_interface-5.3.2 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.3.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18554 Application(s): erl_interface, erts + + Fixed configure tests for a few ARM-specific + instructions, which prevented the emulator from being + built on some platforms. + + + --------------------------------------------------------------------- + --- erts-13.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18519 Application(s): erts + Related Id(s): GH-7024 + + Fixed a bug in the loader that prevented certain + modules compiled with no_ssa_opt from being loaded. + + + OTP-18525 Application(s): erts + Related Id(s): PR-7049 + + Implementations of the call() driver callback that + returned a faulty encoded result could cause a memory + leak and could cause invalid data on the heap of the + processes calling erlang:port_call/3. + + + OTP-18553 Application(s): erts + + Fixed a memory corruption issue when upgrading code. + The bug was introduced in OTP 25.3 + + + OTP-18554 Application(s): erl_interface, erts + + Fixed configure tests for a few ARM-specific + instructions, which prevented the emulator from being + built on some platforms. + + + OTP-18557 Application(s): erts + Related Id(s): OTP-18496, PR-7131 + + Aliases created in combination with a monitor using the + {alias, explicit_unalias} option stopped working from + remote nodes when a 'DOWN' signal had been received due + to the monitor or if the monitor was removed using the + erlang:demonitor() BIF. + + This bug was introduced in OTP 24.3.4.10 and OTP 25.3. + + + OTP-18560 Application(s): erts + + In rare circumstances, bit syntax matching of an + invalid code point for a utf32 would crash the runtime + system. + + + OTP-18563 Application(s): erts + Related Id(s): GH-7114, PR-7159 + + Building the runtime system failed when native atomic + support was missing. Note that execution on such + systems have only been rudimentary tested. + + + Full runtime dependencies of erts-13.2.1: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-8.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.3.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18509 Application(s): inets + Related Id(s): OTP-18476 + + Correct timing related pipelining/keepalive queue bug, + that could result in unexpected "socket_remotly_closed" + errors. + + + OTP-18545 Application(s): inets + Related Id(s): ERIERL-928, ERIERL-937, OTP-18509 + + With this change, upon remote socket closure current + request is added to a retried queue (either pipeline or + keep_alive, but not both). + + + Full runtime dependencies of inets-8.3.1: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- snmp-5.13.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.5 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18422 Application(s): snmp + Related Id(s): ERIERL-873 + + Attempts to minimize the number of the error reports + during a failed agent init. + + + Full runtime dependencies of snmp-5.13.5: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssl-10.9.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.9.1 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18489 Application(s): ssl + + With this change, ssl:connection_information/2 returns + correct keylog data after TLS1.3 key update. + + + OTP-18550 Application(s): ssl + + Client signature algorithm list input order is now + honored again , it was accidently reversed by a + previous fix. + + + Full runtime dependencies of ssl-10.9.1: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-4.3.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18506 Application(s): stdlib + Related Id(s): GH-6956 + + The type specs in the erl_parse module has been updated + to include the maybe construct and the ! operator. + + + Full runtime dependencies of stdlib-4.3.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.2.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.2.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18512 Application(s): wx + + Improve debug prints from the nifs. Some minor fixes + for wxWidgets-3.2. Fixed OpenGL debug functions. + + + Full runtime dependencies of wx-2.2.2: erts-12.0, kernel-8.0, + stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.1.README.txt b/release-notes/OTP-25.3.2.1.README.txt new file mode 100644 index 0000000..398aae7 --- /dev/null +++ b/release-notes/OTP-25.3.2.1.README.txt @@ -0,0 +1,174 @@ +Patch Package: OTP 25.3.2.1 +Git Tag: OTP-25.3.2.1 +Date: 2023-05-30 +Trouble Report Id: OTP-18556, OTP-18561, OTP-18569, OTP-18576, + OTP-18593, OTP-18595, OTP-18597 +Seq num: ERIERL-944, GH-7252 +System: OTP +Release: 25 +Application: compiler-8.2.6.1, erts-13.2.2.1, + stdlib-4.3.1.1, xmerl-1.3.31.1 +Predecessor: OTP 25.3.2 + + Check out the git tag OTP-25.3.2.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.6.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.2.6.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18576 Application(s): compiler + + Fixed a bug where a failing bsl expression in a guard + threw an exception instead of causing the guard to + fail. + + + OTP-18593 Application(s): compiler + Related Id(s): GH-7252 + + Complex guard expression using the or operator and + guard BIFs that can fail could sometimes be miscompiled + so that the guard would succeed even if a call to a + guard BIF failed. + + + Full runtime dependencies of compiler-8.2.6.1: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- erts-13.2.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18561 Application(s): erts + + Fixed a crash during tracing on certain platforms that + cannot use the machine stack for Erlang code (mainly + OpenBSD and Linux with musl). + + + OTP-18597 Application(s): erts + + Constructing a binary segment not aligned with a byte + boundary, with a size not fitting in 31 bits, and with + a value not fitting in a 64-bit word could crash the + runtime system. + + + --- Improvements and New Features --- + + OTP-18569 Application(s): erts + + Further robustify implementation of large maps (> 32 + keys). Keys that happen to have same internal 32-bit + hash values are now put in collision nodes which are + traversed with linear search. This removes the demand + for the internal hash function when salted to + eventually produce different hashes for all possible + pairs of unequal terms. + + + Full runtime dependencies of erts-13.2.2.1: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.3.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-4.3.1.1 application *cannot* be applied + independently of other applications on an arbitrary OTP 25 + installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Improvements and New Features --- + + OTP-18556 Application(s): stdlib + + Static supervisors are very idle processes after they + have started so they will now be hibernated after start + to improve resource management. + + + Full runtime dependencies of stdlib-4.3.1.1: compiler-5.0, + crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.31.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.31.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18595 Application(s): xmerl + Related Id(s): ERIERL-944 + + New options to xmerl_scan and xmerl_sax_parser so one + can limit the behaviour of the parsers to avoid some + XML security issues. + + xmerl_scan gets one new option: + + -- {allow_entities, Boolean} -- Gives the possibility + to disallow entities by setting this option to false + (true is default) + + xmerl_sax_parser gets the following options: + + -- disallow_entities -- Don't allow entities in + document + + -- {entity_recurse_limit, N} -- Set a limit on entity + recursion depth (default is 3) + + -- {external_entities, AllowedType} -- Specify which + types of external entities that are allowed, this also + affect external DTD's. The types are all(default), file + and none + + -- {fail_undeclared_ref, Boolean} -- Sets the behavior + for undeclared references due to an external file is + not parsed (true is default) + + The old option skip_external_dtd is still valid and the + same as {external_entities, none} and + {fail_undeclared_ref, false} but just affects DTD's and + not other external references. + + + Full runtime dependencies of xmerl-1.3.31.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.10.README.txt b/release-notes/OTP-25.3.2.10.README.txt new file mode 100644 index 0000000..2d8262b --- /dev/null +++ b/release-notes/OTP-25.3.2.10.README.txt @@ -0,0 +1,155 @@ +Patch Package: OTP 25.3.2.10 +Git Tag: OTP-25.3.2.10 +Date: 2024-03-13 +Trouble Report Id: OTP-18971, OTP-18986, OTP-18996, OTP-19002, + OTP-19003, OTP-19006, OTP-19008, OTP-19015, + OTP-19019 +Seq num: ERIERL-1041, ERIERL-682, GH-8044, GH-8119, + GH-8187, PR-8173, PR-8174, PR-8189, PR-8201 +System: OTP +Release: 25 +Application: compiler-8.2.6.4, crypto-5.1.4.2, + erts-13.2.2.7, ssh-4.15.3.3 +Predecessor: OTP 25.3.2.9 + + Check out the git tag OTP-25.3.2.10, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.6.4 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.2.6.4 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-19003 Application(s): compiler + Related Id(s): GH-8187, PR-8189 + + In rare circumstances, an unsafe optimization could + cause the compiler to generate incorrect code for list + matching. + + + OTP-19019 Application(s): compiler + + In rare circumstances, the compiler code generate + unsafe code for a bit syntax match. + + + Full runtime dependencies of compiler-8.2.6.4: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1.4.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.4.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18996 Application(s): crypto + Related Id(s): PR-8173, PR-8174 + + The function crypto:pbkdf2_hmac will no longer block + the main schedulers. If the iteration count or block + size parameters are such that the function is likely to + take a long time to execute, the function will be + scheduled to run on a dirty CPU scheduler. + + + Full runtime dependencies of crypto-5.1.4.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- erts-13.2.2.7 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.7 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18971 Application(s): erts + Related Id(s): GH-8044 + + Fix heap corruption bug that could cause runaway memory + consumption due to circular offheap list at process + exit. Other symptoms may also be possible. Bug exists + since OTP 25.0. + + + OTP-19006 Application(s): erts + + The code server could be hanging if a module with + on_load function was loaded at the same time as another + module was purged using erlang:purge_module directly. + + + OTP-19008 Application(s): erts + Related Id(s): GH-8119, PR-8201 + + A process optimized for parallel signal delivery could + under some circumstances lose wakeup information. That + is, the processes was not woken up to take care of the + signal, so the signal would not be taken care of until + the process was woken by another signal. Only processes + configured with message_queue_data set to off_heap + utilize this optimization. + + + OTP-19015 Application(s): erts + Related Id(s): ERIERL-682 + + Fix bug in re:run/3 where if an invalid UTF-8 subject + was given, re:run could get stuck in an infinite loop. + Bug was introduced in Erlang/OTP 22.1. + + + Full runtime dependencies of erts-13.2.2.7: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ssh-4.15.3.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.15.3.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18986 Application(s): ssh + + With this change, more secure algorithms are preferred + by ssh and documentation is updated to reflect that. + + + OTP-19002 Application(s): ssh + Related Id(s): ERIERL-1041 + + With this change, KEX strict terminal message is + emitted with debug verbosity. + + + Full runtime dependencies of ssh-4.15.3.3: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.2.README.txt b/release-notes/OTP-25.3.2.2.README.txt new file mode 100644 index 0000000..2eb454e --- /dev/null +++ b/release-notes/OTP-25.3.2.2.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 25.3.2.2 +Git Tag: OTP-25.3.2.2 +Date: 2023-06-07 +Trouble Report Id: OTP-18617 +Seq num: GH-7338 +System: OTP +Release: 25 +Application: compiler-8.2.6.2 +Predecessor: OTP 25.3.2.1 + + Check out the git tag OTP-25.3.2.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.6.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.2.6.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18617 Application(s): compiler + Related Id(s): GH-7338 + + The compiler could be very slow when compiling guards + with multiple guard tests separated with 'or' or ';'. + + + Full runtime dependencies of compiler-8.2.6.2: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.3.README.txt b/release-notes/OTP-25.3.2.3.README.txt new file mode 100644 index 0000000..85217ad --- /dev/null +++ b/release-notes/OTP-25.3.2.3.README.txt @@ -0,0 +1,211 @@ +Patch Package: OTP 25.3.2.3 +Git Tag: OTP-25.3.2.3 +Date: 2023-06-29 +Trouble Report Id: OTP-18618, OTP-18626, OTP-18635, OTP-18643, + OTP-18644, OTP-18650, OTP-18659 +Seq num: ERIERL-932, GH-7336, GH-7356 +System: OTP +Release: 25 +Application: compiler-8.2.6.3, debugger-5.3.1.1, + erts-13.2.2.2, kernel-8.5.4.1, ssl-10.9.1.1, + stdlib-4.3.1.2 +Predecessor: OTP 25.3.2.2 + + Check out the git tag OTP-25.3.2.3, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.6.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-8.2.6.3 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18626 Application(s): compiler + Related Id(s): GH-7356 + + Fixed a bug that could cause the stack trace of throw + exceptions to be erroneously optimized out. + + + Full runtime dependencies of compiler-8.2.6.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- debugger-5.3.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The debugger-5.3.1.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18644 Application(s): debugger + Related Id(s): GH-7336 + + The call int:no_break(Module) did not remove any + breakpoints. + + + Full runtime dependencies of debugger-5.3.1.1: compiler-8.0, + erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-13.2.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18635 Application(s): erts, kernel + Related Id(s): #7328 + + Multiple socket:accept calls issue. When making + multiple accept calls, only the last call is active. + + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + Full runtime dependencies of erts-13.2.2.2: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- kernel-8.5.4.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.4.1 application *cannot* be applied + independently of other applications on an arbitrary OTP 25 + installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1.3 (first satisfied in OTP 25.2) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18635 Application(s): erts, kernel + Related Id(s): #7328 + + Multiple socket:accept calls issue. When making + multiple accept calls, only the last call is active. + + + OTP-18650 Application(s): kernel + + gen_udp:connect with inet_backend = socket fails when + the Address is a hostname (string or atom). + + + Full runtime dependencies of kernel-8.5.4.1: crypto-5.0, erts-13.1.3, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- ssl-10.9.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.9.1.1 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18643 Application(s): ssl + Related Id(s): ERIERL-932 + + Added keylog information to all protocol versions in + ssl:connection_information/2. + + + --- Improvements and New Features --- + + OTP-18618 Application(s): ssl + Related Id(s): ERIERL-932 + + Add RFC-6083 considerations for DTLS to enable gen_sctp + based callback for the transport. + + + Full runtime dependencies of ssl-10.9.1.1: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.3.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-4.3.1.2 application *cannot* be applied + independently of other applications on an arbitrary OTP 25 + installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + Full runtime dependencies of stdlib-4.3.1.2: compiler-5.0, + crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.4.README.txt b/release-notes/OTP-25.3.2.4.README.txt new file mode 100644 index 0000000..783da0e --- /dev/null +++ b/release-notes/OTP-25.3.2.4.README.txt @@ -0,0 +1,42 @@ +Patch Package: OTP 25.3.2.4 +Git Tag: OTP-25.3.2.4 +Date: 2023-07-17 +Trouble Report Id: OTP-18664 +Seq num: ERIERL-959 +System: OTP +Release: 25 +Application: common_test-1.24.0.1 +Predecessor: OTP 25.3.2.3 + + Check out the git tag OTP-25.3.2.4, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.24.0.1 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.24.0.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18664 Application(s): common_test + Related Id(s): ERIERL-959 + + With this change, prompt search functionality in + ct_telnet handles unicode input. + + + Full runtime dependencies of common_test-1.24.0.1: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.5.README.txt b/release-notes/OTP-25.3.2.5.README.txt new file mode 100644 index 0000000..c41ded4 --- /dev/null +++ b/release-notes/OTP-25.3.2.5.README.txt @@ -0,0 +1,42 @@ +Patch Package: OTP 25.3.2.5 +Git Tag: OTP-25.3.2.5 +Date: 2023-07-31 +Trouble Report Id: OTP-18688 +Seq num: ERIERL-962 +System: OTP +Release: 25 +Application: inets-8.3.1.1 +Predecessor: OTP 25.3.2.4 + + Check out the git tag OTP-25.3.2.5, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- inets-8.3.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.3.1.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18688 Application(s): inets + Related Id(s): ERIERL-962 + + Fixed a bug so httpd does not crash when stopped at the + wrong time during TLS connection negotiation, or any + other theoretically as slow connection setup. + + + Full runtime dependencies of inets-8.3.1.1: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.6.README.txt b/release-notes/OTP-25.3.2.6.README.txt new file mode 100644 index 0000000..e4dc7f2 --- /dev/null +++ b/release-notes/OTP-25.3.2.6.README.txt @@ -0,0 +1,278 @@ +Patch Package: OTP 25.3.2.6 +Git Tag: OTP-25.3.2.6 +Date: 2023-09-07 +Trouble Report Id: OTP-18647, OTP-18670, OTP-18700, OTP-18704, + OTP-18706, OTP-18707, OTP-18708, OTP-18711, + OTP-18712, OTP-18718, OTP-18732, OTP-18737, + OTP-18740, OTP-18752 +Seq num: ERIERL-962, ERIERL-963, ERIERL-979, GH-7410, + GH-7413, GH-7431, GH-7436, GH-7444, GH-7507, + GH-7546 +System: OTP +Release: 25 +Application: crypto-5.1.4.1, debugger-5.3.1.2, + erts-13.2.2.3, inets-8.3.1.2, kernel-8.5.4.2, + mnesia-4.21.4.1, public_key-1.13.3.1, + ssl-10.9.1.2 +Predecessor: OTP 25.3.2.5 + + Check out the git tag OTP-25.3.2.6, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- crypto-5.1.4.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.4.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18670 Application(s): crypto + Related Id(s): GH-7436, PR-7450 + + Fix VM crash caused by crypto being purged and reloaded + (by init:restart for example) on OS with musl libc + (such as Alpine linux). + + + Full runtime dependencies of crypto-5.1.4.1: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- debugger-5.3.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The debugger-5.3.1.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18740 Application(s): debugger + Related Id(s): GH-7410, PR-7599 + + The maybe expression is now supported in the Debugger. + + + Full runtime dependencies of debugger-5.3.1.2: compiler-8.0, + erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- erts-13.2.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18647 Application(s): erts + Related Id(s): PR-7595 + + A process optimized for parallel signal delivery could + under some circumstances lose wakeup information. That + is, the processes was not woken up to take care of the + signal, so the signal would not be taken care of until + the process was woken by another signal. Only processes + configured with message_queue_data set to off_heap + utilize this optimization. + + + OTP-18706 Application(s): erts + Related Id(s): ERIERL-979, GH-7413, PR-7595 + + Delivery time of message signals to a process not + executing any receive expressions could become very + long, potentially infinite. For example, a process + checking for messages using process_info(self(), + message_queue_len) or process_info(self(), messages) + and avoiding to execute a receive expression matching + on messages could be very slow in detecting new + messages. Note that you are still discouraged from + using process_info() this way. A process that wants to + check if there are messages available to handle should + execute a receive expression matching on messages. + + + OTP-18732 Application(s): erts + Related Id(s): GH-7444, PR-7458 + + Fix bug causing "magic" references in a compressed ETS + table to not keep the referred object alive. The + symptom would be the referred object being garbage + collected prematurely and the reference appearing + stale, not referring to anything. Examples of such + magically referred objects are atomics and NIF + resources. + + + OTP-18737 Application(s): erts + Related Id(s): PR-7595 + + A constant flow of incoming non-message signals could + prevent a process needing to execute dirty from doing + so. + + + OTP-18752 Application(s): erts + Related Id(s): PR-7633 + + The cleanup operation of not yet delivered signals to a + terminated process yielded excessively. + + + Full runtime dependencies of erts-13.2.2.3: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-8.3.1.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.3.1.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18704 Application(s): inets + Related Id(s): ERIERL-962, OTP-18688, PR-7513 + + With this change, error report generated by httpd + during connection setup contains socket type + information. + + + OTP-18708 Application(s): inets + Related Id(s): ERIERL-962, OTP-18688 + + Stop and restart of the httpd server in the Inets + application has been refactored to a more synchronous + and OTP supervisor friendly approach. + + This should increase stability and for example avoid a + supervisor report from httpd_connection_sup about + killed child process(es) in some cases when stopping or + restarting httpd. + + + Full runtime dependencies of inets-8.3.1.2: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- kernel-8.5.4.2 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.4.2 application *cannot* be applied + independently of other applications on an arbitrary OTP 25 + installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1.3 (first satisfied in OTP 25.2) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18707 Application(s): kernel + Related Id(s): #7530 + + gen_tcp:connect with socket address and socket (inet-) + backend fails because of missing callback function. + + + Full runtime dependencies of kernel-8.5.4.2: crypto-5.0, erts-13.1.3, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- mnesia-4.21.4.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.4.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18711 Application(s): mnesia + Related Id(s): ERIERL-963 + + Do not delete old backup file if the new backup fails. + + + Full runtime dependencies of mnesia-4.21.4.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13.3.1 --------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.13.3.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18718 Application(s): public_key + Related Id(s): GH-7546 + + Country name comparison shall be case insensitive + + + Full runtime dependencies of public_key-1.13.3.1: asn1-3.0, + crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.9.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.9.1.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18700 Application(s): ssl + Related Id(s): GH-7507 + + The API function `ssl:recv/3` has been tightened to + disallow negative length, which has never been + documented to work, but was passed through and caused + strange errors. + + + OTP-18712 Application(s): ssl + Related Id(s): GH-7431 + + When a client initiated renegotiation was rejected and + the client socket was in active mode the expected error + message to the controlling process was not sent. + + + Full runtime dependencies of ssl-10.9.1.2: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.7.README.txt b/release-notes/OTP-25.3.2.7.README.txt new file mode 100644 index 0000000..e1c5dd3 --- /dev/null +++ b/release-notes/OTP-25.3.2.7.README.txt @@ -0,0 +1,106 @@ +Patch Package: OTP 25.3.2.7 +Git Tag: OTP-25.3.2.7 +Date: 2023-10-12 +Trouble Report Id: OTP-18773, OTP-18790, OTP-18792, OTP-18797 +Seq num: GH-7683, GH-7687 +System: OTP +Release: 25 +Application: erts-13.2.2.4, stdlib-4.3.1.3 +Predecessor: OTP 25.3.2.6 + + Check out the git tag OTP-25.3.2.7, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- erts-13.2.2.4 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18790 Application(s): erts + Related Id(s): PR-7742 + + If the external term format encoding of an argument + list part of a distributed spawn operation was faulty, + the newly spawned remote process could misbehave. The + misbehavior included hanging or interpret an incoming + message as an argument list to use. This was very + unlikely to happen unless using an alternate + implementation of the distribution protocol which made + a faulty encoding of the argument list. The child + process will now detect this error and terminate before + executing the user specified code. + + + OTP-18792 Application(s): erts + Related Id(s): GH-7687 + + On Apple Silicon Macs running macOS Sonoma, the runtime + system with the JIT enabled would crash. Therefore, the + configure script will by default now disable the JIT on + Macs with Apple Silicon. When building for earlier + versions of macOS, the JIT can be explicitly enabled by + passing --enable-jit to the configure script. + + + OTP-18797 Application(s): erts + Related Id(s): GH-7683, PR-7712 + + Fix bugs where if the body of a matchspec would return + a map with a variable ('$1', '$_' etc) as one of the + keys or values and the variable was not an immidiate, + the term would not be copied to the receiving processes + heap. This would later corrupt the term in the table as + the GC could place move markers in it, which in turn + would cause the VM to crash. + + Bug has been present for since OTP 17.0. + + + Full runtime dependencies of erts-13.2.2.4: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.3.1.3 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-4.3.1.3 application *cannot* be applied + independently of other applications on an arbitrary OTP 25 + installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Improvements and New Features --- + + OTP-18773 Application(s): stdlib + Related Id(s): PR-7691 + + Garbage collect the shell process when reducing the + amount of saved history and results. + + + Full runtime dependencies of stdlib-4.3.1.3: compiler-5.0, + crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.8.README.txt b/release-notes/OTP-25.3.2.8.README.txt new file mode 100644 index 0000000..a2a876f --- /dev/null +++ b/release-notes/OTP-25.3.2.8.README.txt @@ -0,0 +1,348 @@ +Patch Package: OTP 25.3.2.8 +Git Tag: OTP-25.3.2.8 +Date: 2023-12-18 +Trouble Report Id: OTP-18739, OTP-18768, OTP-18802, OTP-18830, + OTP-18838, OTP-18839, OTP-18841, OTP-18842, + OTP-18844, OTP-18850, OTP-18869, OTP-18877, + OTP-18885, OTP-18886, OTP-18896, OTP-18897, + OTP-18899, OTP-18902 +Seq num: GH-7571, GH-7801, GH-7834, GH-7890 +System: OTP +Release: 25 +Application: asn1-5.0.21.1, erl_interface-5.3.2.1, + erts-13.2.2.5, mnesia-4.21.4.2, + public_key-1.13.3.2, ssh-4.15.3.1, + ssl-10.9.1.3, wx-2.2.2.1 +Predecessor: OTP 25.3.2.7 + + Check out the git tag OTP-25.3.2.8, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18897 Application(s): ssh + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + --------------------------------------------------------------------- + --- OTP-25.3.2.8 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18896 Application(s): otp + + Updated copyright and license information. + + + --------------------------------------------------------------------- + --- asn1-5.0.21.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.21.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18844 Application(s): asn1 + + Fix benign warning from gcc 11 about mismatching call + to free(). + + + Full runtime dependencies of asn1-5.0.21.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- erl_interface-5.3.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.3.2.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + --------------------------------------------------------------------- + --- erts-13.2.2.5 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18802 Application(s): erts + + Fix faulty debug assert when page size is larger than + 16kb, like on PowerPC. Did crash debug VM directly at + start. + + + OTP-18838 Application(s): erts + Related Id(s): GH-7801, PR-7822 + + A process with message_queue_data configured as + off_heap could end up in an inconsistent state when + being receive traced, inspected using process_info/2 + with the message_queue_len item, or inspected using the + break menu (CTRL-C). When it ended up in this + inconsistent state, it was not enqueued into a run + queue even though it was set in a runnable state.This + also effected signals being sent to the process after + it had gotten into this inconsistent state, in such a + way that it was from this point not possible to + communicate with it. + + + OTP-18839 Application(s): erts + Related Id(s): GH-7801, PR-7822 + + A race occurring when a process was selected for dirty + execution simultaneously as it was scheduled for + handling a signal could cause the process to end up in + an inconsistent state. When it ended up in this + inconsistent state, it was not enqueued into a run + queue even though it was set in a runnable state. This + also effected signals being sent to the process after + it had gotten into this inconsistent state, in such a + way that it was from this point not possible to + communicate with it. + + + OTP-18841 Application(s): erts + Related Id(s): GH-7801, OTP-18737, PR-7822 + + When a process had to to wait in the run queue for a + long time before being selected for dirty execution, it + could not receive signals. This caused inspection of + such a process, for example using process_info/2, to + take a long time. + + This issue was introduced in OTP 25.3.2.6 and 26.1 when + fixing an issue where a constant flow of signals + prevented a process from being able to execute dirty. + + + OTP-18842 Application(s): erts + + Fixed a bug in the JIT that miscompiled large + select_val instructions. + + + OTP-18885 Application(s): erts + Related Id(s): GH-7834, GH-7890, PR-7915 + + On OTP 24 and OTP 25, incoming distributed messages + larger than 64 KiB sent using an alias leaked memory if + the alias had been removed prior to entering the node. + This issue was not present on OTP 26. + + Incoming distributed messages larger than 64 KiB sent + using an alias which had been removed on the receiving + node could crash the node. This crash was quite + unlikely on OTP 24 and OTP 25, but very likely on OTP + 26. + + 'DOWN' signals with exit reason larger than 64 KiB + directed towards a process on a node with a not + matching creation leaked memory on the receiving node. + Such signals should however be very rare. + + + OTP-18902 Application(s): erts + + Removed unnecessary PCRE source tar-ball. + + + --- Improvements and New Features --- + + OTP-18830 Application(s): erts + Related Id(s): PR-7823 + + Removed unnecessary regexp library used when generating + yielding BIFs. + + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + OTP-18899 Application(s): erts + + Removed unused makewhatis script. + + + Full runtime dependencies of erts-13.2.2.5: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- mnesia-4.21.4.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.4.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18850 Application(s): mnesia + + mnesia:add_table_copy/3 no longer fails with reason + system_limit when the node is starting. + + + Full runtime dependencies of mnesia-4.21.4.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13.3.2 --------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.13.3.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18739 Application(s): public_key, ssl + + ssl application will validate id-kp-serverAuth and + id-kp-clientAuth extended key usage only in end entity + certificates. public_key application will disallow + "anyExtendedKeyUsage" for CA certificates that includes + the extended key usage extension and marks it critical. + + + Full runtime dependencies of public_key-1.13.3.2: asn1-3.0, + crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.15.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.15.3.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18869 Application(s): ssh + Related Id(s): GH-7571, PR-7849 + + With this change, connection handler does not execute + socket operations until it becomes socket owner. + Previously errors could occur if connection handler + tried to work with socket whose owner exited. + + + OTP-18897 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + Full runtime dependencies of ssh-4.15.3.1: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.9.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.9.1.3 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18739 Application(s): public_key, ssl + + ssl application will validate id-kp-serverAuth and + id-kp-clientAuth extended key usage only in end entity + certificates. public_key application will disallow + "anyExtendedKeyUsage" for CA certificates that includes + the extended key usage extension and marks it critical. + + + OTP-18886 Application(s): ssl + + Add missing export for connection_info() API type. + + + Full runtime dependencies of ssl-10.9.1.3: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- wx-2.2.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The wx-2.2.2.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18768 Application(s): wx + Related Id(s): PR-7670 + + The wx application would fail to build on macOS with + Xcode 15. + + + Full runtime dependencies of wx-2.2.2.1: erts-12.0, kernel-8.0, + stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.9.README.txt b/release-notes/OTP-25.3.2.9.README.txt new file mode 100644 index 0000000..5cace9a --- /dev/null +++ b/release-notes/OTP-25.3.2.9.README.txt @@ -0,0 +1,108 @@ +Patch Package: OTP 25.3.2.9 +Git Tag: OTP-25.3.2.9 +Date: 2024-02-08 +Trouble Report Id: OTP-18911, OTP-18932, OTP-18957, OTP-18964 +Seq num: ERIERL-1023, GH-8051 +System: OTP +Release: 25 +Application: common_test-1.24.0.2, erts-13.2.2.6, + ssh-4.15.3.2 +Predecessor: OTP 25.3.2.8 + + Check out the git tag OTP-25.3.2.9, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.24.0.2 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.24.0.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18932 Application(s): common_test + + Fix how CT finds Erlang/OTP releases for compatability + testing. This functionality is only used to test + Erlang/OTP. + + + Full runtime dependencies of common_test-1.24.0.2: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- erts-13.2.2.6 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2.6 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18911 Application(s): erts + Related Id(s): ERIERL-1023, PR-7983 + + 32-bit runtime systems on most Unix like platforms + could crash if a BIF timer was set with a huge timeout + of more than 68 years into the future. In order for the + crash to occur, the huge timer (at a later time than + when it was set) had to become the nearest active timer + set on the specific scheduler on which it was set. This + could not happen on a system with only one scheduler + since there would always be shorter timers in the + system. + + Setting a timer larger than 49 days on Windows could + under rare circumstances cause the timeout to be + delayed. + + + OTP-18957 Application(s): erts + Related Id(s): GH-8051, OTP-18841, PR-8088 + + Garbage collection of a process on a dirty scheduler + could collide with signal handling for that process + causing a crash of the runtime system. This bug was + introduced in OTP 25.3.2.8 and OTP 26.2. + + + Full runtime dependencies of erts-13.2.2.6: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ssh-4.15.3.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.15.3.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18964 Application(s): ssh + + With this change, Curve25519 and Curve448 KEX methods + become most preferred (related to RFC8731). + + + Full runtime dependencies of ssh-4.15.3.2: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.2.README.txt b/release-notes/OTP-25.3.2.README.txt new file mode 100644 index 0000000..6032244 --- /dev/null +++ b/release-notes/OTP-25.3.2.README.txt @@ -0,0 +1,101 @@ +Patch Package: OTP 25.3.2 +Git Tag: OTP-25.3.2 +Date: 2023-05-05 +Trouble Report Id: OTP-18559, OTP-18565, OTP-18570 +Seq num: ERIERL-942, GH-7147 +System: OTP +Release: 25 +Application: compiler-8.2.6, erts-13.2.2, os_mon-2.8.2 +Predecessor: OTP 25.3.1 + + Check out the git tag OTP-25.3.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.2.6 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.6 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18565 Application(s): compiler + Related Id(s): GH-7147 + + Fixed type handling bugs that could cause an internal + error in the compiler for correct code. + + + Full runtime dependencies of compiler-8.2.6: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- erts-13.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2.2 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18570 Application(s): erts + Related Id(s): PR-7190 + + If a runtime system which was starting the distribution + already had existing pids, ports, or references + referring to a node with the same nodename/creation + pair that the runtime system was about to use, these + already existing pids, ports, or references would not + work as expected in various situations after the node + had gone alive. This could only occur if the runtime + system was communicated such pids, ports, or references + prior to the distribution was started. That is, it was + extremely unlikely to happen unless the distribution + was started dynamically and was even then very unlikely + to happen. The runtime system now checks for already + existing pids, ports, and references with the same + nodename/creation pair that it is about to use. If such + are found another creation will be chosen in order to + avoid these issues. + + + Full runtime dependencies of erts-13.2.2: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- os_mon-2.8.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.8.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18559 Application(s): os_mon + Related Id(s): ERIERL-942 + + Avoid error report from failing erlang:port_close at + shutdown of cpu_sup and memsup. Bug exists since OTP + 25.3 (os_mon-2.8.1). + + + Full runtime dependencies of os_mon-2.8.2: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.3.README.txt b/release-notes/OTP-25.3.README.txt new file mode 100644 index 0000000..e9a94c1 --- /dev/null +++ b/release-notes/OTP-25.3.README.txt @@ -0,0 +1,1150 @@ +Patch Package: OTP 25.3 +Git Tag: OTP-25.3 +Date: 2023-03-08 +Trouble Report Id: OTP-16607, OTP-18316, OTP-18348, OTP-18356, + OTP-18366, OTP-18371, OTP-18372, OTP-18373, + OTP-18374, OTP-18375, OTP-18378, OTP-18380, + OTP-18381, OTP-18382, OTP-18384, OTP-18387, + OTP-18390, OTP-18391, OTP-18392, OTP-18393, + OTP-18398, OTP-18404, OTP-18406, OTP-18407, + OTP-18408, OTP-18411, OTP-18412, OTP-18418, + OTP-18426, OTP-18429, OTP-18432, OTP-18434, + OTP-18443, OTP-18446, OTP-18454, OTP-18457, + OTP-18458, OTP-18460, OTP-18463, OTP-18469, + OTP-18470, OTP-18472, OTP-18475, OTP-18496 +Seq num: GH-4232, GH-4733, GH-5984, GH-6160, GH-6356, + GH-6402, GH-6403, GH-6448, GH-6475, GH-6506, + GH-6537, GH-6573, GH-6580, GH-6591, GH-6595, + GH-6601, GH-6604, GH-6656, GH-6672, GH-6677, + GH-6701, GH-6707, GH-6717, GH-6873, GH-6947 +System: OTP +Release: 25 +Application: common_test-1.24, compiler-8.2.4, + crypto-5.1.3, debugger-5.3.1, dialyzer-5.0.5, + erl_interface-5.3.1, erts-13.2, eunit-2.8.2, + ftp-1.1.4, inets-8.3, jinterface-1.13.2, + kernel-8.5.4, megaco-4.4.3, mnesia-4.21.4, + os_mon-2.8.1, public_key-1.13.3, + reltool-0.9.1, snmp-5.13.4, ssh-4.15.3, + ssl-10.9, stdlib-4.3, syntax_tools-3.0.1, + tftp-1.0.4, xmerl-1.3.31 +Predecessor: OTP 25.2.3 + + Check out the git tag OTP-25.3, and build a full OTP system including + documentation. Apply one or more applications from this build as + patches to your installation using the 'otp_patch_apply' tool. For + information on install requirements, see descriptions for each + application version below. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-18374 Application(s): erts + Related Id(s): PR-6632 + + Support for fully asynchronous distributed signaling + where send operations *never* block. This functionality + is by default disabled and can be enabled per process. + For more information see the documentation of + process_flag(async_dist, Bool). + + + --------------------------------------------------------------------- + --- OTP-25.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18387 Application(s): otp + + Clarified the documentation on how to enable maybe + expressions. + + + --------------------------------------------------------------------- + --- common_test-1.24 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.24 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18460 Application(s): common_test + + Renamed undocumented macro CT_PEER/3 to CT_PEER_REL/3. + + + Full runtime dependencies of common_test-1.24: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.2.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18378 Application(s): compiler + Related Id(s): GH-6604 + + Fixed a bug that would cause the compiler to hang. + + + OTP-18381 Application(s): compiler + Related Id(s): GH-6601 + + Fixed a crash when compiling code that contained maybe + expressions. + + + OTP-18407 Application(s): compiler + Related Id(s): GH-6707 + + Constructing a binary with an explicit size of all for + a binary segment would crash the compiler. + + + OTP-18470 Application(s): compiler + Related Id(s): GH-6873, PR-6877 + + The compiler would generate incorrect code for the + following type of expression: + + Pattern = BoundVar1 = . . . = BoundVarN = Expression + + An exception should be raised if any of the bound + variables have different values than Expression. The + compiler would generate code that would cause the bound + variables to be bound to the value of Expressionwhether + the value matched or not. + + + Full runtime dependencies of compiler-8.2.4: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.1.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18384 Application(s): crypto + Related Id(s): PR-6596 + + A user defined runtime library path configured using + --with-ssl-rpath=<PATHS> could fail to be enabled. + + + OTP-18408 Application(s): crypto + + Ensure that configure fails if a user defined runtime + library path has been passed by the user, but cannot + set. + + + Full runtime dependencies of crypto-5.1.3: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- debugger-5.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-5.3.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib + Related Id(s): GH-6580 + + Fixed a bug that would cause analysis to crash. + + + Full runtime dependencies of debugger-5.3.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-5.0.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.0.5 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib + Related Id(s): GH-6580 + + Fixed a bug that would cause analysis to crash. + + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of dialyzer-5.0.5: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- erl_interface-5.3.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.3.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18404 Application(s): erl_interface, jinterface, kernel + Related Id(s): GH-6595, PR-6625 + + Accept connection setup from OTP 23 and 24 nodes that + are not using epmd. + + + --- 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-13.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-13.2 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-8.5 (first satisfied in OTP 25.1) + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18348 Application(s): erts, kernel + Related Id(s): GH-6356 + + Fixed a bug on Windows where file:read_file_info/1 + would fail for files with corrupt metadata. + + + OTP-18373 Application(s): erts + Related Id(s): GH-6573, PR-6574 + + Fix process_info(_, binary) to again include "writable + binaries" which were lost in OTP-25.0. Writable + binaries are an optimization used when binaries are + appended upon in a loop. + + + OTP-18382 Application(s): erts + Related Id(s): PR-6585 + + Fix rare race when receiving fragmented messages on a + terminating connection. Could potentially cause memory + leaks as well as double free crashes. Bug exists since + OTP 22.0. + + + OTP-18391 Application(s): erts + + Fixed bug that could maybe cause problems when a file + descriptor number is closed by a linked in driver and + then opened (reused) and passed to enif_select by a + NIF. No actual symptoms seen, only failed internal + assertions in debug build. + + + OTP-18398 Application(s): erts + Related Id(s): GH-5984, GH-6448, PR-6495 + + The runtime system could crash when tracing a process + executing on a dirty scheduler. + + + OTP-18406 Application(s): erts + Related Id(s): GH-6701 + + In the binary syntax, attempting to match out integers + with size exceeding 2 GiB could crash the runtime + system. + + + OTP-18411 Application(s): erts + Related Id(s): GH-6717 + + Fixed edge case in floating-point negation where A = + 0.0, B = -A did not produce B = -0.0 on x86_64 JIT. + + + OTP-18418 Application(s): erts + + Fixed an issue in the JIT that could crash the emulator + on some platforms. + + + OTP-18429 Application(s): erts + Related Id(s): GH-4232, GH-6537, PR-6587 + + Added meta data to the windows installer. + + + OTP-18434 Application(s): erts + Related Id(s): PR-6752 + + Fixed ETS insertion order into bag and duplicate_bag of + tuples with identical keys when passed in a list to + ets:insert/2. The insert order has been head-to-tail + but was accidentally changed in OTP 23.0. For bag it + was reverted (tail-to-head), while for duplicate_bag it + was sometimes reverted depending on the length of the + list and number of "reductions" left for the calling + process. + + This fix changes the insert order of ets:insert/2 back + to always be head-to-tail of the list argument. + + + OTP-18454 Application(s): erts + Related Id(s): PR-6839 + + With the JIT for AArch64 (AMD64), calling bxor in with + non-integer arguments in a guard would crash the + runtime system. + + + OTP-18457 Application(s): erts + Related Id(s): PR-6816 + + Fix bug regarding process flag max_heap_size. Could + cause strange behavior when a process was killed due to + exceeding the limit. + + + OTP-18458 Application(s): erts + + Fixed binary comprehensions to be similar to other + creation of binary data with respect to its + contribution of triggering garbage collection. + + + OTP-18463 Application(s): erts + Related Id(s): PR-6858 + + In rare circumstances, when a process exceeded its + allowed heap size set by option max_heap_size, it would + not be killed as it should be, but instead enter a kind + of zombie state it would never get out of. + + + OTP-18475 Application(s): erts, stdlib + Related Id(s): PR-6897 + + Instead of crashing, the list_to_integer/1 and + list_to_integer/2 BIFs now raise the system_limit + exception for overlong lists that can't be converted to + integers. Similarly, the string:to_integer/1 BIF now + returns {error,system_limit} for overlong lists. + + + OTP-18496 Application(s): erts + Related Id(s): GH-6947, PR-6953 + + Active process aliases of a process at its termination + leaked memory. + + + --- Improvements and New Features --- + + OTP-18374 Application(s): erts + Related Id(s): PR-6632 + + *** HIGHLIGHT *** + + Support for fully asynchronous distributed signaling + where send operations *never* block. This functionality + is by default disabled and can be enabled per process. + For more information see the documentation of + process_flag(async_dist, Bool). + + + OTP-18426 Application(s): erts + + Added the +JPperf no_fp option to explicitly disable + Erlang frame pointers otherwise added when using the + +JPperf map option. + + + Full runtime dependencies of erts-13.2: kernel-8.5, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- eunit-2.8.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.8.2 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of eunit-2.8.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.1.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.1.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of ftp-1.1.4: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-8.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-8.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18472 Application(s): inets + Related Id(s): DAFH-1592 + + With this change, handling of URI to a folder, with + missing trailing / and a query component present is + fixed. + + + --- Improvements and New Features --- + + OTP-18390 Application(s): inets + Related Id(s): PR-6661 + + Adds more type information to the inets app, thus + improving the errors that static analysis tools can + detect. + + The addition of type information to records and the + updates to function heads help static analysis tools to + understand that some values in the records cannot be + 'undefined', thus making static tools to type check + correctly more modules in the inets app + + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of inets-8.3: erts-6.0, kernel-6.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-4.0 + + + --------------------------------------------------------------------- + --- jinterface-1.13.2 ----------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.13.2 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18404 Application(s): erl_interface, jinterface, kernel + Related Id(s): GH-6595, PR-6625 + + Accept connection setup from OTP 23 and 24 nodes that + are not using epmd. + + + --------------------------------------------------------------------- + --- kernel-8.5.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.5.4 application *cannot* be applied independently + of other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1.3 (first satisfied in OTP 25.2) + -- stdlib-4.1.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18348 Application(s): erts, kernel + Related Id(s): GH-6356 + + Fixed a bug on Windows where file:read_file_info/1 + would fail for files with corrupt metadata. + + + OTP-18404 Application(s): erl_interface, jinterface, kernel + Related Id(s): GH-6595, PR-6625 + + Accept connection setup from OTP 23 and 24 nodes that + are not using epmd. + + + Full runtime dependencies of kernel-8.5.4: crypto-5.0, erts-13.1.3, + sasl-3.0, stdlib-4.1.1 + + + --------------------------------------------------------------------- + --- megaco-4.4.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-4.4.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of megaco-4.4.3: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.21.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.21.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18412 Application(s): mnesia + + Improved consistency for dirty writes when a table was + added with add_table_copy/3. + + Fixed a problem with sticky write, which could lead to + inconsistent data. + + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of mnesia-4.21.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- os_mon-2.8.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.8.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18469 Application(s): os_mon + Related Id(s): PR-6689 + + The port programs used by cpu_sup and memsup are now + gracefully shut down when cpu_sup and memsup are shut + down. + + + Full runtime dependencies of os_mon-2.8.1: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.13.3 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.13.3 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18316 Application(s): public_key + Related Id(s): GH-6402, PR-6883 + + As different solutions of verifying certificate + revocation exists move the decode of + 'CRLDistributionPoints' so that it will only be decode. + When it is actually used in the verification process. + This would enable interoperability with systems that + use certificates with an invalid empty + CRLDistributionPoints extension that they want to + ignore and make verification by other means. + + + OTP-18356 Application(s): public_key + Related Id(s): GH-6403 + + public_key:pkix_path_validation validates certificates + expiring after 2050 + + + OTP-18392 Application(s): public_key + Related Id(s): GH-6656 + + Do not leave exit message in message queue after + calling cacerts_load() on MacOS. + + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of public_key-1.13.3: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.9.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.9.1 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib + Related Id(s): GH-6580 + + Fixed a bug that would cause analysis to crash. + + + Full runtime dependencies of reltool-0.9.1: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- snmp-5.13.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.13.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of snmp-5.13.4: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.15.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.15.3 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18446 Application(s): ssh + Related Id(s): GH-6475 + + With this change, PKCS8 formatted private key file is + properly decoded and SSH daemon with such key can be + started. + + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of ssh-4.15.3: crypto-5.0, erts-11.0, + kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.9 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.9 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-4.1 (first satisfied in OTP 25.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18371 Application(s): ssl + Related Id(s): GH-6160 + + Fixed that new dtls connections from the same client ip + port combination works. If there is a process waiting + for accept the new connection will connect to that, + otherwise it will try to re-connect to the old server + connection. + + + OTP-18443 Application(s): ssl + Related Id(s): PR-6810 + + When shutting down a node that uses SSL distribution + (-proto_dist inet_tls), a confusing error message about + an unexpected process exit was printed. This particular + message is no longer generated. + + + --- Improvements and New Features --- + + OTP-18366 Application(s): ssl + Related Id(s): GH-6506, PR-6565 + + fixes the type spec for ssl:format_error/1 + + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of ssl-10.9: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-4.3 application *cannot* be applied independently of + other applications on an arbitrary OTP 25 installation. + + On a full OTP 25 installation, also the following runtime + dependencies have to be satisfied: + -- erts-13.1 (first satisfied in OTP 25.1) + -- kernel-8.5.1 (first satisfied in OTP 25.1.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib + Related Id(s): GH-6580 + + Fixed a bug that would cause analysis to crash. + + + OTP-18375 Application(s): stdlib + Related Id(s): GH-6591 + + Fixed a crash when formatting stack traces for error + reports. + + + OTP-18475 Application(s): erts, stdlib + Related Id(s): PR-6897 + + Instead of crashing, the list_to_integer/1 and + list_to_integer/2 BIFs now raise the system_limit + exception for overlong lists that can't be converted to + integers. Similarly, the string:to_integer/1 BIF now + returns {error,system_limit} for overlong lists. + + + --- Improvements and New Features --- + + OTP-18393 Application(s): stdlib + Related Id(s): PR-6666 + + Removal of non-necessary undefined types added to the + state's supervisor record. + + + Full runtime dependencies of stdlib-4.3: compiler-5.0, crypto-4.5, + erts-13.1, kernel-8.5.1, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.0.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The syntax_tools-3.0.1 application can be applied independently of + other applications on a full OTP 25 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18380 Application(s): syntax_tools + Related Id(s): GH-4733, PR-6523 + + erl_syntax_lib:annotate_bindings/1,2 will now properly + annotate named functions and their arguments. + + + Full runtime dependencies of syntax_tools-3.0.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tftp-1.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The tftp-1.0.4 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of tftp-1.0.4: erts-6.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- xmerl-1.3.31 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.31 application can be applied independently of other + applications on a full OTP 25 installation. + + --- Improvements and New Features --- + + OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco, + mnesia, public_key, snmp, ssh, ssl, tftp, xmerl + Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671, + PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696, + PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797, + PR-6798, PR-6799, PR-6800, PR-6813 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of xmerl-1.3.31: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0-rc1.README.txt b/release-notes/OTP-26.0-rc1.README.txt new file mode 100644 index 0000000..ce28f52 --- /dev/null +++ b/release-notes/OTP-26.0-rc1.README.txt @@ -0,0 +1,2475 @@ +Inital Release: OTP 26.0 +Git Tag: OTP-26.0 +Date: 2023-02-15 +Trouble Report Id: OTP-14835, OTP-15597, OTP-15903, OTP-16607, + OTP-17771, OTP-17932, OTP-18016, OTP-18029, + OTP-18053, OTP-18126, OTP-18131, OTP-18135, + OTP-18137, OTP-18140, OTP-18141, OTP-18150, + OTP-18159, OTP-18167, OTP-18168, OTP-18176, + OTP-18185, OTP-18188, OTP-18204, OTP-18206, + OTP-18209, OTP-18210, OTP-18211, OTP-18221, + OTP-18225, OTP-18226, OTP-18227, OTP-18228, + OTP-18230, OTP-18231, OTP-18235, OTP-18236, + OTP-18237, OTP-18238, OTP-18246, OTP-18247, + OTP-18248, OTP-18253, OTP-18254, OTP-18259, + OTP-18261, OTP-18271, OTP-18272, OTP-18274, + OTP-18275, OTP-18276, OTP-18277, OTP-18278, + OTP-18279, OTP-18282, OTP-18285, OTP-18286, + OTP-18287, OTP-18297, OTP-18300, OTP-18301, + OTP-18303, OTP-18305, OTP-18309, OTP-18312, + OTP-18318, OTP-18327, OTP-18334, OTP-18335, + OTP-18337, OTP-18338, OTP-18340, OTP-18342, + OTP-18344, OTP-18350, OTP-18354, OTP-18355, + OTP-18360, OTP-18361, OTP-18364, OTP-18367, + OTP-18369, OTP-18377, OTP-18385, OTP-18405, + OTP-18410, OTP-18413, OTP-18414, OTP-18419, + OTP-18423, OTP-18424, OTP-18425, OTP-18430, + OTP-18431, OTP-18435, OTP-18438, OTP-18439, + OTP-18440, OTP-18441, OTP-18442, OTP-18444, + OTP-18445, OTP-18447, OTP-18448, OTP-18451, + OTP-18452, OTP-18453, OTP-18456, OTP-18459 +Seq num: GH-3150, GH-3390, GH-4225, GH-4343, GH-4965, + GH-5325, GH-5333, GH-5639, GH-5695, GH-5877, + GH-5889, GH-6014, GH-6085, GH-6117, GH-6132, + GH-6139, GH-6156, GH-6221, GH-6333, GH-6348, + GH-6461, GH-6477, GH-6544, GH-6606, GH-6672, + GH-6679 +System: OTP +Release: 26 +Application: asn1-5.1, common_test-1.24, compiler-8.3, + crypto-5.2, dialyzer-5.1, diameter-2.3, + erl_docgen-1.5, erl_interface-5.4, erts-14.0, + inets-8.3, jinterface-1.14, kernel-9.0, + mnesia-4.22, observer-2.15, os_mon-2.9, + public_key-1.14, reltool-0.10, + runtime_tools-1.20, sasl-4.2.1, ssh-5.0, + ssl-11.0, stdlib-5.0, syntax_tools-3.1, + tools-3.6, wx-2.3 +Predecessor: OTP + + Check out the git tag OTP-26.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are almost + three times faster than in Erlang/OTP 25. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + + OTP-18459 Application(s): ssl + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522 + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + --------------------------------------------------------------------- + --- OTP-26.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18364 Application(s): otp + + Starting from Erlang/OTP 24, it has been possible to + write expressions such as A = catch Expr without + parentheses around the catch expression, but it was not + mentioned in the documentation. It now is. + + + --- Improvements and New Features --- + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18209 Application(s): otp + Related Id(s): PR-5881 + + Fix the make target release, release_docs, install and + install-docs now work when the target path contains + whitespace and/or unicode characters. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18441 Application(s): asn1 + + Minor code improvements. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.24 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18377 Application(s): common_test + Related Id(s): PR-6437 + + This change improves Common Test docs (CT hook example + code) and adds Emacs skeleton with hook code. + + + --- Improvements and New Features --- + + OTP-18259 Application(s): common_test + Related Id(s): PR-5924 + + Updated common_test with a more robust way to fetch old + releases, while ignoring the current release. + + + OTP-18340 Application(s): common_test + + - re-write the XML ct module documentation into erlang + types to make Dialyzer able to catch more precise + errors + + + Full runtime dependencies of common_test-1.24: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18204 Application(s): crypto + Related Id(s): PR-6203 + + Add support for SHAKE128 and SHAKE256. + + + OTP-18206 Application(s): crypto + Related Id(s): PR-6167 + + Make the -DOPENSSL_API_COMPAT flag work without + warnings. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18237 Application(s): dialyzer + Related Id(s): GH-6221, PR-6243 + + When checking behaviors, Dialyzer could generate false + warning that a callback function did not have the + correct type according to the spec in the behavior + definition. + + + OTP-18276 Application(s): dialyzer + Related Id(s): GH-6333 + + In a spec, list(none()) used to mean none(). It has now + been corrected to mean the empty list. + + + --- Improvements and New Features --- + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + *** HIGHLIGHT *** + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18238 Application(s): dialyzer + Related Id(s): PR-6271 + + Dialyzer now produces clearer error messages for + contract violations. + + + OTP-18282 Application(s): dialyzer + Related Id(s): GH-6132, PR-6335 + + The name of a built-in type can now be reused as the + name of type locally. That is useful when an OTP + release introduces a new built-in type; having the + possibility to redefine built-in types locally can make + it easier to maintain code that works in multiple OTP + releases. + + + OTP-18342 Application(s): dialyzer + Related Id(s): GH-6117, PR-6654 + + Dialyzer's overloaded domain warning becomes is + disabled by default, and can be enabled with the flag + -Woverlapping_contract. + + Dialyzer used to issue a warning for overloaded domains + stating "such contracts are currently unsupported and + are simply ignored". + + These contracts are not "ignored" but rather, Dialyzer + takes the union of the overloaded domains. This means + that we lose the dependency from each corresponding + input to output type. Because of this, the warning is + really about not being able to establish a dependency + between the input and output types of each respective + overloaded function specification. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, PR-6822 + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18338 Application(s): erl_docgen + Related Id(s): PR-6408 + + New XML tag <change>. Like a <note> box, but with a + different (steel blue) color and label. Intended to + contain talk about semantic differences between OTP + releases. + + + Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.4 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --- 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-14.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18016 Application(s): erts + + If a local fun was called while reloading the *exact + same* module that defined said fun, there was a small + window in which the call would land in code that was + yet to be fully loaded. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18274 Application(s): erts + Related Id(s): PR-6048 + + Fix so that -fno-omit-frame-pointer is applied to all + of the Erlang VM when using the JIT so that tools, such + as perf, can crawl the process stacks. + + + OTP-18277 Application(s): erts + Related Id(s): PR-6306 + + Compilation server now support unicode paths in + compilation server for filesystems that are encoded + with unicode. + + + --- Improvements and New Features --- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + *** POTENTIAL INCOMPATIBILITY *** + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Preparation for adding Windows support to 'socket'. + + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18131 Application(s): erts + + Optimized internal hash routines. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18141 Application(s): erts + Related Id(s): OTP-18140, PR-6073 + + Optimization of process aliases made possible now that + support for version 4 node container types in the + external term format is mandatory. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18227 Application(s): erts + Related Id(s): PR-6254 + + When erl -eval fails to execute the command is not + printed to standard_error. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + *** HIGHLIGHT *** + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18360 Application(s): erts + Related Id(s): PR-6497 + + erlang:display/1 will now print large maps in a more + readable way (similar to how small maps are printed). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18369 Application(s): erts + + Fail enif_init_resource_type and friends by returning + NULL if not called during load/upgrade. Old behavior + was undefined. + + + OTP-18410 Application(s): erts + Related Id(s): GH-5889, PR-6345 + + New option include_shared_binaries for the + max_heap_size process limit. If set to true, large + binaries (> 64 bytes), which may be referred by several + processes, are included in the memory sum compared + against the max_heap_size limit. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18424 Application(s): erts + Related Id(s): PR-6716 + + Reduced memory usage of file:read_file_info/1,2 + + + OTP-18425 Application(s): erts + Related Id(s): GH-5333, PR-6628 + + Add new function current_stacktrace for trace match + specifications used by erlang:trace_pattern/3. + + This new option puts the current stacktrace of the + caller into the trace message sent to the trace + receiver. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + *** HIGHLIGHT *** + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + *** HIGHLIGHT *** + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-8.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18167 Application(s): inets + + By default ssl connections will use options from + ssl_default_options(true) + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of inets-8.3: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- jinterface-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --------------------------------------------------------------------- + --- kernel-9.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + Fix bug where duplicate keys were allowed in the .app + file of an application. Duplicate keys are now rejected + and the application will not start if they exist. + + + OTP-18225 Application(s): kernel + Related Id(s): PR-6036 + + Fix inconsistent handling in logger_formatter of the + branched values in conditional branches. For example + using msg in a conditional branch would not be + formatted as it should before this fix. + + + OTP-18226 Application(s): kernel + Related Id(s): PR-6253 + + Fix the logger_std_h handler to log to standard_error + if logging to standard_io fails for any reason. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18286 Application(s): kernel + Related Id(s): PR-5955 + + Fix logging of log events generated before kernel is + started to not fail if the code for formatting those + log messaged have not yet been loaded. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Preparation for adding Windows support to 'socket'. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18261 Application(s): kernel + Related Id(s): PR-5924 + + Add code:get_doc/2 which adds support to fetch + documentation skeletons of functions using debug_info + chunks instead of eep48 doc chunks. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18305 Application(s): kernel + Related Id(s): PR-5831 + + gen_server optimized by caching callback functions + + + OTP-18327 Application(s): kernel + Related Id(s): PR-6433 + + Prepare the pg communication protocol for upgrade. The + plan is for OTP-28 nodes to be able to use an upgraded + pg protocol while still being able to talk with OTP 26 + nodes. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18419 Application(s): kernel + + The function file:pid2name/1 is deprecated and will be + removed in Erlang/OTP 27. + + + OTP-18442 Application(s): kernel + Related Id(s): GH-6606, PR-6786 + + The modules Erlang DNS resolver inet_res and helper + modules have been updated for RFC6891; to handle OPT RR + with DNSSEC OK (DO) bit. + + + OTP-18444 Application(s): kernel + Related Id(s): PR-6035 + + Introduced application:get_supervisor/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18448 Application(s): kernel + Related Id(s): PR-6736 + + Reduce contention on the code_server by doing the code + preparation on the client. + + + OTP-18451 Application(s): kernel + Related Id(s): PR-6737 + + Added a mode to ensure_all_loaded, to start children + application and their dependencies concurrently. + + + OTP-18452 Application(s): kernel + Related Id(s): PR-6729 + + Cache OTP boot code paths, to limit how many folders + that are being accessed during a module lookup. Can be + disabled with -cache_boot_path false. OTP boot code + paths consists of ERL_LIB environment variables. The + various otp/*/ebin folders. And the {path, ...} clauses + in the init script. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- mnesia-4.22 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18309 Application(s): mnesia + Related Id(s): PR-6377 + + Added debug statistics for active transactions. + + + Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.15 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18430 Application(s): observer + Related Id(s): PR-6397 + + Added start/1, start_and_wait functions/1|2 functions. + + + Full runtime dependencies of observer-2.15: erts-14.0, et-1.5, + kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + + + --------------------------------------------------------------------- + --- os_mon-2.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18246 Application(s): os_mon + Related Id(s): GH-6156, PR-6284 + + Fix internal os_mon_sysinfo:get_disk_info/1 function to + not crash when run on Windows with multiple drives. + + + --- Improvements and New Features --- + + OTP-18303 Application(s): os_mon + Related Id(s): PR-6384 + + The disksup:get_disk_info/0 and disksup:get_disk_info/1 + functions have been introduced. These can be used in + order to immediately fetch information about current + disk usage. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- public_key-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.10 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18230 Application(s): reltool + Related Id(s): PR-5936 + + Add possibility to strip specific chunks from beam + files included in a release. Before this change it was + only possible to strip all chunks from the beam files. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of reltool-0.10: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3 + + + --------------------------------------------------------------------- + --- runtime_tools-1.20 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18211 Application(s): runtime_tools + Related Id(s): PR-6143 + + Add dbg:tracer(file, Filename) as a convenient way to + trace to a file in clean text. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of runtime_tools-1.20: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18300 Application(s): sasl + Related Id(s): PR-6389 + + Improve error message from systools:make_script, when + .app parameters contain duplicates. The parameters that + will be checked are modules, applications and + registered. + + + Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0, + stdlib-4.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-5.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18231 Application(s): ssh + Related Id(s): OTP-17932, PR-6144 + + The ssh_cli has been updated to work with the changes + introduced in the new Erlang shell implementation. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15903 Application(s): ssl + + Improved error checking and handling of ssl options. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + *** POTENTIAL INCOMPATIBILITY *** + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18253 Application(s): ssl + + With this change, TLS 1.3 server can be configured to + include client certificate in session ticket. + + + OTP-18254 Application(s): ssl + Related Id(s): PR-5982 + + With this change, it is possible to configure + encryption seed to be used with TLS1.3 stateless + tickets. This enables using tickets on different server + instances. + + + OTP-18312 Application(s): ssl + + Debugging enhancements. + + + OTP-18335 Application(s): ssl + + With this change, maybe keyword atom is not used as + function name in ssl code. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + *** POTENTIAL INCOMPATIBILITY *** + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18453 Application(s): ssl + + Mitigate memory usage from large certificate chains by + lowering the maximum handshake size. This should not + effect the common cases, if needed it can be configured + to a higher value. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18459 Application(s): ssl + + *** HIGHLIGHT *** + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18275 Application(s): stdlib + Related Id(s): PR-6045 + + All process calls in dets have been updated to use the + receive queue optimizations. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-15597 Application(s): stdlib + Related Id(s): PR-5831 + + Gen_server now caches external functions for use in + handle_call, handle_cast and handle_info. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18150 Application(s): stdlib + + Added codepoint category to unicode_util + + + OTP-18159 Application(s): stdlib + Related Id(s): PR-6904 + + Added the zip:zip_get_crc32/2 function to retrieve the + CRC32 checksum from an opened ZIP archive. + + + OTP-18176 Application(s): stdlib + Related Id(s): PR-6118 + + Add the new options post_process_args and detached to + peer:start function. + + + OTP-18221 Application(s): stdlib + Related Id(s): PR-6197 + + The re:replace/3,4 functions now accept as the + replacement argument. + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + *** HIGHLIGHT *** + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are almost + three times faster than in Erlang/OTP 25. + + + OTP-18236 Application(s): stdlib + Related Id(s): PR-6256 + + Improved implementation of timer:apply_interval/4 + reducing load on the timer server, and introduction of + the new function timer:apply_repeatedly/4. + timer:apply_repeatedly/4 is similar to + timer:apply_interval/4, but timer:apply_repeatedly/4 + prevents parallel execution of triggered apply + operations which timer:apply_interval/4 does not. + + + OTP-18247 Application(s): stdlib + Related Id(s): PR-6280, PR-6711 + + The base64 module now supports encoding and decoding + with an alternate URL safe alphabet, and an option for + accepting or adding missing = padding characters. + + + OTP-18272 Application(s): stdlib + Related Id(s): PR-6279 + + Add shell:whereis/0 which can be used to locate the + current shell process. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18279 Application(s): stdlib + Related Id(s): PR-6234 + + New function ets:lookup_element/4 with a Default + argument returned if the key did not exist in the + table. The old ets:lookup_element/3 raises a badarg + exception which can be both inconveniente and slower. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18287 Application(s): stdlib + Related Id(s): PR-5955 + + peer nodes using standard_io connections now include + standard error from the node in the io stream from the + started node. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18301 Application(s): stdlib + Related Id(s): PR-6350 + + Improve type specification of + unicode:characters_to_list(). + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + *** HIGHLIGHT *** + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18354 Application(s): stdlib + Related Id(s): PR-6297 + + The binary:encode_hex/2 function has been added to + allow the encoded hexadecimal digits to be in either + lower or upper case. + + + OTP-18355 Application(s): stdlib + Related Id(s): PR-6507 + + Variants of timer:tc() with user specified time unit + have been introduced. + + + OTP-18361 Application(s): stdlib + Related Id(s): PR-6536 + + New function math:tau/0. Returns 2*math:pi(). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18385 Application(s): stdlib + Related Id(s): PR-6698 + + Optimized gen_server:multi_call(). + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18423 Application(s): stdlib + Related Id(s): com/erlang/backlog/issues/142, + https://github + + Make gen_server fail "silently" with a new return value + for init/1. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + + Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + Full runtime dependencies of syntax_tools-3.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tools-3.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.3 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0, + stdlib-3.15 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0-rc2.README.txt b/release-notes/OTP-26.0-rc2.README.txt new file mode 100644 index 0000000..23c8f66 --- /dev/null +++ b/release-notes/OTP-26.0-rc2.README.txt @@ -0,0 +1,3216 @@ +Inital Release: OTP 26.0 +Git Tag: OTP-26.0 +Date: 2023-03-22 +Trouble Report Id: OTP-14835, OTP-15597, OTP-15903, OTP-16607, + OTP-17771, OTP-17932, OTP-18016, OTP-18029, + OTP-18053, OTP-18126, OTP-18131, OTP-18135, + OTP-18137, OTP-18140, OTP-18141, OTP-18150, + OTP-18159, OTP-18167, OTP-18168, OTP-18176, + OTP-18185, OTP-18188, OTP-18204, OTP-18206, + OTP-18209, OTP-18210, OTP-18211, OTP-18221, + OTP-18225, OTP-18226, OTP-18227, OTP-18228, + OTP-18230, OTP-18231, OTP-18235, OTP-18236, + OTP-18237, OTP-18238, OTP-18246, OTP-18247, + OTP-18248, OTP-18253, OTP-18254, OTP-18259, + OTP-18261, OTP-18271, OTP-18272, OTP-18274, + OTP-18275, OTP-18276, OTP-18277, OTP-18278, + OTP-18279, OTP-18282, OTP-18285, OTP-18286, + OTP-18287, OTP-18297, OTP-18300, OTP-18301, + OTP-18303, OTP-18305, OTP-18309, OTP-18310, + OTP-18312, OTP-18318, OTP-18327, OTP-18334, + OTP-18335, OTP-18337, OTP-18338, OTP-18340, + OTP-18342, OTP-18344, OTP-18350, OTP-18354, + OTP-18355, OTP-18359, OTP-18360, OTP-18361, + OTP-18364, OTP-18367, OTP-18369, OTP-18377, + OTP-18385, OTP-18389, OTP-18405, OTP-18410, + OTP-18413, OTP-18414, OTP-18419, OTP-18423, + OTP-18424, OTP-18425, OTP-18430, OTP-18431, + OTP-18435, OTP-18438, OTP-18439, OTP-18440, + OTP-18441, OTP-18442, OTP-18444, OTP-18445, + OTP-18447, OTP-18448, OTP-18451, OTP-18452, + OTP-18453, OTP-18455, OTP-18456, OTP-18459, + OTP-18466, OTP-18471, OTP-18474, OTP-18476, + OTP-18477, OTP-18483, OTP-18484, OTP-18485, + OTP-18486, OTP-18487, OTP-18488, OTP-18490, + OTP-18491, OTP-18492, OTP-18493, OTP-18494, + OTP-18495, OTP-18498, OTP-18499, OTP-18500, + OTP-18501, OTP-18502, OTP-18505, OTP-18510, + OTP-18511, OTP-18515, OTP-18517, OTP-18518, + OTP-18520, OTP-18521, OTP-18522, OTP-18523, + OTP-18524 +Seq num: GH-3150, GH-3390, GH-4225, GH-4343, GH-4965, + GH-5325, GH-5333, GH-5639, GH-5695, GH-5877, + GH-5889, GH-5899, GH-6014, GH-6085, GH-6098, + GH-6117, GH-6132, GH-6139, GH-6156, GH-6221, + GH-6333, GH-6339, GH-6348, GH-6380, GH-6455, + GH-6461, GH-6477, GH-6508, GH-6544, GH-6606, + GH-6672, GH-6679, GH-6706, GH-6850, GH-6942, + GH-6990, GH-7015 +System: OTP +Release: 26 +Application: asn1-5.1, common_test-1.25, compiler-8.3, + crypto-5.2, dialyzer-5.1, diameter-2.3, + erl_docgen-1.5, erl_interface-5.4, erts-14.0, + ftp-1.1.5, inets-8.4, jinterface-1.14, + kernel-9.0, mnesia-4.22, observer-2.15, + os_mon-2.9, parsetools-2.5, public_key-1.14, + reltool-1.0, runtime_tools-1.20, sasl-4.2.1, + snmp-5.14, ssh-5.0, ssl-11.0, stdlib-5.0, + syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3 +Predecessor: OTP + + Check out the git tag OTP-26.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are almost + three times faster than in Erlang/OTP 25. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18459 Application(s): ssl + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + Leex has been extended with optional column number + support. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18498 Application(s): erts + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + OTP-18500 Application(s): stdlib + + Update Unicode to version 15.0.0. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + Fix bug where duplicate keys were allowed in the .app + file of an application. Duplicate keys are now rejected + and the application will not start if they exist. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18389 Application(s): dialyzer + Related Id(s): GH-6508, PR-6864 + + Dialyzer was accepting typespecs containing singleton + type variables that appeared in an union type. + + Before this change, singleton type variables in an + union type were accepted (see example below). However, + type variable Foo appears only once in each branch of + the union type, so it is a singleton type variable (in + each branch of the union type) that is not bound. + + -spec run_test(Opts) -> term() when Opts :: + {join_specs, Foo} | {test, Foo}. + + Unbound type variables should be rejected by Dialyzer, + which now detects this error and rejects it in the same + manner as its non-union equivalent: + + -spec run_test_error(Opts) -> term() when Opts :: + {join_specs, Foo}. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + --------------------------------------------------------------------- + --- OTP-26.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18364 Application(s): otp + + Starting from Erlang/OTP 24, it has been possible to + write expressions such as A = catch Expr without + parentheses around the catch expression, but it was not + mentioned in the documentation. It now is. + + + --- Improvements and New Features --- + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18209 Application(s): otp + Related Id(s): PR-5881 + + Fix the make target release, release_docs, install and + install-docs now work when the target path contains + whitespace and/or unicode characters. + + + OTP-18492 Application(s): otp + Related Id(s): GH-6706 + + The documentation for the bit syntax has been updated + to correct some factual errors and omissions. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18441 Application(s): asn1 + + Minor code improvements. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.25 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18377 Application(s): common_test + Related Id(s): PR-6437 + + This change improves Common Test docs (CT hook example + code) and adds Emacs skeleton with hook code. + + + --- Improvements and New Features --- + + OTP-18259 Application(s): common_test + Related Id(s): PR-5924 + + Updated common_test with a more robust way to fetch old + releases, while ignoring the current release. + + + OTP-18340 Application(s): common_test + + - re-write the XML ct module documentation into erlang + types to make Dialyzer able to catch more precise + errors + + + Full runtime dependencies of common_test-1.25: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18502 Application(s): compiler + + The compiler will now inline calls to maps:get/3. + + + Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18204 Application(s): crypto + Related Id(s): PR-6203 + + Add support for SHAKE128 and SHAKE256. + + + OTP-18206 Application(s): crypto + Related Id(s): PR-6167 + + Make the -DOPENSSL_API_COMPAT flag work without + warnings. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18237 Application(s): dialyzer + Related Id(s): GH-6221, PR-6243 + + When checking behaviors, Dialyzer could generate false + warning that a callback function did not have the + correct type according to the spec in the behavior + definition. + + + OTP-18276 Application(s): dialyzer + Related Id(s): GH-6333 + + In a spec, list(none()) used to mean none(). It has now + been corrected to mean the empty list. + + + OTP-18389 Application(s): dialyzer + Related Id(s): GH-6508, PR-6864 + + *** POTENTIAL INCOMPATIBILITY *** + + Dialyzer was accepting typespecs containing singleton + type variables that appeared in an union type. + + Before this change, singleton type variables in an + union type were accepted (see example below). However, + type variable Foo appears only once in each branch of + the union type, so it is a singleton type variable (in + each branch of the union type) that is not bound. + + -spec run_test(Opts) -> term() when Opts :: + {join_specs, Foo} | {test, Foo}. + + Unbound type variables should be rejected by Dialyzer, + which now detects this error and rejects it in the same + manner as its non-union equivalent: + + -spec run_test_error(Opts) -> term() when Opts :: + {join_specs, Foo}. + + + OTP-18485 Application(s): dialyzer + Related Id(s): GH-6850, PR-6854 + + Fixed a bug that prevented the --plts option from being + used together with --add-to-plt. + + + --- Improvements and New Features --- + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + *** HIGHLIGHT *** + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18238 Application(s): dialyzer + Related Id(s): PR-6271 + + Dialyzer now produces clearer error messages for + contract violations. + + + OTP-18282 Application(s): dialyzer + Related Id(s): GH-6132, PR-6335 + + The name of a built-in type can now be reused as the + name of type locally. That is useful when an OTP + release introduces a new built-in type; having the + possibility to redefine built-in types locally can make + it easier to maintain code that works in multiple OTP + releases. + + + OTP-18310 Application(s): dialyzer + + There is new option -no_spec to ignore all specs. It is + useful for debugging when one suspects that some specs + could be incorrect. + + + OTP-18342 Application(s): dialyzer + Related Id(s): GH-6117, PR-6654 + + Dialyzer's overloaded domain warning becomes is + disabled by default, and can be enabled with the flag + -Woverlapping_contract. + + Dialyzer used to issue a warning for overloaded domains + stating "such contracts are currently unsupported and + are simply ignored". + + These contracts are not "ignored" but rather, Dialyzer + takes the union of the overloaded domains. This means + that we lose the dependency from each corresponding + input to output type. Because of this, the warning is + really about not being able to establish a dependency + between the input and output types of each respective + overloaded function specification. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + *** POTENTIAL INCOMPATIBILITY *** + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18338 Application(s): erl_docgen + Related Id(s): PR-6408 + + New XML tag <change>. Like a <note> box, but with a + different (steel blue) color and label. Intended to + contain talk about semantic differences between OTP + releases. + + + OTP-18501 Application(s): erl_docgen + Related Id(s): PR-6987 + + Add "since" attribute to XML taglist/tag elements to + document OTP version when a particular option/feature + was introduced. The version is shown out in the right + margin, similar to "since" versions for functions. + + + Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.4 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --- 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-14.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18016 Application(s): erts + + If a local fun was called while reloading the *exact + same* module that defined said fun, there was a small + window in which the call would land in code that was + yet to be fully loaded. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18274 Application(s): erts + Related Id(s): PR-6048 + + Fix so that -fno-omit-frame-pointer is applied to all + of the Erlang VM when using the JIT so that tools, such + as perf, can crawl the process stacks. + + + OTP-18277 Application(s): erts + Related Id(s): PR-6306 + + Compilation server now support unicode paths in + compilation server for filesystems that are encoded + with unicode. + + + OTP-18498 Application(s): erts + + *** HIGHLIGHT *** + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + --- Improvements and New Features --- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + *** POTENTIAL INCOMPATIBILITY *** + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Preparation for adding Windows support to 'socket'. + + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18131 Application(s): erts + + Optimized internal hash routines. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18141 Application(s): erts + Related Id(s): OTP-18140, PR-6073 + + Optimization of process aliases made possible now that + support for version 4 node container types in the + external term format is mandatory. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18227 Application(s): erts + Related Id(s): PR-6254 + + When erl -eval fails to execute the command is not + printed to standard_error. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + *** HIGHLIGHT *** + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18360 Application(s): erts + Related Id(s): PR-6497 + + erlang:display/1 will now print large maps in a more + readable way (similar to how small maps are printed). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18369 Application(s): erts + + Fail enif_init_resource_type and friends by returning + NULL if not called during load/upgrade. Old behavior + was undefined. + + + OTP-18410 Application(s): erts + Related Id(s): GH-5889, PR-6345 + + New option include_shared_binaries for the + max_heap_size process limit. If set to true, large + binaries (> 64 bytes), which may be referred by several + processes, are included in the memory sum compared + against the max_heap_size limit. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18424 Application(s): erts + Related Id(s): PR-6716 + + Reduced memory usage of file:read_file_info/1,2 + + + OTP-18425 Application(s): erts + Related Id(s): GH-5333, PR-6628 + + Add new function current_stacktrace for trace match + specifications used by erlang:trace_pattern/3. + + This new option puts the current stacktrace of the + caller into the trace message sent to the trace + receiver. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + *** HIGHLIGHT *** + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + *** HIGHLIGHT *** + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18477 Application(s): erts + Related Id(s): PR-7006 + + Introduced the local option of term_to_binary/2 and + term_to_iovec/2. + + + OTP-18483 Application(s): erts + Related Id(s): PR-6888 + + Document the commonly used practice to create and store + static atoms at NIF load time in callbacks load or + upgrade. + + + OTP-18493 Application(s): erts + Related Id(s): PR-6272 + + Optimize ets:lookup_element for uncompressed tables by + using a more efficient method to copy the term from ETS + to the heap of the calling process. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + *** POTENTIAL INCOMPATIBILITY *** + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + OTP-18517 Application(s): erts + + The version of zlib included in the Erlang/OTP source + code is now 1.2.13. + + + OTP-18520 Application(s): erts + Related Id(s): GH-6455 + + gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have + been optimized to use the infamous receive reference + optimization, so now sending should not have bad + performance when the calling process has a large + message queue. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18523 Application(s): erts + Related Id(s): PR-7004 + + Optimize maps:merge/2 memory consumption for small maps + (<33 keys) by reusing key tuples or entire maps if the + result map has the same number of keys as any of the + argument maps. + + + OTP-18524 Application(s): erts + Related Id(s): OTP-18523, PR-7004 + + Optimize maps:merge/2 memory consumption further for + small maps by mutating 2nd map to use literal key tuple + of 1st map if both have the same keys. + + + Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ftp-1.1.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18359 Application(s): ftp + Related Id(s): PR-6545 + + Fixes the documentation for the ftp module and updates + the typing of ftp functions that return errors. + + The documentation has been improved and the types of + the functions are now read from source code, instead of + being hard-coded in XML. + + Functions returning errors of the form {error, Reason + :: 'ehost' | ...} are now similar to other modules, + i.e., {error, Reason :: term()}. If one wants to + understand the error, one must call the function + ftp:formaterror({error, Reason}). + + + Full runtime dependencies of ftp-1.1.5: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-8.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18476 Application(s): inets + Related Id(s): GH-6380 + + Correct timing related pipelining/keepalive queue bug, + that could result in unexpected "socket_remotly_closed" + errors. + + + --- Improvements and New Features --- + + OTP-18167 Application(s): inets + + By default ssl connections will use options from + ssl_default_options(true) + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of inets-8.4: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- jinterface-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --------------------------------------------------------------------- + --- kernel-9.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix bug where duplicate keys were allowed in the .app + file of an application. Duplicate keys are now rejected + and the application will not start if they exist. + + + OTP-18225 Application(s): kernel + Related Id(s): PR-6036 + + Fix inconsistent handling in logger_formatter of the + branched values in conditional branches. For example + using msg in a conditional branch would not be + formatted as it should before this fix. + + + OTP-18226 Application(s): kernel + Related Id(s): PR-6253 + + Fix the logger_std_h handler to log to standard_error + if logging to standard_io fails for any reason. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18286 Application(s): kernel + Related Id(s): PR-5955 + + Fix logging of log events generated before kernel is + started to not fail if the code for formatting those + log messaged have not yet been loaded. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Preparation for adding Windows support to 'socket'. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18261 Application(s): kernel + Related Id(s): PR-5924 + + Add code:get_doc/2 which adds support to fetch + documentation skeletons of functions using debug_info + chunks instead of eep48 doc chunks. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18305 Application(s): kernel + Related Id(s): PR-5831 + + gen_server optimized by caching callback functions + + + OTP-18327 Application(s): kernel + Related Id(s): PR-6433 + + Prepare the pg communication protocol for upgrade. The + plan is for OTP-28 nodes to be able to use an upgraded + pg protocol while still being able to talk with OTP 26 + nodes. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18419 Application(s): kernel + + The function file:pid2name/1 is deprecated and will be + removed in Erlang/OTP 27. + + + OTP-18442 Application(s): kernel + Related Id(s): GH-6606, PR-6786 + + The modules Erlang DNS resolver inet_res and helper + modules have been updated for RFC6891; to handle OPT RR + with DNSSEC OK (DO) bit. + + + OTP-18444 Application(s): kernel + Related Id(s): PR-6035 + + Introduced application:get_supervisor/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18448 Application(s): kernel + Related Id(s): PR-6736 + + Reduce contention on the code_server by doing the code + preparation on the client. + + + OTP-18451 Application(s): kernel + Related Id(s): PR-6737 + + Added a mode to ensure_all_loaded, to start children + application and their dependencies concurrently. + + + OTP-18452 Application(s): kernel + Related Id(s): PR-6729 + + Cache OTP boot code paths, to limit how many folders + that are being accessed during a module lookup. Can be + disabled with -cache_boot_path false. OTP boot code + paths consists of ERL_LIB environment variables. The + various otp/*/ebin folders. And the {path, ...} clauses + in the init script. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18466 Application(s): kernel + Related Id(s): PR-6832 + + Add cache attribute to code path apis. + + Added an optional cache/nocache argument to all + code:add_path*, code:set_path*, and code:replace_path* + functions. These functions will then avoid doing + file-accesses if they are cached. Cache can be cleared + with code:clear_cache/0. Added code:del_paths/1 to make + it easier to clear multiple paths. + + + OTP-18484 Application(s): kernel + Related Id(s): PR-6844 + + Improvements to code:ensure_modules_loaded/1: + Previously it would prepare modules and then abandon + references to said modules if they had on_load + callbacks. This pull request makes it so they keep the + references around and then serially load them without + having to fetch the object code and prepare them again. + + + OTP-18510 Application(s): kernel + Related Id(s): GH-6098, PR-6982 + + The internal DNS resolver has bee updated to handle DNS + LOC RR:s (RFC 1876). This is an undocumented module, + although still used by power users. See the source + code. + + + OTP-18521 Application(s): kernel + Related Id(s): PR-7025 + + Reduced memory consumption in global when informing + other nodes about lost connections. + + + Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- mnesia-4.22 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18309 Application(s): mnesia + Related Id(s): PR-6377 + + Added debug statistics for active transactions. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- observer-2.15 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18430 Application(s): observer + Related Id(s): PR-6397 + + Added start/1, start_and_wait functions/1|2 functions. + + + Full runtime dependencies of observer-2.15: erts-14.0, et-1.5, + kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + + + --------------------------------------------------------------------- + --- os_mon-2.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18246 Application(s): os_mon + Related Id(s): GH-6156, PR-6284 + + Fix internal os_mon_sysinfo:get_disk_info/1 function to + not crash when run on Windows with multiple drives. + + + --- Improvements and New Features --- + + OTP-18303 Application(s): os_mon + Related Id(s): PR-6384 + + The disksup:get_disk_info/0 and disksup:get_disk_info/1 + functions have been introduced. These can be used in + order to immediately fetch information about current + disk usage. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- parsetools-2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + *** HIGHLIGHT *** + + Leex has been extended with optional column number + support. + + + Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-1.0 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18230 Application(s): reltool + Related Id(s): PR-5936 + + Add possibility to strip specific chunks from beam + files included in a release. Before this change it was + only possible to strip all chunks from the beam files. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + *** POTENTIAL INCOMPATIBILITY *** + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3 + + + --------------------------------------------------------------------- + --- runtime_tools-1.20 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18499 Application(s): runtime_tools + Related Id(s): PR-6946 + + Fixed the type specification for + instrument:carriers/0,1 + + + --- Improvements and New Features --- + + OTP-18211 Application(s): runtime_tools + Related Id(s): PR-6143 + + Add dbg:tracer(file, Filename) as a convenient way to + trace to a file in clean text. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + Full runtime dependencies of runtime_tools-1.20: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18300 Application(s): sasl + Related Id(s): PR-6389 + + Improve error message from systools:make_script, when + .app parameters contain duplicates. The parameters that + will be checked are modules, applications and + registered. + + + Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0, + stdlib-4.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.14 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssh-5.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18231 Application(s): ssh + Related Id(s): OTP-17932, PR-6144 + + The ssh_cli has been updated to work with the changes + introduced in the new Erlang shell implementation. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15903 Application(s): ssl + + Improved error checking and handling of ssl options. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + *** POTENTIAL INCOMPATIBILITY *** + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18253 Application(s): ssl + + With this change, TLS 1.3 server can be configured to + include client certificate in session ticket. + + + OTP-18254 Application(s): ssl + Related Id(s): PR-5982 + + With this change, it is possible to configure + encryption seed to be used with TLS1.3 stateless + tickets. This enables using tickets on different server + instances. + + + OTP-18312 Application(s): ssl + + Debugging enhancements. + + + OTP-18335 Application(s): ssl + + With this change, maybe keyword atom is not used as + function name in ssl code. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + *** POTENTIAL INCOMPATIBILITY *** + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18453 Application(s): ssl + + Mitigate memory usage from large certificate chains by + lowering the maximum handshake size. This should not + effect the common cases, if needed it can be configured + to a higher value. + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18459 Application(s): ssl + + *** HIGHLIGHT *** + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18275 Application(s): stdlib + Related Id(s): PR-6045 + + All process calls in dets have been updated to use the + receive queue optimizations. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-15597 Application(s): stdlib + Related Id(s): PR-5831 + + Gen_server now caches external functions for use in + handle_call, handle_cast and handle_info. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18150 Application(s): stdlib + + Added codepoint category to unicode_util + + + OTP-18159 Application(s): stdlib + Related Id(s): PR-6904 + + Added the zip:zip_get_crc32/2 function to retrieve the + CRC32 checksum from an opened ZIP archive. + + + OTP-18176 Application(s): stdlib + Related Id(s): PR-6118 + + Add the new options post_process_args and detached to + peer:start function. + + + OTP-18221 Application(s): stdlib + Related Id(s): PR-6197 + + The re:replace/3,4 functions now accept as the + replacement argument. + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + *** HIGHLIGHT *** + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are almost + three times faster than in Erlang/OTP 25. + + + OTP-18236 Application(s): stdlib + Related Id(s): PR-6256 + + Improved implementation of timer:apply_interval/4 + reducing load on the timer server, and introduction of + the new function timer:apply_repeatedly/4. + timer:apply_repeatedly/4 is similar to + timer:apply_interval/4, but timer:apply_repeatedly/4 + prevents parallel execution of triggered apply + operations which timer:apply_interval/4 does not. + + + OTP-18247 Application(s): stdlib + Related Id(s): PR-6280, PR-6711 + + The base64 module now supports encoding and decoding + with an alternate URL safe alphabet, and an option for + accepting or adding missing = padding characters. + + + OTP-18272 Application(s): stdlib + Related Id(s): PR-6279 + + Add shell:whereis/0 which can be used to locate the + current shell process. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18279 Application(s): stdlib + Related Id(s): PR-6234 + + New function ets:lookup_element/4 with a Default + argument returned if the key did not exist in the + table. The old ets:lookup_element/3 raises a badarg + exception which can be both inconveniente and slower. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18287 Application(s): stdlib + Related Id(s): PR-5955 + + peer nodes using standard_io connections now include + standard error from the node in the io stream from the + started node. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18301 Application(s): stdlib + Related Id(s): PR-6350 + + Improve type specification of + unicode:characters_to_list(). + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + *** HIGHLIGHT *** + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18354 Application(s): stdlib + Related Id(s): PR-6297 + + The binary:encode_hex/2 function has been added to + allow the encoded hexadecimal digits to be in either + lower or upper case. + + + OTP-18355 Application(s): stdlib + Related Id(s): PR-6507 + + Variants of timer:tc() with user specified time unit + have been introduced. + + + OTP-18361 Application(s): stdlib + Related Id(s): PR-6536 + + New function math:tau/0. Returns 2*math:pi(). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18385 Application(s): stdlib + Related Id(s): PR-6698 + + Optimized gen_server:multi_call(). + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18423 Application(s): stdlib + Related Id(s): com/erlang/backlog/issues/142, + https://github + + Make gen_server fail "silently" with a new return value + for init/1. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18474 Application(s): stdlib + Related Id(s): PR-6895 + + Static supervisors are very idle processes after they + have started so they will now be hibernated after start + to improve resource management. + + + OTP-18494 Application(s): stdlib + Related Id(s): PR-6924 + + Support has been added in ms_transform for the actions + caller_line/0, current_stacktrace/0, and + current_stacktrace/1. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + *** HIGHLIGHT *** + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18500 Application(s): stdlib + + *** HIGHLIGHT *** + + Update Unicode to version 15.0.0. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + OTP-18515 Application(s): stdlib + Related Id(s): GH-6990 + + Improved the performance of sets:subtract/2 when + subtracting a small number of elements. + + + OTP-18518 Application(s): stdlib + Related Id(s): GH-7015 + + The linter will no longer raise warnings for + underspecified opaque types. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + Full runtime dependencies of syntax_tools-3.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tftp-1.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- tools-3.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.3 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0-rc3.README.txt b/release-notes/OTP-26.0-rc3.README.txt new file mode 100644 index 0000000..9866e8b --- /dev/null +++ b/release-notes/OTP-26.0-rc3.README.txt @@ -0,0 +1,3592 @@ +Inital Release: OTP 26.0 +Git Tag: OTP-26.0 +Date: 2023-04-12 +Trouble Report Id: OTP-14771, OTP-14835, OTP-15597, OTP-15903, + OTP-16607, OTP-17771, OTP-17932, OTP-18016, + OTP-18029, OTP-18053, OTP-18126, OTP-18131, + OTP-18135, OTP-18137, OTP-18140, OTP-18141, + OTP-18150, OTP-18159, OTP-18167, OTP-18168, + OTP-18176, OTP-18185, OTP-18188, OTP-18204, + OTP-18206, OTP-18209, OTP-18210, OTP-18211, + OTP-18221, OTP-18225, OTP-18226, OTP-18227, + OTP-18228, OTP-18230, OTP-18231, OTP-18235, + OTP-18236, OTP-18237, OTP-18238, OTP-18246, + OTP-18247, OTP-18248, OTP-18253, OTP-18254, + OTP-18259, OTP-18261, OTP-18271, OTP-18272, + OTP-18274, OTP-18275, OTP-18276, OTP-18277, + OTP-18278, OTP-18279, OTP-18282, OTP-18285, + OTP-18286, OTP-18287, OTP-18297, OTP-18300, + OTP-18301, OTP-18303, OTP-18305, OTP-18309, + OTP-18310, OTP-18312, OTP-18318, OTP-18327, + OTP-18331, OTP-18334, OTP-18335, OTP-18337, + OTP-18338, OTP-18340, OTP-18342, OTP-18344, + OTP-18350, OTP-18354, OTP-18355, OTP-18359, + OTP-18360, OTP-18361, OTP-18364, OTP-18367, + OTP-18369, OTP-18377, OTP-18385, OTP-18389, + OTP-18405, OTP-18410, OTP-18413, OTP-18414, + OTP-18419, OTP-18423, OTP-18424, OTP-18425, + OTP-18430, OTP-18431, OTP-18435, OTP-18438, + OTP-18439, OTP-18440, OTP-18441, OTP-18442, + OTP-18444, OTP-18445, OTP-18447, OTP-18448, + OTP-18451, OTP-18452, OTP-18453, OTP-18455, + OTP-18456, OTP-18459, OTP-18465, OTP-18466, + OTP-18471, OTP-18474, OTP-18476, OTP-18477, + OTP-18483, OTP-18484, OTP-18485, OTP-18486, + OTP-18487, OTP-18488, OTP-18490, OTP-18491, + OTP-18492, OTP-18493, OTP-18494, OTP-18495, + OTP-18498, OTP-18499, OTP-18500, OTP-18501, + OTP-18502, OTP-18505, OTP-18507, OTP-18510, + OTP-18511, OTP-18515, OTP-18517, OTP-18518, + OTP-18520, OTP-18521, OTP-18522, OTP-18523, + OTP-18524, OTP-18526, OTP-18528, OTP-18530, + OTP-18531, OTP-18533, OTP-18534, OTP-18536, + OTP-18537, OTP-18538, OTP-18539, OTP-18540, + OTP-18541, OTP-18542, OTP-18544, OTP-18546, + OTP-18547, OTP-18548, OTP-18549, OTP-18550, + OTP-18551, OTP-18552 +Seq num: ERIERL-737, ERIERL-870, GH-3150, GH-3390, + GH-4225, GH-4343, GH-4965, GH-5276, GH-5325, + GH-5333, GH-5639, GH-5695, GH-5877, GH-5889, + GH-5899, GH-6014, GH-6085, GH-6098, GH-6117, + GH-6132, GH-6139, GH-6156, GH-6221, GH-6333, + GH-6339, GH-6348, GH-6380, GH-6455, GH-6461, + GH-6477, GH-6508, GH-6544, GH-6606, GH-6672, + GH-6679, GH-6706, GH-6850, GH-6942, GH-6990, + GH-7015, GH-7031, GH-7045, GH-7065, GH-7070 +System: OTP +Release: 26 +Application: asn1-5.1, common_test-1.25, compiler-8.3, + crypto-5.2, dialyzer-5.1, diameter-2.3, + erl_docgen-1.5, erl_interface-5.4, erts-14.0, + ftp-1.1.5, inets-9.0, jinterface-1.14, + kernel-9.0, megaco-4.4.4, mnesia-4.22, + observer-2.15, odbc-2.14.1, os_mon-2.9, + parsetools-2.5, public_key-1.14, reltool-1.0, + runtime_tools-2.0, sasl-4.2.1, snmp-5.14, + ssh-5.0, ssl-11.0, stdlib-5.0, + syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3 +Predecessor: OTP + + Check out the git tag OTP-26.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are more + than three times faster than in Erlang/OTP 25. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18459 Application(s): ssl + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + Leex has been extended with optional column number + support. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18498 Application(s): erts + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + OTP-18500 Application(s): stdlib + + Update Unicode to version 15.0.0. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-14771 Application(s): ssl + + Remove less that 256 bit ECC from default supported ECC + pre TLS-1.3 + + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + Fix bug where duplicate keys were allowed in the .app + file of an application. Duplicate keys are now rejected + and the application will not start if they exist. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18389 Application(s): dialyzer + Related Id(s): GH-6508, PR-6864 + + Dialyzer was accepting typespecs containing singleton + type variables that appeared in an union type. + + Before this change, singleton type variables in an + union type were accepted (see example below). However, + type variable Foo appears only once in each branch of + the union type, so it is a singleton type variable (in + each branch of the union type) that is not bound. + + -spec run_test(Opts) -> term() when Opts :: + {join_specs, Foo} | {test, Foo}. + + Unbound type variables should be rejected by Dialyzer, + which now detects this error and rejects it in the same + manner as its non-union equivalent: + + -spec run_test_error(Opts) -> term() when Opts :: + {join_specs, Foo}. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + OTP-18530 Application(s): inets + + IP display string will now always be in lower case, + effects ipv6 addresses. + + + OTP-18531 Application(s): ssl + + If a user cancel alert with level warning is received + during handshake make it be handled the same regardless + of TLS version. If it is received in connection in + TLS-1.3 regard it as an error as it is inappropriate. + + In TLS-1.3 all error alerts are considered FATAL + regardless of legacy alert type. But make sure legacy + type is printed in logs to not confuse users that are + expecting the same legacy type as sent by peer. + + + OTP-18536 Application(s): inets + + Removed deprecated functions + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + OTP-18551 Application(s): kernel + Related Id(s): PR-7106 + + Removed code:is_module_native/1 since HiPE has been + removed. It has since OTP 24 been deprecated and + scheduled for removal in OTP 26. + + Removed code:rehash/0 since the code path feature no + longer is present. It has since OTP 19 been deprecated + and has since OTP 24 been scheduled for removal in OTP + 26. + + + OTP-18552 Application(s): erts + Related Id(s): PR-6973 + + ERTS internal thread names have been changed. All + threads created by ERTS now have a prefix erts_ + followed by a type name potentially followed by an + integer index. For example, normal schedulers are now + named erts_sched_<IX>, dirty CPU schedulers + erts_dcpus_<IX>, and dirty IO schedulers + erts_dios_<IX>. NIF and driver thread names are + truncated at 15 characters regardless of whether the + underlying platform support more characters or not. + + + --------------------------------------------------------------------- + --- OTP-26.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18364 Application(s): otp + + Starting from Erlang/OTP 24, it has been possible to + write expressions such as A = catch Expr without + parentheses around the catch expression, but it was not + mentioned in the documentation. It now is. + + + OTP-18538 Application(s): megaco, otp + Related Id(s): GH-7031, PR-7078 + + Removed configure option --enable-sanitizers. It was + untested and broken. Address sanitizer for the emulator + has better support by the asan build target. + + + --- Improvements and New Features --- + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18209 Application(s): otp + Related Id(s): PR-5881 + + Fix the make target release, release_docs, install and + install-docs now work when the target path contains + whitespace and/or unicode characters. + + + OTP-18492 Application(s): otp + Related Id(s): GH-6706 + + The documentation for the bit syntax has been updated + to correct some factual errors and omissions. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18534 Application(s): asn1 + Related Id(s): ERIERL-737, PR-7039 + + The ASN.1 compiler rejects correctly specified + RELATIVE-OID values containing other RELATIVE-OID + values. This is now corrected. + + + --- Improvements and New Features --- + + OTP-18441 Application(s): asn1 + + Minor code improvements. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.25 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18377 Application(s): common_test + Related Id(s): PR-6437 + + This change improves Common Test docs (CT hook example + code) and adds Emacs skeleton with hook code. + + + --- Improvements and New Features --- + + OTP-18259 Application(s): common_test + Related Id(s): PR-5924 + + Updated common_test with a more robust way to fetch old + releases, while ignoring the current release. + + + OTP-18340 Application(s): common_test + + - re-write the XML ct module documentation into erlang + types to make Dialyzer able to catch more precise + errors + + + Full runtime dependencies of common_test-1.25: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18502 Application(s): compiler + + The compiler will now inline calls to maps:get/3. + + + Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18204 Application(s): crypto + Related Id(s): PR-6203 + + Add support for SHAKE128 and SHAKE256. + + + OTP-18206 Application(s): crypto + Related Id(s): PR-6167 + + Make the -DOPENSSL_API_COMPAT flag work without + warnings. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18237 Application(s): dialyzer + Related Id(s): GH-6221, PR-6243 + + When checking behaviors, Dialyzer could generate false + warning that a callback function did not have the + correct type according to the spec in the behavior + definition. + + + OTP-18276 Application(s): dialyzer + Related Id(s): GH-6333 + + In a spec, list(none()) used to mean none(). It has now + been corrected to mean the empty list. + + + OTP-18389 Application(s): dialyzer + Related Id(s): GH-6508, PR-6864 + + *** POTENTIAL INCOMPATIBILITY *** + + Dialyzer was accepting typespecs containing singleton + type variables that appeared in an union type. + + Before this change, singleton type variables in an + union type were accepted (see example below). However, + type variable Foo appears only once in each branch of + the union type, so it is a singleton type variable (in + each branch of the union type) that is not bound. + + -spec run_test(Opts) -> term() when Opts :: + {join_specs, Foo} | {test, Foo}. + + Unbound type variables should be rejected by Dialyzer, + which now detects this error and rejects it in the same + manner as its non-union equivalent: + + -spec run_test_error(Opts) -> term() when Opts :: + {join_specs, Foo}. + + + OTP-18485 Application(s): dialyzer + Related Id(s): GH-6850, PR-6854 + + Fixed a bug that prevented the --plts option from being + used together with --add-to-plt. + + + --- Improvements and New Features --- + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + *** HIGHLIGHT *** + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18238 Application(s): dialyzer + Related Id(s): PR-6271 + + Dialyzer now produces clearer error messages for + contract violations. + + + OTP-18282 Application(s): dialyzer + Related Id(s): GH-6132, PR-6335 + + The name of a built-in type can now be reused as the + name of type locally. That is useful when an OTP + release introduces a new built-in type; having the + possibility to redefine built-in types locally can make + it easier to maintain code that works in multiple OTP + releases. + + + OTP-18310 Application(s): dialyzer + + There is new option -no_spec to ignore all specs. It is + useful for debugging when one suspects that some specs + could be incorrect. + + + OTP-18342 Application(s): dialyzer + Related Id(s): GH-6117, PR-6654 + + Dialyzer's overloaded domain warning becomes is + disabled by default, and can be enabled with the flag + -Woverlapping_contract. + + Dialyzer used to issue a warning for overloaded domains + stating "such contracts are currently unsupported and + are simply ignored". + + These contracts are not "ignored" but rather, Dialyzer + takes the union of the overloaded domains. This means + that we lose the dependency from each corresponding + input to output type. Because of this, the warning is + really about not being able to establish a dependency + between the input and output types of each respective + overloaded function specification. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + *** POTENTIAL INCOMPATIBILITY *** + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18338 Application(s): erl_docgen + Related Id(s): PR-6408 + + New XML tag <change>. Like a <note> box, but with a + different (steel blue) color and label. Intended to + contain talk about semantic differences between OTP + releases. + + + OTP-18501 Application(s): erl_docgen + Related Id(s): PR-6987 + + Add "since" attribute to XML taglist/tag elements to + document OTP version when a particular option/feature + was introduced. The version is shown out in the right + margin, similar to "since" versions for functions. + + + Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.4 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --- 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-14.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18016 Application(s): erts + + If a local fun was called while reloading the *exact + same* module that defined said fun, there was a small + window in which the call would land in code that was + yet to be fully loaded. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18274 Application(s): erts + Related Id(s): PR-6048 + + Fix so that -fno-omit-frame-pointer is applied to all + of the Erlang VM when using the JIT so that tools, such + as perf, can crawl the process stacks. + + + OTP-18277 Application(s): erts + Related Id(s): PR-6306 + + Compilation server now support unicode paths in + compilation server for filesystems that are encoded + with unicode. + + + OTP-18498 Application(s): erts + + *** HIGHLIGHT *** + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + --- Improvements and New Features --- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + *** POTENTIAL INCOMPATIBILITY *** + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Add support for socket on Windows. + + -- Pre release status. + + -- Error codes not finalized. + + -- No explicit support for Windows specific options + (socket options, flags for read and write). + + -- New async api for Windows (completion). See the + Asynchronous calls chapter in the (Socket Usage) Users + Guide. + + -- To ensure platform independence, gen_tcp and gen_udp + is *intended* to be used (not yet updated). + + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on windows as many more checks are + cached. + + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18131 Application(s): erts + + Optimized internal hash routines. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18141 Application(s): erts + Related Id(s): OTP-18140, PR-6073 + + Optimization of process aliases made possible now that + support for version 4 node container types in the + external term format is mandatory. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18227 Application(s): erts + Related Id(s): PR-6254 + + When erl -eval fails to execute the command is not + printed to standard_error. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + *** HIGHLIGHT *** + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18360 Application(s): erts + Related Id(s): PR-6497 + + erlang:display/1 will now print large maps in a more + readable way (similar to how small maps are printed). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18369 Application(s): erts + + Fail enif_init_resource_type and friends by returning + NULL if not called during load/upgrade. Old behavior + was undefined. + + + OTP-18410 Application(s): erts + Related Id(s): GH-5889, PR-6345 + + New option include_shared_binaries for the + max_heap_size process limit. If set to true, large + binaries (> 64 bytes), which may be referred by several + processes, are included in the memory sum compared + against the max_heap_size limit. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18424 Application(s): erts + Related Id(s): PR-6716 + + Reduced memory usage of file:read_file_info/1,2 + + + OTP-18425 Application(s): erts + Related Id(s): GH-5333, PR-6628 + + Add new function current_stacktrace for trace match + specifications used by erlang:trace_pattern/3. + + This new option puts the current stacktrace of the + caller into the trace message sent to the trace + receiver. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + *** HIGHLIGHT *** + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + *** HIGHLIGHT *** + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18477 Application(s): erts + Related Id(s): PR-7006 + + Introduced the local option of term_to_binary/2 and + term_to_iovec/2. + + + OTP-18483 Application(s): erts + Related Id(s): PR-6888 + + Document the commonly used practice to create and store + static atoms at NIF load time in callbacks load or + upgrade. + + + OTP-18493 Application(s): erts + Related Id(s): PR-6272 + + Optimize ets:lookup_element for uncompressed tables by + using a more efficient method to copy the term from ETS + to the heap of the calling process. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + *** POTENTIAL INCOMPATIBILITY *** + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + OTP-18517 Application(s): erts + + The version of zlib included in the Erlang/OTP source + code is now 1.2.13. + + + OTP-18520 Application(s): erts + Related Id(s): GH-6455 + + gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have + been optimized to use the infamous receive reference + optimization, so now sending should not have bad + performance when the calling process has a large + message queue. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18523 Application(s): erts + Related Id(s): PR-7004 + + Optimize maps:merge/2 memory consumption for small maps + (<33 keys) by reusing key tuples or entire maps if the + result map has the same number of keys as any of the + argument maps. + + + OTP-18524 Application(s): erts + Related Id(s): OTP-18523, PR-7004 + + Optimize maps:merge/2 memory consumption further for + small maps by mutating 2nd map to use literal key tuple + of 1st map if both have the same keys. + + + OTP-18526 Application(s): erts + Related Id(s): GH-7045 + + ceil/1, floor/1, is_bitstring/1, is_boolean/1, + is_function/2, and tuple_size/1 can now be used in + match specifications. + + + OTP-18540 Application(s): erts, kernel + Related Id(s): PR-6900 + + Allow IPv6 addresses as host in http packets decoded by + erlang:decode_packet/3 and gen_tcp packet option. The + IPv6 address should be enclosed within [] according to + RFC2732. + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + OTP-18552 Application(s): erts + Related Id(s): PR-6973 + + *** POTENTIAL INCOMPATIBILITY *** + + ERTS internal thread names have been changed. All + threads created by ERTS now have a prefix erts_ + followed by a type name potentially followed by an + integer index. For example, normal schedulers are now + named erts_sched_<IX>, dirty CPU schedulers + erts_dcpus_<IX>, and dirty IO schedulers + erts_dios_<IX>. NIF and driver thread names are + truncated at 15 characters regardless of whether the + underlying platform support more characters or not. + + + Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ftp-1.1.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18359 Application(s): ftp + Related Id(s): PR-6545 + + Fixes the documentation for the ftp module and updates + the typing of ftp functions that return errors. + + The documentation has been improved and the types of + the functions are now read from source code, instead of + being hard-coded in XML. + + Functions returning errors of the form {error, Reason + :: 'ehost' | ...} are now similar to other modules, + i.e., {error, Reason :: term()}. If one wants to + understand the error, one must call the function + ftp:formaterror({error, Reason}). + + + --- Improvements and New Features --- + + OTP-18541 Application(s): ftp + + Remove deprecated functions in OTP-26 + + + Full runtime dependencies of ftp-1.1.5: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-9.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18476 Application(s): inets + Related Id(s): GH-6380 + + Correct timing related pipelining/keepalive queue bug, + that could result in unexpected "socket_remotly_closed" + errors. + + + --- Improvements and New Features --- + + OTP-18167 Application(s): inets + + By default ssl connections will use options from + ssl_default_options(true) + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + OTP-18530 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + IP display string will now always be in lower case, + effects ipv6 addresses. + + + OTP-18536 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Removed deprecated functions + + + OTP-18544 Application(s): inets + Related Id(s): GH-5276 + + Update the code in the inets example directory to + reflect the latest implementation + + + Full runtime dependencies of inets-9.0: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- jinterface-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --------------------------------------------------------------------- + --- kernel-9.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix bug where duplicate keys were allowed in the .app + file of an application. Duplicate keys are now rejected + and the application will not start if they exist. + + + OTP-18225 Application(s): kernel + Related Id(s): PR-6036 + + Fix inconsistent handling in logger_formatter of the + branched values in conditional branches. For example + using msg in a conditional branch would not be + formatted as it should before this fix. + + + OTP-18226 Application(s): kernel + Related Id(s): PR-6253 + + Fix the logger_std_h handler to log to standard_error + if logging to standard_io fails for any reason. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18286 Application(s): kernel + Related Id(s): PR-5955 + + Fix logging of log events generated before kernel is + started to not fail if the code for formatting those + log messaged have not yet been loaded. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + OTP-18528 Application(s): kernel + Related Id(s): PR-7009 + + Return type for seq_trace:get_token/1 fixed. + + + OTP-18547 Application(s): kernel + Related Id(s): PR-7092 + + Replaced a regex with a special case handling of ANSI + Select Graphic Rendition escape characters, to speed up + io output that make use of these escape sequences. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18029 Application(s): erts, kernel + + Add support for socket on Windows. + + -- Pre release status. + + -- Error codes not finalized. + + -- No explicit support for Windows specific options + (socket options, flags for read and write). + + -- New async api for Windows (completion). See the + Asynchronous calls chapter in the (Socket Usage) Users + Guide. + + -- To ensure platform independence, gen_tcp and gen_udp + is *intended* to be used (not yet updated). + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18261 Application(s): kernel + Related Id(s): PR-5924 + + Add code:get_doc/2 which adds support to fetch + documentation skeletons of functions using debug_info + chunks instead of eep48 doc chunks. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18305 Application(s): kernel + Related Id(s): PR-5831 + + gen_server optimized by caching callback functions + + + OTP-18327 Application(s): kernel + Related Id(s): PR-6433 + + Prepare the pg communication protocol for upgrade. The + plan is for OTP-28 nodes to be able to use an upgraded + pg protocol while still being able to talk with OTP 26 + nodes. + + + OTP-18331 Application(s): kernel + Related Id(s): ERIERL-870 + + New log type 'rotate', where the log files are + compressed upon rotation. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18419 Application(s): kernel + + The function file:pid2name/1 is deprecated and will be + removed in Erlang/OTP 27. + + + OTP-18442 Application(s): kernel + Related Id(s): GH-6606, PR-6786 + + The modules Erlang DNS resolver inet_res and helper + modules have been updated for RFC6891; to handle OPT RR + with DNSSEC OK (DO) bit. + + + OTP-18444 Application(s): kernel + Related Id(s): PR-6035 + + Introduced application:get_supervisor/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18448 Application(s): kernel + Related Id(s): PR-6736 + + Reduce contention on the code_server by doing the code + preparation on the client. + + + OTP-18451 Application(s): kernel + Related Id(s): PR-6737 + + Added a mode to ensure_all_loaded, to start children + application and their dependencies concurrently. + + + OTP-18452 Application(s): kernel + Related Id(s): PR-6729 + + Cache OTP boot code paths, to limit how many folders + that are being accessed during a module lookup. Can be + disabled with -cache_boot_path false. OTP boot code + paths consists of ERL_LIB environment variables. The + various otp/*/ebin folders. And the {path, ...} clauses + in the init script. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18466 Application(s): kernel + Related Id(s): PR-6832 + + Add cache attribute to code path apis. + + Added an optional cache/nocache argument to all + code:add_path*, code:set_path*, and code:replace_path* + functions. These functions will then avoid doing + file-accesses if they are cached. Cache can be cleared + with code:clear_cache/0. Added code:del_paths/1 to make + it easier to clear multiple paths. + + + OTP-18484 Application(s): kernel + Related Id(s): PR-6844 + + Improvements to code:ensure_modules_loaded/1: + Previously it would prepare modules and then abandon + references to said modules if they had on_load + callbacks. This pull request makes it so they keep the + references around and then serially load them without + having to fetch the object code and prepare them again. + + + OTP-18510 Application(s): kernel + Related Id(s): GH-6098, PR-6982 + + The internal DNS resolver has bee updated to handle DNS + LOC RR:s (RFC 1876). This is an undocumented module, + although still used by power users. See the source + code. + + + OTP-18521 Application(s): kernel + Related Id(s): PR-7025 + + Reduced memory consumption in global when informing + other nodes about lost connections. + + + OTP-18533 Application(s): kernel + Related Id(s): PR-7061 + + The net_kernel, global, and global_group servers now + have fully asynchronous distributed signaling enabled + all the time which prevents them from ever getting + blocked on send of distributed signals. + + Documentation about blocking distributed signals has + also been improved. + + + OTP-18540 Application(s): erts, kernel + Related Id(s): PR-6900 + + Allow IPv6 addresses as host in http packets decoded by + erlang:decode_packet/3 and gen_tcp packet option. The + IPv6 address should be enclosed within [] according to + RFC2732. + + + OTP-18542 Application(s): kernel + + Remove deprecated functions in OTP-26 + + + OTP-18551 Application(s): kernel + Related Id(s): PR-7106 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed code:is_module_native/1 since HiPE has been + removed. It has since OTP 24 been deprecated and + scheduled for removal in OTP 26. + + Removed code:rehash/0 since the code path feature no + longer is present. It has since OTP 19 been deprecated + and has since OTP 24 been scheduled for removal in OTP + 26. + + + Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- megaco-4.4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18538 Application(s): megaco, otp + Related Id(s): GH-7031, PR-7078 + + Removed configure option --enable-sanitizers. It was + untested and broken. Address sanitizer for the emulator + has better support by the asan build target. + + + Full runtime dependencies of megaco-4.4.4: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.22 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18309 Application(s): mnesia + Related Id(s): PR-6377 + + Added debug statistics for active transactions. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- observer-2.15 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18430 Application(s): observer + Related Id(s): PR-6397 + + Added start/1, start_and_wait functions/1|2 functions. + + + Full runtime dependencies of observer-2.15: erts-14.0, et-1.5, + kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + + + --------------------------------------------------------------------- + --- odbc-2.14.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18539 Application(s): odbc + + Allow larger column sizes than 8001 in case DB supports + it. + + + Full runtime dependencies of odbc-2.14.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18246 Application(s): os_mon + Related Id(s): GH-6156, PR-6284 + + Fix internal os_mon_sysinfo:get_disk_info/1 function to + not crash when run on Windows with multiple drives. + + + OTP-18546 Application(s): os_mon + Related Id(s): GH-7070, PR-7071 + + Fixed a memory leak when calling cpu_sup:util/0,1 on + FreeBSD. + + + --- Improvements and New Features --- + + OTP-18303 Application(s): os_mon + Related Id(s): PR-6384 + + The disksup:get_disk_info/0 and disksup:get_disk_info/1 + functions have been introduced. These can be used in + order to immediately fetch information about current + disk usage. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- parsetools-2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + *** HIGHLIGHT *** + + Leex has been extended with optional column number + support. + + + Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-1.0 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18230 Application(s): reltool + Related Id(s): PR-5936 + + Add possibility to strip specific chunks from beam + files included in a release. Before this change it was + only possible to strip all chunks from the beam files. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + *** POTENTIAL INCOMPATIBILITY *** + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3 + + + --------------------------------------------------------------------- + --- runtime_tools-2.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18499 Application(s): runtime_tools + Related Id(s): PR-6946 + + Fixed the type specification for + instrument:carriers/0,1 + + + --- Improvements and New Features --- + + OTP-18211 Application(s): runtime_tools + Related Id(s): PR-6143 + + Add dbg:tracer(file, Filename) as a convenient way to + trace to a file in clean text. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + Full runtime dependencies of runtime_tools-2.0: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18300 Application(s): sasl + Related Id(s): PR-6389 + + Improve error message from systools:make_script, when + .app parameters contain duplicates. The parameters that + will be checked are modules, applications and + registered. + + + Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0, + stdlib-4.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.14 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssh-5.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18231 Application(s): ssh + Related Id(s): OTP-17932, PR-6144 + + The ssh_cli has been updated to work with the changes + introduced in the new Erlang shell implementation. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18550 Application(s): ssl + + Client signature algorithm list input order is now + honored again , it was accidently reversed by a + previous fix. + + + --- Improvements and New Features --- + + OTP-14771 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Remove less that 256 bit ECC from default supported ECC + pre TLS-1.3 + + + OTP-15903 Application(s): ssl + + Improved error checking and handling of ssl options. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + *** POTENTIAL INCOMPATIBILITY *** + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18253 Application(s): ssl + + With this change, TLS 1.3 server can be configured to + include client certificate in session ticket. + + + OTP-18254 Application(s): ssl + Related Id(s): PR-5982 + + With this change, it is possible to configure + encryption seed to be used with TLS1.3 stateless + tickets. This enables using tickets on different server + instances. + + + OTP-18312 Application(s): ssl + + Debugging enhancements. + + + OTP-18335 Application(s): ssl + + With this change, maybe keyword atom is not used as + function name in ssl code. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + *** POTENTIAL INCOMPATIBILITY *** + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18453 Application(s): ssl + + Mitigate memory usage from large certificate chains by + lowering the maximum handshake size. This should not + effect the common cases, if needed it can be configured + to a higher value. + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18459 Application(s): ssl + + *** HIGHLIGHT *** + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + OTP-18465 Application(s): ssl + Related Id(s): GH-7065 + + Refactors the (ssl application to use macros for TLS + and DTLS versions instead of hard-coded tuple numbers. + This change improves the maintainability of ssl + + + OTP-18507 Application(s): ssl + + If the function ssl:renegotiate/1 is called on + connection that is running TLS-1.3 return an error + instead of hanging or timing out. + + + OTP-18531 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + If a user cancel alert with level warning is received + during handshake make it be handled the same regardless + of TLS version. If it is received in connection in + TLS-1.3 regard it as an error as it is inappropriate. + + In TLS-1.3 all error alerts are considered FATAL + regardless of legacy alert type. But make sure legacy + type is printed in logs to not confuse users that are + expecting the same legacy type as sent by peer. + + + Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18275 Application(s): stdlib + Related Id(s): PR-6045 + + All process calls in dets have been updated to use the + receive queue optimizations. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + OTP-18548 Application(s): stdlib + Related Id(s): PR-6967 + + Fix return value 'undefined' of v(N) is treated as + missing command. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-15597 Application(s): stdlib + Related Id(s): PR-5831 + + Gen_server now caches external functions for use in + handle_call, handle_cast and handle_info. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten from by + moving more code to Erlang from the old linked-in + driver and implementing all the I/O primitives needed + in a NIF instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + + OTP-18150 Application(s): stdlib + + Added codepoint category to unicode_util + + + OTP-18159 Application(s): stdlib + Related Id(s): PR-6904 + + Added the zip:zip_get_crc32/2 function to retrieve the + CRC32 checksum from an opened ZIP archive. + + + OTP-18176 Application(s): stdlib + Related Id(s): PR-6118 + + Add the new options post_process_args and detached to + peer:start function. + + + OTP-18221 Application(s): stdlib + Related Id(s): PR-6197 + + The re:replace/3,4 functions now accept as the + replacement argument. + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + *** HIGHLIGHT *** + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are more + than three times faster than in Erlang/OTP 25. + + + OTP-18236 Application(s): stdlib + Related Id(s): PR-6256 + + Improved implementation of timer:apply_interval/4 + reducing load on the timer server, and introduction of + the new function timer:apply_repeatedly/4. + timer:apply_repeatedly/4 is similar to + timer:apply_interval/4, but timer:apply_repeatedly/4 + prevents parallel execution of triggered apply + operations which timer:apply_interval/4 does not. + + + OTP-18247 Application(s): stdlib + Related Id(s): PR-6280, PR-6711 + + The base64 module now supports encoding and decoding + with an alternate URL safe alphabet, and an option for + accepting or adding missing = padding characters. + + + OTP-18272 Application(s): stdlib + Related Id(s): PR-6279 + + Add shell:whereis/0 which can be used to locate the + current shell process. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18279 Application(s): stdlib + Related Id(s): PR-6234 + + New function ets:lookup_element/4 with a Default + argument returned if the key did not exist in the + table. The old ets:lookup_element/3 raises a badarg + exception which can be both inconveniente and slower. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18287 Application(s): stdlib + Related Id(s): PR-5955 + + peer nodes using standard_io connections now include + standard error from the node in the io stream from the + started node. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18301 Application(s): stdlib + Related Id(s): PR-6350 + + Improve type specification of + unicode:characters_to_list(). + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + *** HIGHLIGHT *** + + In the lists, the zip family of functions now takes + options to allow handling lists of different lengths. + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18354 Application(s): stdlib + Related Id(s): PR-6297 + + The binary:encode_hex/2 function has been added to + allow the encoded hexadecimal digits to be in either + lower or upper case. + + + OTP-18355 Application(s): stdlib + Related Id(s): PR-6507 + + Variants of timer:tc() with user specified time unit + have been introduced. + + + OTP-18361 Application(s): stdlib + Related Id(s): PR-6536 + + New function math:tau/0. Returns 2*math:pi(). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18385 Application(s): stdlib + Related Id(s): PR-6698 + + Optimized gen_server:multi_call(). + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18423 Application(s): stdlib + Related Id(s): com/erlang/backlog/issues/142, + https://github + + Make gen_server fail "silently" with a new return value + for init/1. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18474 Application(s): stdlib + Related Id(s): PR-6895 + + Static supervisors are very idle processes after they + have started so they will now be hibernated after start + to improve resource management. + + + OTP-18494 Application(s): stdlib + Related Id(s): PR-6924 + + Support has been added in ms_transform for the actions + caller_line/0, current_stacktrace/0, and + current_stacktrace/1. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + *** HIGHLIGHT *** + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18500 Application(s): stdlib + + *** HIGHLIGHT *** + + Update Unicode to version 15.0.0. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + OTP-18515 Application(s): stdlib + Related Id(s): GH-6990 + + Improved the performance of sets:subtract/2 when + subtracting a small number of elements. + + + OTP-18518 Application(s): stdlib + Related Id(s): GH-7015 + + The linter will no longer raise warnings for + underspecified opaque types. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18537 Application(s): stdlib + Related Id(s): PR-7081 + + The by gen_statem previously used call proxy process + that was used for preventing late replies from reaching + the client at timeout or connection loss has been + removed. It is no longer needed since process aliases + take care of this, are used, and supported by all + Erlang nodes that an OTP 26 Erlang node can communicate + with. + + + Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + Full runtime dependencies of syntax_tools-3.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tftp-1.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- tools-3.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.3 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0.1.README.txt b/release-notes/OTP-26.0.1.README.txt new file mode 100644 index 0000000..f7a56ee --- /dev/null +++ b/release-notes/OTP-26.0.1.README.txt @@ -0,0 +1,318 @@ +Patch Package: OTP 26.0.1 +Git Tag: OTP-26.0.1 +Date: 2023-06-08 +Trouble Report Id: OTP-18576, OTP-18578, OTP-18581, OTP-18583, + OTP-18584, OTP-18585, OTP-18587, OTP-18588, + OTP-18593, OTP-18595, OTP-18596, OTP-18597, + OTP-18600, OTP-18601, OTP-18602, OTP-18603, + OTP-18604, OTP-18617, OTP-18619, OTP-18621, + OTP-18632 +Seq num: ERIERL-944, GH-7213, GH-7247, GH-7248, + GH-7251, GH-7252, GH-7259, GH-7264, GH-7282, + GH-7288, GH-7297, GH-7301, GH-7303, GH-7338, + GH-7339 +System: OTP +Release: 26 +Application: compiler-8.3.1, erts-14.0.1, inets-9.0.1, + kernel-9.0.1, ssl-11.0.1, stdlib-5.0.1, + xmerl-1.3.32 +Predecessor: OTP 26.0 + + Check out the git tag OTP-26.0.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.3.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18576 Application(s): compiler + + Fixed a bug where a failing bsl expression in a guard + threw an exception instead of causing the guard to + fail. + + + OTP-18581 Application(s): compiler + Related Id(s): GH-7251 + + Fixed a bug that would case the validator to reject + legal code. + + + OTP-18583 Application(s): compiler + Related Id(s): GH-7259 + + The compiler could re-order clauses matching binaries + so that the incorrect clause would match. That could + only happen for code that used the option + {error_location,line} or for code without line or + column number information (e.g. generated by a parse + transform). + + + OTP-18593 Application(s): compiler + Related Id(s): GH-7252 + + Complex guard expression using the or operator and + guard BIFs that can fail could sometimes be miscompiled + so that the guard would succeed even if a call to a + guard BIF failed. + + + OTP-18600 Application(s): compiler + Related Id(s): GH-7248 + + With optimizations disabled, a try/catch construct + could return an incorrect value. + + + OTP-18601 Application(s): compiler + + In rare circumstance, a combination of binary + construction and binary_part/3 would cause the compiler + to generate unsafe code that would crash the runtime + system. + + + OTP-18617 Application(s): compiler + Related Id(s): GH-7338 + + The compiler could be very slow when compiling guards + with multiple guard tests separated with 'or' or ';'. + + + OTP-18619 Application(s): compiler + Related Id(s): GH-7339 + + Complex guard expressions using 'or' and map updates + could succeed even if the map update failed. + + + Full runtime dependencies of compiler-8.3.1: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- erts-14.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18585 Application(s): erts + Related Id(s): OTP-18029 + + Build of the socket nif failed on Solaris 11. + + + OTP-18587 Application(s): erts + + Fixed two reduction-counting bugs relating to binaries. + + + OTP-18597 Application(s): erts + + Constructing a binary segment not aligned with a byte + boundary, with a size not fitting in 31 bits, and with + a value not fitting in a 64-bit word could crash the + runtime system. + + + OTP-18602 Application(s): erts + Related Id(s): GH-7282 + + When a binary construction failed because of bad size + for a segment, the error information was not always + correct. + + + OTP-18621 Application(s): erts + Related Id(s): GH-7288 + + Fixed a crash when calling a fun that was defined in a + module that had been upgraded. + + + Full runtime dependencies of erts-14.0.1: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-9.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-9.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18604 Application(s): inets + Related Id(s): GH-7303, PR-7306 + + Do not make the default ssl options by calling + httpc:ssl_verify_host_options(true) if ssl options are + supplied by the user. + + + Full runtime dependencies of inets-9.0.1: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- kernel-9.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-9.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18578 Application(s): kernel, stdlib + Related Id(s): GH-7213 + + The POSIX error exdev was sometimes incorrectly + described as "cross domain link" in some error + messages. + + + OTP-18584 Application(s): kernel + Related Id(s): #7238 + + Corrected the socket send function description (send + with Timeout = nowait). The send function(s) could not + return {ok, {RestData, SelectInfo}} + + + Full runtime dependencies of kernel-9.0.1: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-11.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18588 Application(s): ssl + Related Id(s): GH-7264, PR-7277 + + Make sure that selection of client certificates handle + both TLS-1.3 and TLS-1.2 names correctly. Could cause + valid client certificate to not be selected, and an + empty client certificate message to be sent to server. + + + OTP-18596 Application(s): ssl + Related Id(s): GH-7247 + + Improved ssl:format_error/1 to handle more error + tuples. + + + OTP-18603 Application(s): ssl + Related Id(s): GH-7297 + + Fixed hanging ssl:connect when ssl application is not + started. + + + OTP-18632 Application(s): ssl + Related Id(s): GH-7301, PR-7300 + + Correct handling of retransmission timers, current + behavior could cause unwanted delays. + + + Full runtime dependencies of ssl-11.0.1: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-5.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18578 Application(s): kernel, stdlib + Related Id(s): GH-7213 + + The POSIX error exdev was sometimes incorrectly + described as "cross domain link" in some error + messages. + + + Full runtime dependencies of stdlib-5.0.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.32 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.32 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18595 Application(s): xmerl + Related Id(s): ERIERL-944 + + New options to xmerl_scan and xmerl_sax_parser so one + can limit the behaviour of the parsers to avoid some + XML security issues. + + xmerl_scan gets one new option: + + -- {allow_entities, Boolean} -- Gives the possibility + to disallow entities by setting this option to false + (true is default) + + xmerl_sax_parser gets the following options: + + -- disallow_entities -- Don't allow entities in + document + + -- {entity_recurse_limit, N} -- Set a limit on entity + recursion depth (default is 3) + + -- {external_entities, AllowedType} -- Specify which + types of external entities that are allowed, this also + affect external DTD's. The types are all(default), file + and none + + -- {fail_undeclared_ref, Boolean} -- Sets the behavior + for undeclared references due to an external file is + not parsed (true is default) + + The old option skip_external_dtd is still valid and the + same as {external_entities, none} and + {fail_undeclared_ref, false} but just affects DTD's and + not other external references. + + + Full runtime dependencies of xmerl-1.3.32: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0.2.README.txt b/release-notes/OTP-26.0.2.README.txt new file mode 100644 index 0000000..f9c95dd --- /dev/null +++ b/release-notes/OTP-26.0.2.README.txt @@ -0,0 +1,355 @@ +Patch Package: OTP 26.0.2 +Git Tag: OTP-26.0.2 +Date: 2023-06-29 +Trouble Report Id: OTP-18580, OTP-18618, OTP-18624, OTP-18625, + OTP-18626, OTP-18630, OTP-18634, OTP-18635, + OTP-18636, OTP-18637, OTP-18640, OTP-18643, + OTP-18646, OTP-18649, OTP-18650, OTP-18651, + OTP-18652, OTP-18653, OTP-18656, OTP-18657, + OTP-18659, OTP-18663 +Seq num: ERIERL-932, GH-6881, GH-7029, GH-7230, + GH-7261, GH-7286, GH-7296, GH-7308, GH-7324, + GH-7354, GH-7356, GH-7368, GH-7370, GH-7390, + GH-7433 +System: OTP +Release: 26 +Application: compiler-8.3.2, erts-14.0.2, kernel-9.0.2, + ssh-5.0.1, ssl-11.0.2, stdlib-5.0.2 +Predecessor: OTP 26.0.1 + + Check out the git tag OTP-26.0.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.3.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.3.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18625 Application(s): compiler + Related Id(s): GH-7354 + + Fixed a type handling bug that would cause an internal + consistence failure for correct code. + + + OTP-18626 Application(s): compiler + Related Id(s): GH-7356 + + Fixed a bug that could cause the stack trace of throw + exceptions to be erroneously optimized out. + + + OTP-18634 Application(s): compiler + Related Id(s): GH-7370 + + Complex guard expression using 'or' were not always + fully evaluated, making guards that were supposed to + fail succeed. + + + Full runtime dependencies of compiler-8.3.2: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- erts-14.0.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.0.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18630 Application(s): erts + Related Id(s): GH-7029, PR-7275 + + Fix using the IME (Input Method Editor) to enter text + in cmd.exe and powershell.exe on Windows. + + + OTP-18635 Application(s): erts, kernel + Related Id(s): #7328 + + Multiple socket:accept calls issue. When making + multiple accept calls, only the last call is active. + + + OTP-18636 Application(s): erts, kernel + Related Id(s): GH-7308, PR-7352 + + Fix the shell to ignore terminal delay when the + terminal capabilities report that they should be used. + + + OTP-18637 Application(s): erts, kernel + Related Id(s): GH-7324, PR-7359 + + Fix "oldshell" to echo characters while typing on + Windows. + + + OTP-18646 Application(s): erts, kernel + + On Windows, a call to the function socket:close, when + there are waiting active calls to read, write or accept + functions, could hang. + + + OTP-18649 Application(s): erts, kernel + Related Id(s): GH-7261, PR-7400 + + Fix issues when reading or configuring standard_io on + Windows when erl.exe is started using -noshell flag. + + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + OTP-18663 Application(s): erts + Related Id(s): GH-7433, PR-7437 + + On AArch64 (ARM64), equality and non-equality tests + with literal bitstrings could succeed when they should + fail and vice versa. + + + Full runtime dependencies of erts-14.0.2: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- kernel-9.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-9.0.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18580 Application(s): kernel, stdlib + Related Id(s): PR-7242 + + Fix bug where when you entered Alt+Enter in the + terminal, the cursor would move to the last line, + instead of moving to the next line. + + + OTP-18624 Application(s): kernel + Related Id(s): GH-7296 + + Fix so that the shell does not crash on startup when + termcap is not available. + + + OTP-18635 Application(s): erts, kernel + Related Id(s): #7328 + + Multiple socket:accept calls issue. When making + multiple accept calls, only the last call is active. + + + OTP-18636 Application(s): erts, kernel + Related Id(s): GH-7308, PR-7352 + + Fix the shell to ignore terminal delay when the + terminal capabilities report that they should be used. + + + OTP-18637 Application(s): erts, kernel + Related Id(s): GH-7324, PR-7359 + + Fix "oldshell" to echo characters while typing on + Windows. + + + OTP-18640 Application(s): kernel, stdlib + Related Id(s): GH-6881, GH-7286, GH-7368, PR-7384 + + Fix eof handling when reading from stdin when erlang is + started using -noshell. + + + OTP-18646 Application(s): erts, kernel + + On Windows, a call to the function socket:close, when + there are waiting active calls to read, write or accept + functions, could hang. + + + OTP-18649 Application(s): erts, kernel + Related Id(s): GH-7261, PR-7400 + + Fix issues when reading or configuring standard_io on + Windows when erl.exe is started using -noshell flag. + + + OTP-18650 Application(s): kernel + + gen_udp:connect with inet_backend = socket fails when + the Address is a hostname (string or atom). + + + OTP-18651 Application(s): kernel + Related Id(s): PR-7242 + + Fixed problem which would cause shell to crash if + particular escape sequence was written to stdout. + + + OTP-18652 Application(s): kernel, stdlib + Related Id(s): PR-7242 + + Fixed problem where output would disappear if it was + received after a prompt was written in the shell. + + + OTP-18656 Application(s): kernel + Related Id(s): GH-7390, PR-7404 + + Fix a crash where the location of erts could not be + found in rebar3 dev builds. + + + OTP-18657 Application(s): kernel + Related Id(s): GH-7230, PR-7384 + + Introduce the KERNEL application parameter + standard_io_encoding that can be used to set the + default encoding for standard_io. This option needs to + be set to latin1 if the application wants to treat all + input data as bytes rather than utf-8 encoded + characters. + + + Full runtime dependencies of kernel-9.0.2: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssh-5.0.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-5.0.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18653 Application(s): ssh + Related Id(s): PR-7242 + + Added multiline editing support to ssh clients + connected through OTP ssh daemon. + + + Full runtime dependencies of ssh-5.0.1: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-11.0.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18643 Application(s): ssl + Related Id(s): ERIERL-932 + + Added keylog information to all protocol versions in + ssl:connection_information/2. + + + --- Improvements and New Features --- + + OTP-18618 Application(s): ssl + Related Id(s): ERIERL-932 + + Add RFC-6083 considerations for DTLS to enable gen_sctp + based callback for the transport. + + + Full runtime dependencies of ssl-11.0.2: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-5.0.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18580 Application(s): kernel, stdlib + Related Id(s): PR-7242 + + Fix bug where when you entered Alt+Enter in the + terminal, the cursor would move to the last line, + instead of moving to the next line. + + + OTP-18640 Application(s): kernel, stdlib + Related Id(s): GH-6881, GH-7286, GH-7368, PR-7384 + + Fix eof handling when reading from stdin when erlang is + started using -noshell. + + + OTP-18652 Application(s): kernel, stdlib + Related Id(s): PR-7242 + + Fixed problem where output would disappear if it was + received after a prompt was written in the shell. + + + OTP-18659 Application(s): erts, stdlib + Related Id(s): PR-7426 + + The following functions are now much faster when given + a long list or binary: + + -- erlang:list_to_integer/1 + + -- erlang:binary_to_integer/1 + + -- erlang:binary_to_integer/2 + + -- erlang:list_to_integer/2 + + -- string:to_integer/1 + + + Full runtime dependencies of stdlib-5.0.2: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.0.README.txt b/release-notes/OTP-26.0.README.txt new file mode 100644 index 0000000..db7946b --- /dev/null +++ b/release-notes/OTP-26.0.README.txt @@ -0,0 +1,3962 @@ +Inital Release: OTP 26.0 +Git Tag: OTP-26.0 +Date: 2023-05-16 +Trouble Report Id: OTP-14771, OTP-14835, OTP-15597, OTP-15903, + OTP-16607, OTP-17771, OTP-17932, OTP-18016, + OTP-18029, OTP-18053, OTP-18126, OTP-18131, + OTP-18135, OTP-18137, OTP-18140, OTP-18141, + OTP-18159, OTP-18167, OTP-18168, OTP-18176, + OTP-18185, OTP-18188, OTP-18204, OTP-18206, + OTP-18209, OTP-18210, OTP-18211, OTP-18221, + OTP-18225, OTP-18226, OTP-18227, OTP-18228, + OTP-18230, OTP-18231, OTP-18235, OTP-18236, + OTP-18237, OTP-18238, OTP-18246, OTP-18247, + OTP-18248, OTP-18253, OTP-18254, OTP-18259, + OTP-18261, OTP-18271, OTP-18272, OTP-18274, + OTP-18275, OTP-18276, OTP-18277, OTP-18278, + OTP-18279, OTP-18282, OTP-18285, OTP-18286, + OTP-18287, OTP-18297, OTP-18300, OTP-18301, + OTP-18303, OTP-18305, OTP-18309, OTP-18310, + OTP-18312, OTP-18318, OTP-18327, OTP-18331, + OTP-18334, OTP-18335, OTP-18337, OTP-18338, + OTP-18340, OTP-18342, OTP-18344, OTP-18350, + OTP-18354, OTP-18355, OTP-18359, OTP-18360, + OTP-18361, OTP-18364, OTP-18367, OTP-18369, + OTP-18377, OTP-18385, OTP-18389, OTP-18405, + OTP-18410, OTP-18413, OTP-18414, OTP-18419, + OTP-18423, OTP-18424, OTP-18425, OTP-18430, + OTP-18431, OTP-18435, OTP-18438, OTP-18439, + OTP-18440, OTP-18441, OTP-18442, OTP-18444, + OTP-18445, OTP-18447, OTP-18448, OTP-18451, + OTP-18452, OTP-18453, OTP-18455, OTP-18456, + OTP-18459, OTP-18465, OTP-18466, OTP-18471, + OTP-18474, OTP-18476, OTP-18477, OTP-18478, + OTP-18483, OTP-18484, OTP-18485, OTP-18486, + OTP-18487, OTP-18488, OTP-18490, OTP-18491, + OTP-18492, OTP-18493, OTP-18494, OTP-18495, + OTP-18498, OTP-18499, OTP-18500, OTP-18501, + OTP-18502, OTP-18505, OTP-18507, OTP-18510, + OTP-18511, OTP-18515, OTP-18517, OTP-18518, + OTP-18520, OTP-18521, OTP-18522, OTP-18523, + OTP-18524, OTP-18526, OTP-18528, OTP-18530, + OTP-18531, OTP-18533, OTP-18534, OTP-18536, + OTP-18537, OTP-18538, OTP-18539, OTP-18540, + OTP-18541, OTP-18542, OTP-18543, OTP-18544, + OTP-18546, OTP-18547, OTP-18548, OTP-18549, + OTP-18551, OTP-18552, OTP-18558, OTP-18561, + OTP-18562, OTP-18564, OTP-18566, OTP-18567, + OTP-18569, OTP-18571, OTP-18572, OTP-18574, + OTP-18575 +Seq num: ERIERL-737, ERIERL-870, GH-3150, GH-3390, + GH-4225, GH-4343, GH-4965, GH-5276, GH-5325, + GH-5333, GH-5639, GH-5695, GH-5877, GH-5889, + GH-5899, GH-6014, GH-6085, GH-6098, GH-6117, + GH-6132, GH-6139, GH-6156, GH-6221, GH-6333, + GH-6339, GH-6348, GH-6353, GH-6380, GH-6455, + GH-6461, GH-6477, GH-6508, GH-6544, GH-6606, + GH-6672, GH-6679, GH-6706, GH-6850, GH-6903, + GH-6942, GH-6990, GH-7015, GH-7031, GH-7045, + GH-7065, GH-7070, GH-7116, GH-7153 +System: OTP +Release: 26 +Application: asn1-5.1, common_test-1.25, compiler-8.3, + crypto-5.2, dialyzer-5.1, diameter-2.3, + erl_docgen-1.5, erl_interface-5.4, erts-14.0, + et-1.7, ftp-1.2, inets-9.0, jinterface-1.14, + kernel-9.0, megaco-4.4.4, mnesia-4.22, + observer-2.15, odbc-2.14.1, os_mon-2.9, + parsetools-2.5, public_key-1.14, reltool-1.0, + runtime_tools-2.0, sasl-4.2.1, snmp-5.14, + ssh-5.0, ssl-11.0, stdlib-5.0, + syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3 +Predecessor: OTP + + Check out the git tag OTP-26.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-15903 Application(s): ssl + + Improved error checking and handling of ssl options. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** POTENTIAL INCOMPATIBILITY *** + + The TTY/terminal subsystem has been rewritten by moving + more code to Erlang from the old linked-in driver and + implementing all the I/O primitives needed in a NIF + instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + -- Standard I/O now always defaults to unicode mode if + supported. Previously the default was latin1 if the + runtime system had been started with -oldshell or + -noshell (for example in an escript). To send raw bytes + over standard out, one now explicitly has to specify + io:setopts(standard_io, [{encoding, latin1}]). + + + OTP-18029 Application(s): erts, kernel + + Add support for socket on Windows. + + -- Pre release status. + + -- Error codes not finalized. + + -- No explicit support for Windows specific options + (socket options, flags for read and write). + + -- New async api for Windows (completion). See the + Asynchronous calls chapter in the (Socket Usage) Users + Guide. + + -- To ensure platform independence, gen_tcp and gen_udp + is *intended* to be used (not yet updated). + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are more + than three times faster than in Erlang/OTP 25. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + In the lists module, the zip family of functions now + takes options to allow handling lists of different + lengths. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18459 Application(s): ssl + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + Leex has been extended with optional column number + support. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18498 Application(s): erts + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + OTP-18500 Application(s): stdlib + + Update Unicode to version 15.0.0. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-14771 Application(s): ssl + + Remove less that 256 bit ECC from default supported ECC + pre TLS-1.3 + + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + The TTY/terminal subsystem has been rewritten by moving + more code to Erlang from the old linked-in driver and + implementing all the I/O primitives needed in a NIF + instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + -- Standard I/O now always defaults to unicode mode if + supported. Previously the default was latin1 if the + runtime system had been started with -oldshell or + -noshell (for example in an escript). To send raw bytes + over standard out, one now explicitly has to specify + io:setopts(standard_io, [{encoding, latin1}]). + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + Fixed a bug where duplicate keys were allowed in the + .app file of an application. Duplicate keys are now + rejected and the application will not start if they + exist. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + OTP-18530 Application(s): inets + + IP display string will now always be in lower case, + effects ipv6 addresses. + + + OTP-18531 Application(s): ssl + + If a user cancel alert with level warning is received + during handshake make it be handled the same regardless + of TLS version. If it is received in connection in + TLS-1.3 regard it as an error as it is inappropriate. + + In TLS-1.3 all error alerts are considered FATAL + regardless of legacy alert type. But make sure legacy + type is printed in logs to not confuse users that are + expecting the same legacy type as sent by peer. + + + OTP-18536 Application(s): inets + + Removed deprecated functions + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + OTP-18551 Application(s): kernel + Related Id(s): PR-7106 + + Removed code:is_module_native/1 since HiPE has been + removed. It has since OTP 24 been deprecated and + scheduled for removal in OTP 26. + + Removed code:rehash/0 since the code path feature no + longer is present. It has since OTP 19 been deprecated + and has since OTP 24 been scheduled for removal in OTP + 26. + + + OTP-18552 Application(s): erts + Related Id(s): PR-6973 + + ERTS internal thread names have been changed. All + threads created by ERTS now have a prefix erts_ + followed by a type name potentially followed by an + integer index. For example, normal schedulers are now + named erts_sched_<IX>, dirty CPU schedulers + erts_dcpus_<IX>, and dirty IO schedulers + erts_dios_<IX>. NIF and driver thread names are + truncated at 15 characters regardless of whether the + underlying platform support more characters or not. + + + --------------------------------------------------------------------- + --- OTP-26.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18364 Application(s): otp + + Starting from Erlang/OTP 24, it has been possible to + write expressions such as A = catch Expr without + parentheses around the catch expression, but it was not + mentioned in the documentation. It now is. + + + OTP-18538 Application(s): megaco, otp + Related Id(s): GH-7031, PR-7078 + + Removed configure option --enable-sanitizers. It was + untested and broken. Address sanitizer for the emulator + has better support by the asan build target. + + + --- Improvements and New Features --- + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on Windows as many more checks are + cached. + + + OTP-18209 Application(s): otp + Related Id(s): PR-5881 + + Fix the make target release, release_docs, install and + install-docs now work when the target path contains + whitespace and/or unicode characters. + + + OTP-18492 Application(s): otp + Related Id(s): GH-6706 + + The documentation for the bit syntax has been updated + to correct some factual errors and omissions. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18534 Application(s): asn1 + Related Id(s): ERIERL-737, PR-7039 + + The ASN.1 compiler used to reject correctly specified + RELATIVE-OID values containing other RELATIVE-OID + values. This is now corrected. + + + --- Improvements and New Features --- + + OTP-18441 Application(s): asn1 + + Minor code improvements. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.25 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18377 Application(s): common_test + Related Id(s): PR-6437 + + This change improves Common Test docs (CT hook example + code) and adds Emacs skeleton with hook code. + + + --- Improvements and New Features --- + + OTP-18259 Application(s): common_test + Related Id(s): PR-5924 + + Updated common_test with a more robust way to fetch old + releases, while ignoring the current release. + + + OTP-18340 Application(s): common_test + + - re-write the XML ct module documentation into erlang + types to make Dialyzer able to catch more precise + errors + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + Full runtime dependencies of common_test-1.25: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18389 Application(s): compiler, dialyzer + Related Id(s): GH-6508, GH-7116, PR-6864 + + The compiler would silently accept singleton (unbound) + type variables in a union type. Starting from + Erlang/OTP 26, the compiler will generate a warning for + this example. The warning can be disabled using the + nowarn_singleton_typevar option. In Erlang/OTP 27, the + warning will become an error. + + + --- Improvements and New Features --- + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18502 Application(s): compiler + + The compiler will now inline calls to maps:get/3. + + + OTP-18574 Application(s): compiler, erts + + In Erlang/OTP 27, 0.0 will no longer be considered to + be exactly equal to -0.0. See Upcoming Potential + Incompatibilities. + + + Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18571 Application(s): crypto + + Fix cmac_update aes_128_cbc for LibreSSL. + + + --- Improvements and New Features --- + + OTP-18204 Application(s): crypto + Related Id(s): PR-6203 + + Add support for SHAKE128 and SHAKE256. + + + OTP-18206 Application(s): crypto + Related Id(s): PR-6167 + + Make the -DOPENSSL_API_COMPAT flag work without + warnings. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- dialyzer-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18237 Application(s): dialyzer + Related Id(s): GH-6221, PR-6243 + + When checking behaviors, Dialyzer could generate false + warning that a callback function did not have the + correct type according to the spec in the behavior + definition. + + + OTP-18276 Application(s): dialyzer + Related Id(s): GH-6333 + + In a spec, list(none()) used to mean none(). It has now + been corrected to mean the empty list. + + + OTP-18389 Application(s): compiler, dialyzer + Related Id(s): GH-6508, GH-7116, PR-6864 + + The compiler would silently accept singleton (unbound) + type variables in a union type. Starting from + Erlang/OTP 26, the compiler will generate a warning for + this example. The warning can be disabled using the + nowarn_singleton_typevar option. In Erlang/OTP 27, the + warning will become an error. + + + OTP-18485 Application(s): dialyzer + Related Id(s): GH-6850, PR-6854 + + Fixed a bug that prevented the --plts option from being + used together with --add-to-plt. + + + OTP-18562 Application(s): dialyzer + + Fixed a crash when analyzing code that contained + illegal bitstring segment sizes. + + + OTP-18564 Application(s): dialyzer + Related Id(s): GH-7153 + + Fixed a crash when formatting certain warnings that + contained multi-byte unicode characters. + + + --- Improvements and New Features --- + + OTP-18188 Application(s): dialyzer + Related Id(s): PR-5997 + + *** HIGHLIGHT *** + + Dialyzer has a new incremental mode that be invoked by + giving the --incremental option when running Dialyzer. + This new incremental mode is likely to become the + default in a future release. + + Incremental mode primarily differs from the previous, + "classic", ways of running Dialyzer, in that its model + is optimised around the common use case of regularly + analysing a single codebase, tweaking the code, + analysing it again, and so on, without explicit + reference to the building and checking of a PLT. + + In this mode the PLT file acts much more like a true + cache, where users provide a codebase and a set of + files they care about, and Dialyzer does the legwork in + terms of deciding how to most efficiently report all of + the relevant warnings given the cached results it may + already have in the PLT (and if a PLT doesn't exist, + incremental mode will create one). + + + OTP-18238 Application(s): dialyzer + Related Id(s): PR-6271 + + Dialyzer now produces clearer error messages for + contract violations. + + + OTP-18282 Application(s): dialyzer + Related Id(s): GH-6132, PR-6335 + + The name of a built-in type can now be reused as the + name of type locally. That is useful when an OTP + release introduces a new built-in type; having the + possibility to redefine built-in types locally can make + it easier to maintain code that works in multiple OTP + releases. + + + OTP-18310 Application(s): dialyzer + + There is new option -no_spec to ignore all specs. It is + useful for debugging when one suspects that some specs + could be incorrect. + + + OTP-18342 Application(s): dialyzer + Related Id(s): GH-6117, PR-6654 + + Dialyzer's overloaded domain warning is now disabled by + default, and can be enabled with the flag + -Woverlapping_contract. + + Dialyzer used to issue a warning for overloaded domains + stating "such contracts are currently unsupported and + are simply ignored". + + These contracts are not "ignored" but rather, Dialyzer + takes the union of the overloaded domains. This means + that we lose the dependency from each corresponding + input to output type. Because of this, the warning is + really about not being able to establish a dependency + between the input and output types of each respective + overloaded function specification. + + + OTP-18439 Application(s): dialyzer + Related Id(s): GH-5695, GH-6942, PR-6822 + + *** POTENTIAL INCOMPATIBILITY *** + + Dialyzer has enabled (by default) warnings about + unknown types and functions. + + Prior to this change, Dialyzer had warnings about + unknown types and functions disabled (by default). + + This default value has been overwritten; Dialyzer now + warns about unknown types and functions (as requested + by the community in GH-5695). Thus, the following two + examples are equivalent, i.e., passing the -Wunknown + function is enabled by default: + + dialyzer moduler.erl -Wunknown -Wmissing_return + + dialyzer moduler.erl -Wmissing_return + + Dialyzer has a new flag, -Wno_unknown. Its purpose is + to suppress warnings about unknown functions and types. + + Users who wish to suppress these warnings can invoke + Dialyzer using this flag. Example: dialyzer module.erl + -Wno_unknown + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18558 Application(s): dialyzer, stdlib + Related Id(s): PR-6852 + + Added the argparse module for simplified argument + handling in escripts and similar. + + + Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18338 Application(s): erl_docgen + Related Id(s): PR-6408 + + New XML tag <change>. Like a <note> box, but with a + different (steel blue) color and label. Intended to + contain talk about semantic differences between OTP + releases. + + + OTP-18501 Application(s): erl_docgen + Related Id(s): PR-6987 + + Add "since" attribute to XML taglist/tag elements to + document OTP version when a particular option/feature + was introduced. The version is shown out in the right + margin, similar to "since" versions for functions. + + + Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.4 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --- 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-14.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18016 Application(s): erts + + If a local fun was called while reloading the *exact + same* module that defined said fun, there was a small + window in which the call would land in code that was + yet to be fully loaded. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18274 Application(s): erts + Related Id(s): PR-6048 + + Fix so that -fno-omit-frame-pointer is applied to all + of the Erlang VM when using the JIT so that tools, such + as perf, can crawl the process stacks. + + + OTP-18277 Application(s): erts + Related Id(s): PR-6306 + + Compilation server now support unicode paths in + compilation server for filesystems that are encoded + with unicode. + + + OTP-18498 Application(s): erts + + *** HIGHLIGHT *** + + Reintroduced the optimization that turned anonymous + functions without free variables into literals + (OTP-15195). This optimization was lost during + refactoring in OTP 24. + + Alongside this fix, we plan to remove the "fun creator + pid" feature in OTP 27. See Upcoming Potential + Incompatibilities for more details. + + + OTP-18561 Application(s): erts + + Fixed a crash during tracing on certain platforms that + cannot use the machine stack for Erlang code (mainly + OpenBSD and Linux with musl). + + + --- Improvements and New Features --- + + OTP-17771 Application(s): erts + Related Id(s): GH-5325, PR-6370 + + *** POTENTIAL INCOMPATIBILITY *** + + The enif_set_option() function has been introduced into + the NIF API. It can be used in order to set the + ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT + options with which one can synchronize halt of the + runtime system with flushing enabled and execution of + NIFs. Halt of the runtime system without flushing + enabled, now terminates the runtime system without + execution of atexit/on_exit handlers that may have been + installed into the runtime system which might be + considered a potential incompatibility. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The TTY/terminal subsystem has been rewritten by moving + more code to Erlang from the old linked-in driver and + implementing all the I/O primitives needed in a NIF + instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + -- Standard I/O now always defaults to unicode mode if + supported. Previously the default was latin1 if the + runtime system had been started with -oldshell or + -noshell (for example in an escript). To send raw bytes + over standard out, one now explicitly has to specify + io:setopts(standard_io, [{encoding, latin1}]). + + + OTP-18029 Application(s): erts, kernel + + *** HIGHLIGHT *** + + Add support for socket on Windows. + + -- Pre release status. + + -- Error codes not finalized. + + -- No explicit support for Windows specific options + (socket options, flags for read and write). + + -- New async api for Windows (completion). See the + Asynchronous calls chapter in the (Socket Usage) Users + Guide. + + -- To ensure platform independence, gen_tcp and gen_udp + is *intended* to be used (not yet updated). + + + OTP-18053 Application(s): erts, otp + Related Id(s): PR-6101 + + Updated configure cache for Windows. This makes + configure run faster on Windows as many more checks are + cached. + + + OTP-18126 Application(s): compiler, erts + Related Id(s): PR-6033 + + Optimized record updates. + + + OTP-18131 Application(s): erts + + Optimized internal hash routines. + + + OTP-18135 Application(s): erts + Related Id(s): GH-4965, PR-6046 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + As announced when OTP 25 was released, multi time warp + mode is now enabled by default. This assumes that all + code executing on the system is time warp safe. + + If you have old code in the system that is not time + warp safe, you now explicitly need to start the system + in no time warp mode (or singe time warp mode if it is + partially time warp safe) in order to avoid problems. + When starting the system in no time warp mode, the + system behaves as it did prior to the introduction of + the extended time functionality introduced in OTP 18. + + If you have code that is not time warp safe, you are + strongly encouraged to change this so that you can use + multi time warp mode. Compared to no time warp mode, + multi time warp mode improves scalability and + performance as well as accuracy and precision of time + measurements. + + + OTP-18137 Application(s): compiler, erts + Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804 + + *** HIGHLIGHT *** + + There are several new optimization for binary syntax in + the JIT: + + -- Creation and matching of binaries with segments of + fixed sizes have been optimized. + + -- Creation and matching of UTF-8 segments have been + optimized. + + -- Appending to binaries has been optimized. + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18141 Application(s): erts + Related Id(s): OTP-18140, PR-6073 + + Optimization of process aliases made possible now that + support for version 4 node container types in the + external term format is mandatory. + + + OTP-18185 Application(s): compiler, erts + Related Id(s): GH-6139 + + *** HIGHLIGHT *** + + The compiler and JIT now generate better code for + creation of small maps where all keys are literals + known at compile time. + + + OTP-18227 Application(s): erts + Related Id(s): PR-6254 + + When erl -eval fails to execute a command, an error + description is printed to standard_error. + + + OTP-18334 Application(s): erts + Related Id(s): PR-6434 + + *** HIGHLIGHT *** + + Support for UTF-8 atoms and strings in the NIF + interface including new functions enif_make_new_atom, + enif_make_new_atom_len and enif_get_string_length. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18360 Application(s): erts + Related Id(s): PR-6497 + + erlang:display/1 will now print large maps in a more + readable way (similar to how small maps are printed). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18369 Application(s): erts + + Fail enif_init_resource_type and friends by returning + NULL if not called during load/upgrade. Old behavior + was undefined. + + + OTP-18410 Application(s): erts + Related Id(s): GH-5889, PR-6345 + + New option include_shared_binaries for the + max_heap_size process limit. If set to true, large + binaries (> 64 bytes), which may be referred by several + processes, are included in the memory sum compared + against the max_heap_size limit. + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18424 Application(s): erts + Related Id(s): PR-6716 + + Reduced memory usage of file:read_file_info/1,2 + + + OTP-18425 Application(s): erts + Related Id(s): GH-5333, PR-6628 + + Add new function current_stacktrace for trace match + specifications used by erlang:trace_pattern/3. + + This new option puts the current stacktrace of the + caller into the trace message sent to the trace + receiver. + + + OTP-18435 Application(s): erts + Related Id(s): PR-6827 + + *** HIGHLIGHT *** + + The amount of significant bits in node local process + identifiers and port identifiers has been extended from + 28 bits to 60 bits on 64-bit runtime systems. This + makes these identifiers large enough to in practice + never having to be reused during the life time of a + node. + + + OTP-18440 Application(s): erts + Related Id(s): PR-6351 + + *** HIGHLIGHT *** + + New trace feature call_memory. Similar to call_time + tracing, but instead of measure accumulated time in + traced functions it measures accumulated heap space + consumed by traced functions. It can be used to compare + how much different functions are contributing to + garbage collection being triggered. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18477 Application(s): erts + Related Id(s): PR-7006 + + Introduced the local option of term_to_binary/2 and + term_to_iovec/2. + + + OTP-18483 Application(s): erts + Related Id(s): PR-6888 + + Document the commonly used practice to create and store + static atoms at NIF load time in callbacks load or + upgrade. + + + OTP-18493 Application(s): erts + Related Id(s): PR-6272 + + Optimize ets:lookup_element for uncompressed tables by + using a more efficient method to copy the term from ETS + to the heap of the calling process. + + + OTP-18505 Application(s): erts + Related Id(s): PR-6991 + + *** POTENTIAL INCOMPATIBILITY *** + + The default encoding of atoms by term_to_binary and + term_to_iovec have changed from Latin1 to UTF-8. The + old encoding can still be obtained with options + {minor_version, 1}. + + Apart from encoding code points between 128 and 255 + with two bytes (UTF-8) instead of one, most atoms will + occupy one less byte as the length field use only one + byte instead of two if possible. + + + OTP-18517 Application(s): erts + + The version of zlib included in the Erlang/OTP source + code is now 1.2.13. + + + OTP-18520 Application(s): erts + Related Id(s): GH-6455 + + gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have + been optimized to use the infamous receive reference + optimization, so now sending should not have bad + performance when the calling process has a large + message queue. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18523 Application(s): erts + Related Id(s): PR-7004 + + Optimize maps:merge/2 memory consumption for small maps + (<33 keys) by reusing key tuples or entire maps if the + result map has the same number of keys as any of the + argument maps. + + + OTP-18524 Application(s): erts + Related Id(s): OTP-18523, PR-7004 + + Optimize maps:merge/2 memory consumption further for + small maps by mutating 2nd map to use literal key tuple + of 1st map if both have the same keys. + + + OTP-18526 Application(s): erts + Related Id(s): GH-7045 + + ceil/1, floor/1, is_bitstring/1, is_boolean/1, + is_function/2, and tuple_size/1 can now be used in + match specifications. + + + OTP-18540 Application(s): erts, kernel + Related Id(s): PR-6900 + + Allow IPv6 addresses as host in http packets decoded by + erlang:decode_packet/3 and gen_tcp packet option. The + IPv6 address should be enclosed within [] according to + RFC2732. + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + OTP-18552 Application(s): erts + Related Id(s): PR-6973 + + *** POTENTIAL INCOMPATIBILITY *** + + ERTS internal thread names have been changed. All + threads created by ERTS now have a prefix erts_ + followed by a type name potentially followed by an + integer index. For example, normal schedulers are now + named erts_sched_<IX>, dirty CPU schedulers + erts_dcpus_<IX>, and dirty IO schedulers + erts_dios_<IX>. NIF and driver thread names are + truncated at 15 characters regardless of whether the + underlying platform support more characters or not. + + + OTP-18569 Application(s): erts + + Further robustify implementation of large maps (> 32 + keys). Keys that happen to have same internal 32-bit + hash values are now put in collision nodes which are + traversed with linear search. This removes the demand + for the internal hash function when salted to + eventually produce different hashes for all possible + pairs of unequal terms. + + + OTP-18574 Application(s): compiler, erts + + In Erlang/OTP 27, 0.0 will no longer be considered to + be exactly equal to -0.0. See Upcoming Potential + Incompatibilities. + + + Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + 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.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18359 Application(s): ftp + Related Id(s): PR-6545 + + Fixes the documentation for the ftp module and updates + the typing of ftp functions that return errors. + + The documentation has been improved and the types of + the functions are now read from source code, instead of + being hard-coded in XML. + + Functions returning errors of the form {error, Reason + :: 'ehost' | ...} are now similar to other modules, + i.e., {error, Reason :: term()}. If one wants to + understand the error, one must call the function + ftp:formaterror({error, Reason}). + + + --- Improvements and New Features --- + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18541 Application(s): ftp + + Remove deprecated functions in OTP-26 + + + Full runtime dependencies of ftp-1.2: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-9.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18476 Application(s): inets + Related Id(s): GH-6380 + + Correct timing related pipelining/keepalive queue bug, + that could result in unexpected "socket_remotly_closed" + errors. + + + --- Improvements and New Features --- + + OTP-18167 Application(s): inets + + By default ssl connections will use options from + ssl_default_options(true) + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + OTP-18530 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + IP display string will now always be in lower case, + effects ipv6 addresses. + + + OTP-18536 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Removed deprecated functions + + + OTP-18544 Application(s): inets + Related Id(s): GH-5276 + + Update the code in the inets example directory to + reflect the latest implementation + + + Full runtime dependencies of inets-9.0: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- jinterface-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + --------------------------------------------------------------------- + --- kernel-9.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18210 Application(s): kernel + Related Id(s): GH-5877, PR-5878 + + *** POTENTIAL INCOMPATIBILITY *** + + Fixed a bug where duplicate keys were allowed in the + .app file of an application. Duplicate keys are now + rejected and the application will not start if they + exist. + + + OTP-18225 Application(s): kernel + Related Id(s): PR-6036 + + Fix inconsistent handling in logger_formatter of the + branched values in conditional branches. For example + using msg in a conditional branch would not be + formatted as it should before this fix. + + + OTP-18226 Application(s): kernel + Related Id(s): PR-6253 + + Fix the logger_std_h handler to log to standard_error + if logging to standard_io fails for any reason. + + + OTP-18248 Application(s): erts, kernel + Related Id(s): GH-6085, PR-6227 + + Fix the TLS distribution to work when starting Erlang + in embedded mode and a connection is done before kernel + is fully started. + + + OTP-18271 Application(s): erts, kernel + Related Id(s): PR-6279 + + erl -remsh has been improved to provide better error + reasons and work when using a shell without terminal + support (that is an "oldshell"). + + + OTP-18286 Application(s): kernel + Related Id(s): PR-5955 + + Fix logging of log events generated before kernel is + started to not fail if the code for formatting those + log messaged have not yet been loaded. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + OTP-18528 Application(s): kernel + Related Id(s): PR-7009 + + Return type for seq_trace:get_token/1 fixed. + + + OTP-18543 Application(s): kernel + Related Id(s): GH-6353 + + Looking up, connecting to and sending to a host with an + empty name is now handled by trying to look up the + address of the root domain, which fails. Previously + some of these operations caused an internal exception, + which contradicted type specifications. + + + OTP-18547 Application(s): kernel + Related Id(s): PR-7092 + + Replaced a regex with a special case handling of ANSI + Select Graphic Rendition escape characters, to speed up + io output that make use of these escape sequences. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The TTY/terminal subsystem has been rewritten by moving + more code to Erlang from the old linked-in driver and + implementing all the I/O primitives needed in a NIF + instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + -- Standard I/O now always defaults to unicode mode if + supported. Previously the default was latin1 if the + runtime system had been started with -oldshell or + -noshell (for example in an escript). To send raw bytes + over standard out, one now explicitly has to specify + io:setopts(standard_io, [{encoding, latin1}]). + + + OTP-18029 Application(s): erts, kernel + + *** HIGHLIGHT *** + + Add support for socket on Windows. + + -- Pre release status. + + -- Error codes not finalized. + + -- No explicit support for Windows specific options + (socket options, flags for read and write). + + -- New async api for Windows (completion). See the + Asynchronous calls chapter in the (Socket Usage) Users + Guide. + + -- To ensure platform independence, gen_tcp and gen_udp + is *intended* to be used (not yet updated). + + + OTP-18140 Application(s): erl_interface, erts, jinterface, + kernel + Related Id(s): PR-6072 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced since the release of OTP 24, support for: + + -- version 4 node container types in the external term + format are now mandatory. That is, references + supporting up to 5 32-bit integer identifiers, and + process and port identifiers with support for 64-bit + data storage. The distribution flag DFLAG_V4_NC is + therefor now also mandatory. OTP has since OTP 24 + supported this. Also note that the external format + produced by term_to_binary() and term_to_iovec() will + unconditionally produce pids, ports, and references + supporting this larger format. + + -- the new link protocol introduced in OTP 23.3 is now + mandatory. The distribution flag DFLAG_UNLINK_ID is + therefor now also mandatory. + + Due to the above, OTP 26 nodes will refuse to connect + to OTP nodes from releases prior to OTP 24. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18261 Application(s): kernel + Related Id(s): PR-5924 + + Add code:get_doc/2 which adds support to fetch + documentation skeletons of functions using debug_info + chunks instead of eep48 doc chunks. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18305 Application(s): kernel + Related Id(s): PR-5831 + + gen_server optimized by caching callback functions + + + OTP-18327 Application(s): kernel + Related Id(s): PR-6433 + + Prepare the pg communication protocol for upgrade. The + plan is for OTP-28 nodes to be able to use an upgraded + pg protocol while still being able to talk with OTP 26 + nodes. + + + OTP-18331 Application(s): kernel + Related Id(s): ERIERL-870 + + New disk_log log type rotate, where the log files are + compressed upon rotation. + + + OTP-18344 Application(s): erts, kernel + Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522, + PR-6944 + + *** POTENTIAL INCOMPATIBILITY *** + + The following inet:setopts/2 options have been + introduced: + + -- reuseport -- Reuse of local port. Load balancing may + or may not be provided depending on underlying OS. + + -- reuseport_lb -- Reuse of local port. Load balancing + provided. + + -- exclusiveaddruse -- Exclusive address/port usage on + Windows. This socket option is Windows specific and + will silently be ignored on other systems. + + The behavior of setting reuseaddr on Windows have + changed in a *backwards incompatible* way. The + underlying SO_REUSEADDR socket option is now only set + if both the reusaddr and the reuseport inet options + have been set. This since the underlying SO_REUSEADDR + socket option on Windows behaves similar to how BSD + behaves if both the underlying socket options + SO_REUSEADDR and SO_REUSEPORT have been set. See the + documentation of the reuseaddr option for more + information. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18419 Application(s): kernel + + The function file:pid2name/1 is deprecated and will be + removed in Erlang/OTP 27. + + + OTP-18442 Application(s): kernel + Related Id(s): GH-6606, PR-6786 + + The modules Erlang DNS resolver inet_res and helper + modules have been updated for RFC6891; to handle OPT RR + with DNSSEC OK (DO) bit. + + + OTP-18444 Application(s): kernel + Related Id(s): PR-6035 + + Introduced application:get_supervisor/1. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18448 Application(s): kernel + Related Id(s): PR-6736 + + Reduce contention on the code_server by doing the code + preparation on the client. + + + OTP-18451 Application(s): kernel + Related Id(s): PR-6737 + + Added a mode to ensure_all_loaded, to start children + application and their dependencies concurrently. + + + OTP-18452 Application(s): kernel + Related Id(s): PR-6729 + + Cache OTP boot code paths, to limit how many folders + that are being accessed during a module lookup. Can be + disabled with -cache_boot_path false. OTP boot code + paths consists of ERL_LIB environment variables. The + various otp/*/ebin folders. And the {path, ...} clauses + in the init script. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18466 Application(s): kernel + Related Id(s): PR-6832 + + Add cache attribute to code path apis. + + Added an optional cache/nocache argument to all + code:add_path*, code:set_path*, and code:replace_path* + functions. These functions will then avoid doing + file-accesses if they are cached. Cache can be cleared + with code:clear_cache/0. Added code:del_paths/1 to make + it easier to clear multiple paths. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18484 Application(s): kernel + Related Id(s): PR-6844 + + Improvements to code:ensure_modules_loaded/1: + Previously it would prepare modules and then abandon + references to said modules if they had on_load + callbacks. This pull request makes it so they keep the + references around and then serially load them without + having to fetch the object code and prepare them again. + + + OTP-18510 Application(s): kernel + Related Id(s): GH-6098, PR-6982 + + The internal DNS resolver has been updated to handle + DNS LOC RR:s (RFC 1876). This is an undocumented + module, although still used by power users. See the + source code. + + + OTP-18521 Application(s): kernel + Related Id(s): PR-7025 + + Reduced memory consumption in global when informing + other nodes about lost connections. + + + OTP-18533 Application(s): kernel + Related Id(s): PR-7061 + + The net_kernel, global, and global_group servers now + have fully asynchronous distributed signaling enabled + all the time which prevents them from ever getting + blocked on send of distributed signals. + + Documentation about blocking distributed signals has + also been improved. + + + OTP-18540 Application(s): erts, kernel + Related Id(s): PR-6900 + + Allow IPv6 addresses as host in http packets decoded by + erlang:decode_packet/3 and gen_tcp packet option. The + IPv6 address should be enclosed within [] according to + RFC2732. + + + OTP-18542 Application(s): kernel + + Remove deprecated functions in OTP-26 + + + OTP-18551 Application(s): kernel + Related Id(s): PR-7106 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed code:is_module_native/1 since HiPE has been + removed. It has since OTP 24 been deprecated and + scheduled for removal in OTP 26. + + Removed code:rehash/0 since the code path feature no + longer is present. It has since OTP 19 been deprecated + and has since OTP 24 been scheduled for removal in OTP + 26. + + + OTP-18575 Application(s): kernel, stdlib + Related Id(s): PR-7169 + + Added support for multiple line expressions and + navigation in the shell. Added new keybindings: + + -- navigate up (ctrl+up)/(alt+up) + + -- navigate down (ctrl+down)/(alt+down) + + -- insert newline in middle of line (alt+enter) + + -- navigate top (alt+<)/(alt+shift+up) + + -- navigate bottom (alt+>)/(alt+shift+down) + + -- clear current expression (alt+c) + + -- cancel search (alt+c) + + -- opening editor on mac (option+o)/(alt+o) + + Modifies the prompt for new lines to make it clearer + that the prompt has entered multi-line mode. Supports + terminal with small window size, recommend not go lower + than 7 rows and 40 columns. Modifies the search prompt + to support multi-line statements. Redraw the prompt + after continuing from JCL menu. + + + Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- megaco-4.4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18538 Application(s): megaco, otp + Related Id(s): GH-7031, PR-7078 + + Removed configure option --enable-sanitizers. It was + untested and broken. Address sanitizer for the emulator + has better support by the asan build target. + + + Full runtime dependencies of megaco-4.4.4: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.22 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18309 Application(s): mnesia + Related Id(s): PR-6377 + + Added debug statistics for active transactions. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- observer-2.15 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18430 Application(s): observer + Related Id(s): PR-6397 + + Added start/1, start_and_wait functions/1|2 functions. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + Full runtime dependencies of observer-2.15: erts-14.0, et-1.5, + kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + + + --------------------------------------------------------------------- + --- odbc-2.14.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18539 Application(s): odbc + + Allow larger column sizes than 8001 in case DB supports + it. + + + Full runtime dependencies of odbc-2.14.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18246 Application(s): os_mon + Related Id(s): GH-6156, PR-6284 + + Fix internal os_mon_sysinfo:get_disk_info/1 function to + not crash when run on Windows with multiple drives. + + + OTP-18546 Application(s): os_mon + Related Id(s): GH-7070, PR-7071 + + Fixed a memory leak when calling cpu_sup:util/0,1 on + FreeBSD. + + + --- Improvements and New Features --- + + OTP-18303 Application(s): os_mon + Related Id(s): PR-6384 + + The disksup:get_disk_info/0 and disksup:get_disk_info/1 + functions have been introduced. These can be used in + order to immediately fetch information about current + disk usage. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18566 Application(s): os_mon + Related Id(s): PR-7080 + + Support for cpu_sup:util() on OpenBSD. + + + Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- parsetools-2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18491 Application(s): parsetools + Related Id(s): PR-6882 + + *** HIGHLIGHT *** + + Leex has been extended with optional column number + support. + + + Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.14 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-1.0 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18230 Application(s): reltool + Related Id(s): PR-5936 + + Add possibility to strip specific chunks from beam + files included in a release. Before this change it was + only possible to strip all chunks from the beam files. + + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18488 Application(s): reltool + Related Id(s): PR-6836 + + *** POTENTIAL INCOMPATIBILITY *** + + Support for the experimental code archives feature has + been removed from reltool. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3 + + + --------------------------------------------------------------------- + --- runtime_tools-2.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18499 Application(s): runtime_tools + Related Id(s): PR-6946 + + Fixed the type specification for + instrument:carriers/0,1 + + + --- Improvements and New Features --- + + OTP-18211 Application(s): runtime_tools + Related Id(s): PR-6143 + + Add dbg:tracer(file, Filename) as a convenient way to + trace to a file in clean text. + + + OTP-18447 Application(s): asn1, crypto, erts, kernel, + public_key, runtime_tools + + Handling of on_load modules during boot has been + improved by adding an extra step in the boot order for + embedded mode that runs all on_load handlers, instead + of relying on explicit invocation of them, later, when + the kernel supervision tree starts. + + This is mostly a code improvement and OTP internal + simplification to avoid future bugs and to simplify + code maintenance. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + OTP-18549 Application(s): erts, runtime_tools + Related Id(s): PR-7105 + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the experimental erts_alloc_config module. It + no longer produced good configurations and cannot be + fixed in a reasonably backwards compatible manner. It + has since OTP 25 been deprecated and scheduled for + removal in OTP 26. + + + Full runtime dependencies of runtime_tools-2.0: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18300 Application(s): sasl + Related Id(s): PR-6389 + + Improved error message from systools:make_script, when + .app parameters contain duplicates. The parameters that + will be checked are modules, applications and + registered. + + + Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0, + stdlib-4.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.14 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssh-5.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18231 Application(s): ssh + Related Id(s): OTP-17932, PR-6144 + + The ssh_cli has been updated to work with the changes + introduced in the new Erlang shell implementation. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14771 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Remove less that 256 bit ECC from default supported ECC + pre TLS-1.3 + + + OTP-15903 Application(s): ssl + + *** HIGHLIGHT *** + + Improved error checking and handling of ssl options. + + + OTP-18168 Application(s): ssl + Related Id(s): GH-6014, PR-6019 + + *** POTENTIAL INCOMPATIBILITY *** + + With this change, stateless tickets generated by server + with anti_replay option enabled can be used for + creating ClientHello throughout ticket lifetime. + Without this change, usability was limited to + WindowSize number of seconds configured for anti_replay + option. + + + OTP-18235 Application(s): kernel, ssl + Related Id(s): PR-5840, PR-6104 + + *** HIGHLIGHT *** + + Support for Kernel TLS (kTLS), has been added to the + SSL application, for TLS distribution (-proto_dist + inet_tls), the SSL option {ktls, true}. Using this for + general SSL sockets is uncomfortable, undocumented and + not recommended since it requires very platform + dependent raw options. + + This, for now, only works for some not too old Linux + distributions. Roughly, a kernel 5.2.0 or later with + support for UserLand Protocols and the kernel module + tls is required. + + + OTP-18253 Application(s): ssl + + With this change, TLS 1.3 server can be configured to + include client certificate in session ticket. + + + OTP-18254 Application(s): ssl + Related Id(s): PR-5982 + + With this change, it is possible to configure + encryption seed to be used with TLS1.3 stateless + tickets. This enables using tickets on different server + instances. + + + OTP-18312 Application(s): ssl + + Debugging enhancements. + + + OTP-18335 Application(s): ssl + + With this change, maybe keyword atom is not used as + function name in ssl code. + + + OTP-18405 Application(s): crypto, diameter, kernel, ssl + Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768, + PR-6769, PR-6812, PR-6814 + + Replace size/1 with either tuple_size/1 or byte_size/1 + + The size/1 BIF is not optimized by the JIT, and its use + can result in worse types for Dialyzer. + + When one knows that the value being tested must be a + tuple, tuple_size/1 should always be preferred. + + When one knows that the value being tested must be a + binary, byte_size/1 should be preferred. However, + byte_size/1 also accepts a bitstring (rounding up size + to a whole number of bytes), so one must make sure that + the call to byte_size/ is preceded by a call to + is_binary/1 to ensure that bitstrings are rejected. + Note that the compiler removes redundant calls to + is_binary/1, so if one is not sure whether previous + code had made sure that the argument is a binary, it + does not harm to add an is_binary/1 test immediately + before the call to byte_size/1. + + + OTP-18438 Application(s): ssl + Related Id(s): GH-6679 + + *** POTENTIAL INCOMPATIBILITY *** + + For security reasons remove support for SHA1 and DSA + algorithms from default values. + + + OTP-18453 Application(s): ssl + + Mitigate memory usage from large certificate chains by + lowering the maximum handshake size. This should not + effect the common cases, if needed it can be configured + to a higher value. + + + OTP-18455 Application(s): ssl + Related Id(s): GH-5899 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the client default verify option to verify_peer. + Note that this makes it mandatory to also supply + trusted CA certificates or explicitly set verify to + verify_none. This also applies when using the so called + anonymous test cipher suites defined in TLS versions + pre TLS-1.3. + + + OTP-18456 Application(s): kernel, ssl + + Erlang distribution code in Kernel and SSL has been + refactored a bit to facilitate debugging and + re-usability, which shouldn't have any noticeable + effects on behaviour or performance. + + + OTP-18459 Application(s): ssl + + *** HIGHLIGHT *** + + Add encoding and decoding of use_srtp hello extension + to facilitate for DTLS users to implement SRTP + functionality. + + + OTP-18465 Application(s): ssl + Related Id(s): GH-7065 + + Refactors the (ssl application to use macros for TLS + and DTLS versions instead of hard-coded tuple numbers. + This change improves the maintainability of ssl + + + OTP-18507 Application(s): ssl + + If the function ssl:renegotiate/1 is called on + connection that is running TLS-1.3 return an error + instead of hanging or timing out. + + + OTP-18531 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + If a user cancel alert with level warning is received + during handshake make it be handled the same regardless + of TLS version. If it is received in connection in + TLS-1.3 regard it as an error as it is inappropriate. + + In TLS-1.3 all error alerts are considered FATAL + regardless of legacy alert type. But make sure legacy + type is printed in logs to not confuse users that are + expecting the same legacy type as sent by peer. + + + OTP-18567 Application(s): ssl + + Make fail_if_no_peer_cert default true if verify_peer + is set on the server, otherwise the server will accept + the connection if verify_peer is set and the user have + forgot to set the fail_if_no_peer_cert and the client + did not send a certificate. + + + OTP-18572 Application(s): ssl + + To make it easier to configure signature algorithms + with algorithms that are moved from the default add the + API function signature_algs/2 that lists possible + values. Also make sha224 a non default value. + + + Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18275 Application(s): stdlib + Related Id(s): PR-6045 + + All process calls in dets have been updated to use the + receive queue optimizations. + + + OTP-18471 Application(s): kernel, stdlib + Related Id(s): GH-6339, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + proc_lib:start*/* has become synchronous when the + started process fails. This requires that a failing + process use a new function proc_lib:init_fail/2,3, or + exits, to indicate failure. All OTP behaviours have + been fixed to do this. + + All these start functions now consume the 'EXIT' + message from a process link for all error returns. + Previously it was only the start_link/* functions that + did this, and only when the started function exited, + not when it used init_ack/1,2 or init_fail/2,3 to + create the return value. + + + OTP-18486 Application(s): kernel, stdlib + Related Id(s): PR-6881 + + Fixed a bug where file:read(standard_io, ...) + unexpectedly returned eof in binary mode. + + + OTP-18548 Application(s): stdlib + Related Id(s): PR-6967 + + In the shell, v(N) would fail to retrieve the command + if the command's return value was undefined. + + + --- Improvements and New Features --- + + OTP-14835 Application(s): kernel, stdlib + Related Id(s): PR-5924 + + *** HIGHLIGHT *** + + The Erlang shell has been improved to support the + following features: + + -- Auto-complete variables, record names, record field + names, map keys, function parameter types and + filenames. + + -- Open external editor in the shell (with C-o) to edit + the current expression in an editor. + + -- Support defining records (with types), functions and + function typespecs, and custom types in the shell. + + -- Do not save pager commands, and input to io:getline + in history. + + + OTP-15597 Application(s): stdlib + Related Id(s): PR-5831 + + Gen_server now caches external functions for use in + handle_call, handle_cast and handle_info. + + + OTP-17932 Application(s): erts, kernel, stdlib + Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343, + PR-6144 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The TTY/terminal subsystem has been rewritten by moving + more code to Erlang from the old linked-in driver and + implementing all the I/O primitives needed in a NIF + instead. + + On Unix platforms the user should not notice a lot of + difference, besides better handling of unicode + characters and fixing of some long standing bugs. + + Windows users will notice that erl.exe has the same + functionality as a normal Unix shell and that werl.exe + has been removed and replaced with a symlink to + erl.exe. This makes the Windows Erlang terminal + experience identical to that of Unix. + + The re-write brings with it a number of bug fixes and + feature additions: + + -- The TTY is now reset when Erlang exits, fixing zsh + to not break when terminating an Erlang session. + + -- standard_error now uses the same unicode mode as + standard_io. + + -- Hitting backspace when searching the shell history + with an empty search string no longer breaks the shell. + + -- Tab expansion now works on remote nodes started + using the JCL interface. + + -- It is now possible to configure the shell slogan and + the session slogans (that is the texts that appear when + you start an Erlang shell). See the kernel + documentation for more details. + + -- Added shell:start_interactive for starting the + interactive shell from a non-interactive Erlang session + (for example an escript). + + -- On Windows, when starting in detached mode the + standard handler are now set to nul devices instead of + being unset. + + -- Standard I/O now always defaults to unicode mode if + supported. Previously the default was latin1 if the + runtime system had been started with -oldshell or + -noshell (for example in an escript). To send raw bytes + over standard out, one now explicitly has to specify + io:setopts(standard_io, [{encoding, latin1}]). + + + OTP-18159 Application(s): stdlib + Related Id(s): PR-6904 + + Added the zip:zip_get_crc32/2 function to retrieve the + CRC32 checksum from an opened ZIP archive. + + + OTP-18176 Application(s): stdlib + Related Id(s): PR-6118 + + Added the options post_process_args and detached to the + peer:start function. + + + OTP-18221 Application(s): stdlib + Related Id(s): PR-6197 + + The re:replace/3,4 functions now accept a fun as the + replacement argument. + + + OTP-18228 Application(s): stdlib + Related Id(s): GH-5639 + + *** HIGHLIGHT *** + + The performance of the base64 module has been + significantly improved. For example, on an x86_64 + system with the JIT both encode and decode are more + than three times faster than in Erlang/OTP 25. + + + OTP-18236 Application(s): stdlib + Related Id(s): PR-6256 + + Improved implementation of timer:apply_interval/4 + reducing load on the timer server, and introduction of + the new function timer:apply_repeatedly/4. + timer:apply_repeatedly/4 is similar to + timer:apply_interval/4, but timer:apply_repeatedly/4 + prevents parallel execution of triggered apply + operations which timer:apply_interval/4 does not. + + + OTP-18247 Application(s): stdlib + Related Id(s): PR-6280, PR-6711 + + The base64 module now supports encoding and decoding + with an alternate URL safe alphabet, and an option for + accepting or adding missing = padding characters. + + + OTP-18272 Application(s): stdlib + Related Id(s): PR-6279 + + Add shell:whereis/0 which can be used to locate the + current shell process. + + + OTP-18278 Application(s): kernel, stdlib + Related Id(s): PR-6260 + + *** HIGHLIGHT *** + + The Erlang shell's auto-completion when typing tab has + been changed to happen after the editing current line + instead of before it. + + This behaviour can be configured using a the + shell_expand_location STDLIB configuration parameter. + + + OTP-18279 Application(s): stdlib + Related Id(s): PR-6234 + + New function ets:lookup_element/4 with a Default + argument returned if the key did not exist in the + table. The old ets:lookup_element/3 raises a badarg + exception which can be both inconvenient and slower. + + + OTP-18285 Application(s): kernel, ssh, stdlib + Related Id(s): PR-6262 + + *** POTENTIAL INCOMPATIBILITY *** + + Typing Ctrl+L in a shell now clears the screen and + redraws the current line instead of only redrawing the + current line. To only redraw the current line, you must + now type Alt+L. This brings the behaviour of Ctrl+L + closer to how bash and other shells work. + + + OTP-18287 Application(s): stdlib + Related Id(s): PR-5955 + + peer nodes using standard_io connections now include + standard error from the node in the io stream from the + started node. + + + OTP-18297 Application(s): compiler, stdlib + Related Id(s): GH-6348 + + *** HIGHLIGHT *** + + A limitation in the binary syntax has been removed. It + is now possible to match binary patterns in parallel. + Example: <<A:8>> = <<B:4,C:4>> = Bin + + + OTP-18301 Application(s): stdlib + Related Id(s): PR-6350 + + Improve type specification of + unicode:characters_to_list(). + + + OTP-18318 Application(s): stdlib + Related Id(s): PR-6347 + + *** HIGHLIGHT *** + + In the lists module, the zip family of functions now + takes options to allow handling lists of different + lengths. + + + OTP-18337 Application(s): compiler, stdlib + Related Id(s): GH-6477, PR-6503 + + It is documented that $\^X is the ASCII code for + Control X, where X is an uppercase or lowercase letter. + However, this notation would work for any character X, + even then it didn't make sense. + + In Erlang/OTP 26, it is now documented that the + following characters are also allowed to follow the \^ + characters: @, [, \, ], ^, _, and ?. Attempt to use + other characters will be rejected with a compiler + error. + + The value for $\^? is now 127 (instead of 31 as in + earlier releases). + + + OTP-18354 Application(s): stdlib + Related Id(s): PR-6297 + + The binary:encode_hex/2 function has been added to + allow the encoded hexadecimal digits to be in either + lower or upper case. + + + OTP-18355 Application(s): stdlib + Related Id(s): PR-6507 + + Variants of timer:tc() with user specified time unit + have been introduced. + + + OTP-18361 Application(s): stdlib + Related Id(s): PR-6536 + + New function math:tau/0. Returns 2*math:pi(). + + + OTP-18367 Application(s): compiler, erts, stdlib + Related Id(s): GH-6544 + + *** HIGHLIGHT *** + + The BIFs min/2 and max/2 are now allowed to be used in + guards and match specs. + + + OTP-18385 Application(s): stdlib + Related Id(s): PR-6698 + + Optimized gen_server:multi_call(). + + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18414 Application(s): erts, stdlib + Related Id(s): PR-6151 + + *** HIGHLIGHT *** + + Some map operations have been optimized by changing the + internal sort order of atom keys. This changes the + (undocumented) order of how atom keys in small maps are + printed and returned by maps:to_list/1 and maps:next/1. + The new order is unpredictable and may change between + different invocations of the Erlang VM. + + For applications where order is important, there is a + new function maps:iterator/2 for creating iterators + that return the map elements in a deterministic order. + There are also new modifiers k and K for the format + string for io:format() to support printing map elements + ordered. + + + OTP-18423 Application(s): stdlib + Related Id(s): com/erlang/backlog/issues/142, + https://github + + Make gen_server fail "silently" with a new return value + for init/1. + + + OTP-18431 Application(s): compiler, stdlib + Related Id(s): PR-6739 + + *** HIGHLIGHT *** + + Improved the selective receive optimization, which can + now be enabled for references returned from other + functions. + + This greatly improves the performance of + gen_server:send_request/3, gen_server:wait_response/2, + and similar functions. + + + OTP-18445 Application(s): erts, stdlib + + *** HIGHLIGHT *** + + It is no longer necessary to enable a feature in the + runtime system in order to load modules that are using + it. It is sufficient to enable the feature in the + compiler when compiling it. + + That means that to use feature maybe_expr in Erlang/OTP + 26, it is sufficient to enable it during compilation. + + In Erlang/OTP 27, feature maybe_expr will be enabled by + default, but it will be possible to disable it. + + + OTP-18474 Application(s): stdlib + Related Id(s): PR-6895 + + Static supervisors are very idle processes after they + have started so they will now be hibernated after start + to improve resource management. + + + OTP-18478 Application(s): common_test, compiler, dialyzer, + diameter, et, ftp, inets, kernel, observer, + runtime_tools, ssh, stdlib + Related Id(s): GH-6903 + + Deprecates dbg:stop_clear/0 because it is simply a + function alias to dbg:stop/0 + + + OTP-18494 Application(s): stdlib + Related Id(s): PR-6924 + + Support has been added in ms_transform for the actions + caller_line/0, current_stacktrace/0, and + current_stacktrace/1. + + + OTP-18495 Application(s): stdlib + Related Id(s): PR-6943 + + *** HIGHLIGHT *** + + The family of enumeration functions in module lists has + been extended with enumerate/3 that allows a step value + to be supplied. + + + OTP-18500 Application(s): stdlib + + *** HIGHLIGHT *** + + Update Unicode to version 15.0.0. + + + OTP-18511 Application(s): otp, stdlib + Related Id(s): PR-7017 + + The regular expression library powering the re module + is likely to be changed in Erlang/OTP 27. See Upcoming + Potential Incompatibilities. + + + OTP-18515 Application(s): stdlib + Related Id(s): GH-6990 + + Improved the performance of sets:subtract/2 when + subtracting a small number of elements. + + + OTP-18518 Application(s): stdlib + Related Id(s): GH-7015 + + The linter will no longer raise warnings for + underspecified opaque types. + + + OTP-18522 Application(s): dialyzer, erts, stdlib + + *** HIGHLIGHT *** + + Added the new built-in type dynamic() introduced in + EEP-61, improving support for gradual type checkers. + + + OTP-18537 Application(s): stdlib + Related Id(s): PR-7081 + + The by gen_statem previously used call proxy process + that was used for preventing late replies from reaching + the client at timeout or connection loss has been + removed. It is no longer needed since process aliases + take care of this, are used, and supported by all + Erlang nodes that an OTP 26 Erlang node can communicate + with. + + + OTP-18558 Application(s): dialyzer, stdlib + Related Id(s): PR-6852 + + Added the argparse module for simplified argument + handling in escripts and similar. + + + OTP-18575 Application(s): kernel, stdlib + Related Id(s): PR-7169 + + Added support for multiple line expressions and + navigation in the shell. Added new keybindings: + + -- navigate up (ctrl+up)/(alt+up) + + -- navigate down (ctrl+down)/(alt+down) + + -- insert newline in middle of line (alt+enter) + + -- navigate top (alt+<)/(alt+shift+up) + + -- navigate bottom (alt+>)/(alt+shift+down) + + -- clear current expression (alt+c) + + -- cancel search (alt+c) + + -- opening editor on mac (option+o)/(alt+o) + + Modifies the prompt for new lines to make it clearer + that the prompt has entered multi-line mode. Supports + terminal with small window size, recommend not go lower + than 7 rows and 40 columns. Modifies the search prompt + to support multi-line statements. Redraw the prompt + after continuing from JCL menu. + + + Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + Full runtime dependencies of syntax_tools-3.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- tftp-1.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- tools-3.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools, + tools + Related Id(s): EEP-58, PR-6727 + + *** HIGHLIGHT *** + + Map comprehensions as suggested in EEP 58 has now been + implemented. + + + OTP-18487 Application(s): runtime_tools, tools + Related Id(s): PR-6829 + + The instrument module has been moved from tools to + runtime_tools. + + + Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.3 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-18350 Application(s): inets, observer, os_mon, reltool, wx + + Runtime dependencies have been updated. + + + OTP-18490 Application(s): diameter, inets, mnesia, reltool, + snmp, ssh, tftp, wx + Related Id(s): GH-6339, OTP-18471, PR-6843 + + *** POTENTIAL INCOMPATIBILITY *** + + The implementation has been fixed to use + proc_lib:init_fail/2,3 where appropriate, instead of + proc_lib:init_ack/1,2. + + + Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.1.1.README.txt b/release-notes/OTP-26.1.1.README.txt new file mode 100644 index 0000000..3918bfa --- /dev/null +++ b/release-notes/OTP-26.1.1.README.txt @@ -0,0 +1,80 @@ +Patch Package: OTP 26.1.1 +Git Tag: OTP-26.1.1 +Date: 2023-09-28 +Trouble Report Id: OTP-18768, OTP-18770, OTP-18773 +Seq num: GH-7667 +System: OTP +Release: 26 +Application: compiler-8.4.1, stdlib-5.1.1, wx-2.3.1 +Predecessor: OTP 26.1 + + Check out the git tag OTP-26.1.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- compiler-8.4.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.4.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18770 Application(s): compiler + Related Id(s): GH-7667, PR-7672 + + The compiler could become extremely slow for modules + containing huge functions. + + + Full runtime dependencies of compiler-8.4.1: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- stdlib-5.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-5.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18773 Application(s): stdlib + Related Id(s): PR-7691 + + Garbage collect the shell process when reducing the + amount of saved history and results. + + + Full runtime dependencies of stdlib-5.1.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.3.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.3.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18768 Application(s): wx + Related Id(s): PR-7670 + + The wx application would fail to build on macOS with + Xcode 15. + + + Full runtime dependencies of wx-2.3.1: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.1.2.README.txt b/release-notes/OTP-26.1.2.README.txt new file mode 100644 index 0000000..9de2b37 --- /dev/null +++ b/release-notes/OTP-26.1.2.README.txt @@ -0,0 +1,101 @@ +Patch Package: OTP 26.1.2 +Git Tag: OTP-26.1.2 +Date: 2023-10-12 +Trouble Report Id: OTP-18790, OTP-18797, OTP-18803 +Seq num: GH-7683 +System: OTP +Release: 26 +Application: erts-14.1.1, xmerl-1.3.33 +Predecessor: OTP 26.1.1 + + Check out the git tag OTP-26.1.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- OTP-26.1.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18803 Application(s): otp, xmerl + + The xmerl version 1.3.32 was released in OTP 26.0.1, + but the incorrect version number of 1.3.31.1 was used + for it. This incorrect version number continued to + appear in OTP 26.0.2, OTP 26.1, and OTP 26.1.1. The + actual xmerl code in these OTP versions however + corresponds to xmerl version 1.3.32. + + + --------------------------------------------------------------------- + --- erts-14.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18790 Application(s): erts + Related Id(s): PR-7742 + + If the external term format encoding of an argument + list part of a distributed spawn operation was faulty, + the newly spawned remote process could misbehave. The + misbehavior included hanging or interpret an incoming + message as an argument list to use. This was very + unlikely to happen unless using an alternate + implementation of the distribution protocol which made + a faulty encoding of the argument list. The child + process will now detect this error and terminate before + executing the user specified code. + + + OTP-18797 Application(s): erts + Related Id(s): GH-7683, PR-7712 + + Fix bugs where if the body of a matchspec would return + a map with a variable ('$1', '$_' etc) as one of the + keys or values and the variable was not an immidiate, + the term would not be copied to the receiving processes + heap. This would later corrupt the term in the table as + the GC could place move markers in it, which in turn + would cause the VM to crash. + + Bug has been present for since OTP 17.0. + + + Full runtime dependencies of erts-14.1.1: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- xmerl-1.3.33 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.33 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18803 Application(s): otp, xmerl + + The xmerl version 1.3.32 was released in OTP 26.0.1, + but the incorrect version number of 1.3.31.1 was used + for it. This incorrect version number continued to + appear in OTP 26.0.2, OTP 26.1, and OTP 26.1.1. The + actual xmerl code in these OTP versions however + corresponds to xmerl version 1.3.32. + + + Full runtime dependencies of xmerl-1.3.33: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.1.README.txt b/release-notes/OTP-26.1.README.txt new file mode 100644 index 0000000..fea80a6 --- /dev/null +++ b/release-notes/OTP-26.1.README.txt @@ -0,0 +1,1212 @@ +Patch Package: OTP 26.1 +Git Tag: OTP-26.1 +Date: 2023-09-20 +Trouble Report Id: OTP-14480, OTP-18579, OTP-18582, OTP-18586, + OTP-18592, OTP-18598, OTP-18599, OTP-18605, + OTP-18611, OTP-18614, OTP-18615, OTP-18616, + OTP-18623, OTP-18627, OTP-18628, OTP-18629, + OTP-18631, OTP-18633, OTP-18638, OTP-18644, + OTP-18645, OTP-18647, OTP-18654, OTP-18655, + OTP-18660, OTP-18661, OTP-18662, OTP-18664, + OTP-18666, OTP-18669, OTP-18670, OTP-18672, + OTP-18674, OTP-18675, OTP-18676, OTP-18677, + OTP-18678, OTP-18679, OTP-18681, OTP-18683, + OTP-18685, OTP-18686, OTP-18687, OTP-18688, + OTP-18689, OTP-18690, OTP-18691, OTP-18692, + OTP-18693, OTP-18694, OTP-18696, OTP-18697, + OTP-18698, OTP-18700, OTP-18701, OTP-18702, + OTP-18704, OTP-18705, OTP-18706, OTP-18707, + OTP-18708, OTP-18710, OTP-18711, OTP-18712, + OTP-18718, OTP-18719, OTP-18721, OTP-18722, + OTP-18723, OTP-18724, OTP-18725, OTP-18729, + OTP-18731, OTP-18732, OTP-18733, OTP-18734, + OTP-18736, OTP-18737, OTP-18738, OTP-18740, + OTP-18745, OTP-18746, OTP-18747, OTP-18748, + OTP-18752, OTP-18753, OTP-18754, OTP-18755, + OTP-18757, OTP-18758, OTP-18759, OTP-18763 +Seq num: ERIERL-43, ERIERL-957, ERIERL-959, + ERIERL-962, ERIERL-963, ERIERL-965, + ERIERL-979, GH-6074, GH-6339, GH-6394, + GH-6460, GH-6461, GH-7119, GH-7162, GH-7258, + GH-7280, GH-7292, GH-7298, GH-7317, GH-7325, + GH-7336, GH-7344, GH-7381, GH-7401, GH-7409, + GH-7410, GH-7413, GH-7417, GH-7431, GH-7436, + GH-7444, GH-7459, GH-7467, GH-7468, GH-7469, + GH-7477, GH-7482, GH-7488, GH-7492, GH-7504, + GH-7506, GH-7507, GH-7510, GH-7517, GH-7524, + GH-7546, GH-7566, GH-7569, GH-7577, GH-7584, + GH-7605, GH-7606, GH-7655 +System: OTP +Release: 26 +Application: asn1-5.2, common_test-1.25.1, compiler-8.4, + crypto-5.3, debugger-5.3.2, dialyzer-5.1.1, + erl_docgen-1.5.1, erts-14.1, inets-9.0.2, + kernel-9.1, megaco-4.5, mnesia-4.22.1, + observer-2.15.1, public_key-1.14.1, + snmp-5.15, ssl-11.0.3, stdlib-5.1 +Predecessor: OTP 26.0.2 + + Check out the git tag OTP-26.1, and build a full OTP system including + documentation. Apply one or more applications from this build as + patches to your installation using the 'otp_patch_apply' tool. For + information on install requirements, see descriptions for each + application version below. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-18746 Application(s): stdlib + Related Id(s): PR-7313, PR-7456 + + *** POTENTIAL INCOMPATIBILITY *** + + A warning for (accidental use of) Triple-Quoted Strings + has been implemented as per EEP 64. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18696 Application(s): stdlib + + Pattern matching and equivalence (=:=, =/=) comparisons + on 0.0 will now raise a warning, as it will no longer + be considered equivalent to -0.0 in OTP 27. + + If a match on 0.0 specifically is desired (distinct + from -0.0), the warning can be suppressed by writing + +0.0 instead. + + The arithmetic comparison operators are unaffected, + including arithmetic equality (==). + + + OTP-18746 Application(s): stdlib + Related Id(s): PR-7313, PR-7456 + + *** HIGHLIGHT *** + + A warning for (accidental use of) Triple-Quoted Strings + has been implemented as per EEP 64. + + + --------------------------------------------------------------------- + --- asn1-5.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18729 Application(s): asn1 + Related Id(s): PR-7575 + + The ASN.1 compiler would ignore a constraint such as + (SIZE (1..4), ...), causing incorrect behavior of the + encoding and decoding function for the PER and UPER + backends. Corrected to handle the constraint in the + same way as (SIZE (1..4, ...)). + + + --- Improvements and New Features --- + + OTP-18748 Application(s): asn1 + Related Id(s): ERIERL-957, PR-7637 + + The JER backend has been internally refactored in a way + that is compatible for applications that use the + documented API. However, for a group of ASN.1 modules + that depend on each other (for example, + S1AP-PDU-Descriptions, S1AP-Contents, and so on), all + modules in the group must be recompiled if on of the + group members is recompiled. + + + Full runtime dependencies of asn1-5.2: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.25.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.25.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14480 Application(s): common_test + Related Id(s): ERIERL-43, OTP-11894, PR-7455 + + With this change, ct_hooks manual refers to CTH + execution order section in user guide. + + + OTP-18579 Application(s): common_test + Related Id(s): GH-7119 + + With this change, Config data from pre_end_per_testcase + hook is delivered to post_end_per_testcase callback in + case of testcase timetrap or linked process crash. + + + OTP-18615 Application(s): common_test + Related Id(s): PR-7234 + + With this change, remaining references to not supported + vts tool in ct_run are removed (mainly relates to docs + and ct_run help message). + + + OTP-18664 Application(s): common_test + Related Id(s): ERIERL-959 + + With this change, prompt search functionality in + ct_telnet handles unicode input. + + + OTP-18676 Application(s): common_test, erl_docgen, erts, kernel, + stdlib + Related Id(s): GH-7459, PR-7473 + + Expanded the documentation about how to use the + standard_io, standard_error and user I/O devices. + + Added the types io:standard_io/0, io:standard:error/0 + and io:user/0. + + + Full runtime dependencies of common_test-1.25.1: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-8.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.4 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18605 Application(s): compiler, stdlib + Related Id(s): GH-7298, GH-7317 + + The compiler could run forever when compiling a call to + is_record/3 with a huge positive tuple size. The call + is_record(A, a, 0) would crash the compiler when used + in a function body. When used in a guard the compiler + would emit incorrect code that would accept {a> as a + record. + + + OTP-18629 Application(s): compiler, dialyzer + Related Id(s): GH-7325 + + Fixed a bug that caused dialyzer to crash when + analyzing bogus code that contained the literal atom + undefined in segment sizes. + + + OTP-18662 Application(s): compiler + Related Id(s): GH-7409, PR-7416 + + The compiler would crash when compiling some modules + that contained a call to erlang:load_nif/2. + + + OTP-18678 Application(s): compiler + Related Id(s): GH-7488 + + Fixed a bug that caused the compiler to crash on legal + code. + + + OTP-18689 Application(s): compiler + Related Id(s): GH-7504, PR-7518 + + The compiler could crash when attempting to compile a + call to is_list/1 in a complex expression. + + + OTP-18692 Application(s): compiler + Related Id(s): GH-7517, PR-7519 + + A complex guard expression using the or operator could + succeed when it was supposed to fail. + + + OTP-18701 Application(s): compiler + Related Id(s): GH-7477, PR-7532 + + Compiling nested try/catch and catch expression could + result in an internal compiler error. + + + OTP-18719 Application(s): compiler + Related Id(s): GH-7468, PR-7562 + + Using the bnot operator in a complex expression could + cause the compiler to terminate with an internal + consistency failure diagnostic. + + + OTP-18721 Application(s): compiler + Related Id(s): PR-7527 + + Fixed a bug that caused the compiler to crash in a + binary optimization pass. + + + OTP-18725 Application(s): compiler + Related Id(s): GH-7467 + + The compiler could terminate with an internal error + when attempting to compile a binary pattern that could + not possibly match. + + + --- Improvements and New Features --- + + OTP-18691 Application(s): compiler + Related Id(s): PR-7448 + + Fixed various performance issues related to the alias + optimization pass. + + + Full runtime dependencies of compiler-8.4: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-5.3 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18670 Application(s): crypto + Related Id(s): GH-7436, PR-7450 + + Fix VM crash caused by crypto being purged and reloaded + (by init:restart for example) on OS with musl libc + (such as Alpine linux). + + + OTP-18758 Application(s): crypto + Related Id(s): PR-7209 + + Improved understanding of LibreSSL versions. Support + chacha20 and chacha20_poly1305 for LibreSSL 3.7. + Reflect removal of support for the DSS/DSA algorithm + which was done in LibreSSL 2.6.1. + + + --- Improvements and New Features --- + + OTP-18666 Application(s): crypto + Related Id(s): PR-7392 + + FIPS supported by crypto for OpenSSL 3.0.* and 3.1.*. + + + Full runtime dependencies of crypto-5.3: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- debugger-5.3.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-5.3.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18644 Application(s): debugger + Related Id(s): GH-7336 + + The call int:no_break(Module) did not remove any + breakpoints. + + + OTP-18740 Application(s): debugger + Related Id(s): GH-7410, PR-7599 + + The maybe expression is now supported in the Debugger. + + + Full runtime dependencies of debugger-5.3.2: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-5.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18629 Application(s): compiler, dialyzer + Related Id(s): GH-7325 + + Fixed a bug that caused dialyzer to crash when + analyzing bogus code that contained the literal atom + undefined in segment sizes. + + + OTP-18738 Application(s): dialyzer + Related Id(s): GH-7584 + + Dialyzer could crash when attempting to analyze a + module that defined a type called product/. + + + Full runtime dependencies of dialyzer-5.1.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.5.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18676 Application(s): common_test, erl_docgen, erts, kernel, + stdlib + Related Id(s): GH-7459, PR-7473 + + Expanded the documentation about how to use the + standard_io, standard_error and user I/O devices. + + Added the types io:standard_io/0, io:standard:error/0 + and io:user/0. + + + Full runtime dependencies of erl_docgen-1.5.1: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-14.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18592 Application(s): erts + + maps:put with existing key and identical value was not + optimized as a no-op correctly if having the same + 32-bit hash as another key in the map. In practice very + rare and harmless. + + + OTP-18623 Application(s): erts, kernel + Related Id(s): GH-7344 + + Fixed an issue with truncated crash slogans on failed + emulator start. + + + OTP-18645 Application(s): erts + Related Id(s): GH-7401 + + Fixed a bug where the emulator was unable to determine + the current cgroup CPU quota. + + + OTP-18647 Application(s): erts + Related Id(s): PR-7595 + + A process optimized for parallel signal delivery could + under some circumstances lose wakeup information. That + is, the processes was not woken up to take care of the + signal, so the signal would not be taken care of until + the process was woken by another signal. Only processes + configured with message_queue_data set to off_heap + utilize this optimization. + + + OTP-18669 Application(s): erts, kernel + Related Id(s): OTP-18029 + + Function socket:close/1 could cause a VM crash on + Windows. + + + OTP-18672 Application(s): erts + Related Id(s): GH-7469 + + Fixed a bug in the ARM JIT where it could accidentally + add garbage trailing bits when creating bitstrings + whose size wasn't an even multiple of 8 bits. + + + OTP-18674 Application(s): erts + Related Id(s): PR-7472 + + Fix erlang:system_info/1 documentation to show correct + types. + + + OTP-18676 Application(s): common_test, erl_docgen, erts, kernel, + stdlib + Related Id(s): GH-7459, PR-7473 + + Expanded the documentation about how to use the + standard_io, standard_error and user I/O devices. + + Added the types io:standard_io/0, io:standard:error/0 + and io:user/0. + + + OTP-18702 Application(s): erts + Related Id(s): GH-7381 + + Fix compilation with GNU termcap. + + + OTP-18706 Application(s): erts + Related Id(s): ERIERL-979, GH-7413, PR-7595 + + Delivery time of message signals to a process not + executing any receive expressions could become very + long, potentially infinite. For example, a process + checking for messages using process_info(self(), + message_queue_len) or process_info(self(), messages) + and avoiding to execute a receive expression matching + on messages could be very slow in detecting new + messages. Note that you are still discouraged from + using process_info() this way. A process that wants to + check if there are messages available to handle should + execute a receive expression matching on messages. + + + OTP-18724 Application(s): erts + Related Id(s): GH-7566, PR-7567 + + On AArch64 (ARM64), when calculating both the quotient + and remainder with a divisor begin a power two, the + remainder could be incorrectly calculated. + + + OTP-18732 Application(s): erts + Related Id(s): GH-7444, PR-7458 + + Fix bug causing "magic" references in a compressed ETS + table to not keep the referred object alive. The + symptom would be the referred object being garbage + collected prematurely and the reference appearing + stale, not referring to anything. Examples of such + magically referred objects are atomics and NIF + resources. + + + OTP-18733 Application(s): erts + Related Id(s): GH-7292 + + Matching out short bitstrings with a fixed size not + divisible by 8 could could lead to the runtime system + terminating with an "Overrun heap and stack" error. + + + OTP-18737 Application(s): erts + Related Id(s): PR-7595 + + A constant flow of incoming non-message signals could + prevent a process needing to execute dirty from doing + so. + + + OTP-18745 Application(s): erts + Related Id(s): GH-7492, PR-7616 + + A BEAM file usually contains a chunk with the tag + "Type" containing type information that can be used by + the JIT. The beam_lib:strip/1 takes care to preserve + that chunk, but a build/release tool that does + customized stripping could accidentally remove the + chunk. Loading a BEAM file without the "Type" chunk + could cause incorrect behavior of the loaded code. + + + OTP-18747 Application(s): erts, kernel + Related Id(s): GH-7605 + + gen_udp:recv/* for Unix Domain Socket in binary mode + and passive mode has been fixed to not crash. + + + OTP-18752 Application(s): erts + Related Id(s): PR-7633 + + The cleanup operation of not yet delivered signals to a + terminated process yielded excessively. + + + OTP-18753 Application(s): erts + Related Id(s): PR-7634 + + Fixed minor hashing issue with the local option of + term_to_binary()/term_to_iovec(). + + + --- Improvements and New Features --- + + OTP-18586 Application(s): erts, kernel + Related Id(s): OTP-18029 + + Update gen_tcp_socket and gen_udp_socket to handle + 'completion' (socket on Windows). + + + OTP-18611 Application(s): erts, kernel + Related Id(s): #5024, OTP-18029 + + Add support for Unix Domain Sockets (only for STREAM + sockets) on Windows for 'socket'. + + + OTP-18638 Application(s): erts + + In Erlang/OTP 27, by default escripts will be compiled + before being executed. That means that the compiler + application must be installed. It is possible to force + the escript to be interpreted by adding the directive + -mode(interpret). to the escript file. + + In Erlang/OTP 28, support for interpreting an escript + will be removed. + + + OTP-18660 Application(s): erts, kernel + + Add basic support for socket ioctl on Windows. + + + OTP-18661 Application(s): erts + Related Id(s): PR-6112 + + Removed erts/etc/darwin/Info.plist, as it is no longer + necessary after macos 10.12 + + + OTP-18686 Application(s): erts, kernel + + Add support for (Windows) socket option + exclusiveaddruse. + + + OTP-18687 Application(s): erts, kernel + + [socket] Add support for the 'nopush' option. + + + OTP-18693 Application(s): erts, kernel + + Add support for socket option 'BSP STATE'. + + + OTP-18698 Application(s): erts, kernel + + Add tcp socket options 'keepcnt', 'keepidle' and + 'keepintvl'. + + + OTP-18710 Application(s): erts, kernel + + Add support for misc (Windows) socket options + ('max_msg_size' and 'maxdg'). + + + Full runtime dependencies of erts-14.1: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- inets-9.0.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-9.0.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18582 Application(s): inets + Related Id(s): GH-6074, PR-6892 + + With this change, re_write httpd works as expected and + does not return error. + + + OTP-18688 Application(s): inets + Related Id(s): ERIERL-962 + + Fixed a bug so httpd does not crash when stopped at the + wrong time during TLS connection negotiation, or any + other theoretically as slow connection setup. + + + OTP-18694 Application(s): inets + Related Id(s): GH-7482 + + Enhance error handling and avoid that the HTTP client + hangs on headers provided on the wrong format. + + + OTP-18704 Application(s): inets + Related Id(s): ERIERL-962, OTP-18688, PR-7513 + + With this change, error report generated by httpd + during connection setup contains socket type + information. + + + OTP-18708 Application(s): inets + Related Id(s): ERIERL-962, OTP-18688 + + Stop and restart of the httpd server in the Inets + application has been refactored to a more synchronous + and OTP supervisor friendly approach. + + This should increase stability and for example avoid a + supervisor report from httpd_connection_sup about + killed child process(es) in some cases when stopping or + restarting httpd. + + + Full runtime dependencies of inets-9.0.2: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- kernel-9.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-9.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18623 Application(s): erts, kernel + Related Id(s): GH-7344 + + Fixed an issue with truncated crash slogans on failed + emulator start. + + + OTP-18628 Application(s): kernel + Related Id(s): GH-7280 + + Fix shell:start_interactive function specification. + + + OTP-18654 Application(s): kernel + Related Id(s): PR-7404 + + Fix code:get_doc/1 to return missing, when it can't + find erts instead of crashing. + + + OTP-18669 Application(s): erts, kernel + Related Id(s): OTP-18029 + + Function socket:close/1 could cause a VM crash on + Windows. + + + OTP-18675 Application(s): kernel, stdlib + Related Id(s): GH-7459, PR-7473 + + Fix deadlock when erl.exe is used as part of a pipe on + Windows and trying to set the encoding of the + standard_io device. + + + OTP-18676 Application(s): common_test, erl_docgen, erts, kernel, + stdlib + Related Id(s): GH-7459, PR-7473 + + Expanded the documentation about how to use the + standard_io, standard_error and user I/O devices. + + Added the types io:standard_io/0, io:standard:error/0 + and io:user/0. + + + OTP-18677 Application(s): kernel + Related Id(s): GH-7417, PR-7418 + + Fix logger's overload protection mechanism to only + fetch memory used by messages when needed. + + + OTP-18685 Application(s): kernel + + Fixed a number of socket-related issues causing + incompatibilities with gen_tcp and gen_udp + respectively. + + + OTP-18707 Application(s): kernel + Related Id(s): #7530 + + gen_tcp:connect with socket address and socket (inet-) + backend fails because of missing callback function. + + + OTP-18731 Application(s): kernel + Related Id(s): GH-7577, PR-7578 + + The DNS RR cache used by `inet_res` has been fixed to + preserve insert order, which is beneficial when the DNS + server returns RRs in some specific order for e.g load + balancing purposes. + + + OTP-18734 Application(s): kernel + Related Id(s): GH-6461, GH-7569, OTP-18344, PR-6522 + + The options `reuseport`, `reuseport_lb` and + `exclusiveaddruse` were accidentally not allowed for + e.g `gen_udp:open/1,2`, which has now been corrected. + + + OTP-18747 Application(s): erts, kernel + Related Id(s): GH-7605 + + gen_udp:recv/* for Unix Domain Socket in binary mode + and passive mode has been fixed to not crash. + + + OTP-18757 Application(s): kernel + Related Id(s): PR-7631 + + Fixed issue where cursor would not be placed at the end + of the expression when navigating shell history. + + + --- Improvements and New Features --- + + OTP-18586 Application(s): erts, kernel + Related Id(s): OTP-18029 + + Update gen_tcp_socket and gen_udp_socket to handle + 'completion' (socket on Windows). + + + OTP-18611 Application(s): erts, kernel + Related Id(s): #5024, OTP-18029 + + Add support for Unix Domain Sockets (only for STREAM + sockets) on Windows for 'socket'. + + + OTP-18660 Application(s): erts, kernel + + Add basic support for socket ioctl on Windows. + + + OTP-18681 Application(s): kernel + + The file:location/0 type is now exported. + + + OTP-18686 Application(s): erts, kernel + + Add support for (Windows) socket option + exclusiveaddruse. + + + OTP-18687 Application(s): erts, kernel + + [socket] Add support for the 'nopush' option. + + + OTP-18693 Application(s): erts, kernel + + Add support for socket option 'BSP STATE'. + + + OTP-18698 Application(s): erts, kernel + + Add tcp socket options 'keepcnt', 'keepidle' and + 'keepintvl'. + + + OTP-18710 Application(s): erts, kernel + + Add support for misc (Windows) socket options + ('max_msg_size' and 'maxdg'). + + + OTP-18754 Application(s): kernel, stdlib + Related Id(s): PR-7604, PR-7647 + + The keyboard shortcuts for the shell are now + configurable. + + + OTP-18755 Application(s): kernel + Related Id(s): PR-7503 + + Optimized code_server to reduce repeated work when + loading the same module concurrently. + + + Full runtime dependencies of kernel-9.1: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- megaco-4.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The megaco-4.5 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18599 Application(s): megaco + Related Id(s): OTP-18029 + + Make megaco transports handle gen_tcp | gen_udp with + socket backend on Windows (completion). + + + Full runtime dependencies of megaco-4.5: asn1-3.0, debugger-4.0, + erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.22.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.22.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18711 Application(s): mnesia + Related Id(s): ERIERL-963 + + Do not delete old backup file if the new backup fails. + + + Full runtime dependencies of mnesia-4.22.1: erts-9.0, kernel-5.3, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- observer-2.15.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.15.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18722 Application(s): observer + Related Id(s): PR-7462 + + Closing the trace log window via the menu did not work. + + + Full runtime dependencies of observer-2.15.1: erts-14.0, et-1.5, + kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + + + --------------------------------------------------------------------- + --- public_key-1.14.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.14.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18718 Application(s): public_key + Related Id(s): GH-7546 + + Country name comparison shall be case insensitive + + + OTP-18723 Application(s): public_key + Related Id(s): GH-6394 + + Add check to disallow duplicate certs in a path + + + Full runtime dependencies of public_key-1.14.1: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- snmp-5.15 ------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.15 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18598 Application(s): snmp + Related Id(s): OTP-18029 + + Make snmp handle gen_udp with socket backend on Windows + (completion). + + + Full runtime dependencies of snmp-5.15: crypto-4.6, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-11.0.3 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18697 Application(s): ssl + Related Id(s): GH-7506 + + Avoid function clause error in ssl:getopts/2 by + handling that inet:getopts may return an empty list + during some circumstances, such as the socket being in + a closing state. + + + OTP-18700 Application(s): ssl + Related Id(s): GH-7507 + + The API function `ssl:recv/3` has been tightened to + disallow negative length, which has never been + documented to work, but was passed through and caused + strange errors. + + + OTP-18712 Application(s): ssl + Related Id(s): GH-7431 + + When a client initiated renegotiation was rejected and + the client socket was in active mode the expected error + message to the controlling process was not sent. + + + --- Improvements and New Features --- + + OTP-18631 Application(s): ssl + + Add some guidance for signature algorithms + configuration in ssl applications users guide. + + + Full runtime dependencies of ssl-11.0.3: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-5.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18605 Application(s): compiler, stdlib + Related Id(s): GH-7298, GH-7317 + + The compiler could run forever when compiling a call to + is_record/3 with a huge positive tuple size. The call + is_record(A, a, 0) would crash the compiler when used + in a function body. When used in a guard the compiler + would emit incorrect code that would accept {a> as a + record. + + + OTP-18614 Application(s): stdlib + Related Id(s): GH-7162, PR-7237 + + Fix bug in ets:tab2file that could make it fail if + another Erlang process created the same file at the + same time. + + + OTP-18616 Application(s): stdlib + Related Id(s): GH-7258 + + An {else_clause,Value} exception will now be reported + nicely in the shell. + + + OTP-18627 Application(s): stdlib + Related Id(s): PR-7072 + + Correct return value for error case, so that it matches + the documented and intended return value {error, + {already_started, pid()} when local registered names + are used. + + + OTP-18633 Application(s): stdlib + + sys:get_state/1,2 and sys:replace_state/2,3 has been + corrected to handle a state named error as a state + name, not as a failed system callback. + + For the standard server behaviours this was an issue + only for gen_statem (and gen_fsm) when the state name + was error, and for gen_server if the complete state was + {error,_}. + + + OTP-18655 Application(s): stdlib + Related Id(s): GH-6460, PR-7208 + + Multiple problems were fixed in + filelib:safe_relative_path/2. If its second argument + was a path that contained symbolic links, an incorrect + result patch could be returned. Also, paths were + sometimes falsely considered unsafe. + + + OTP-18675 Application(s): kernel, stdlib + Related Id(s): GH-7459, PR-7473 + + Fix deadlock when erl.exe is used as part of a pipe on + Windows and trying to set the encoding of the + standard_io device. + + + OTP-18676 Application(s): common_test, erl_docgen, erts, kernel, + stdlib + Related Id(s): GH-7459, PR-7473 + + Expanded the documentation about how to use the + standard_io, standard_error and user I/O devices. + + Added the types io:standard_io/0, io:standard:error/0 + and io:user/0. + + + OTP-18683 Application(s): stdlib + Related Id(s): PR-7502 + + Fix h/2,3 to properly render multi-clause + documentation. + + + OTP-18759 Application(s): stdlib + Related Id(s): GH-7606 + + Timers created by timer:apply_after/4, + apply_interval/4, and apply_repeatedly/4 would silently + fail to do the apply if it was not possible to spawn a + process when the timer expired. This has now been + corrected, and if the spawn fails, the system will be + taken down producing a crash dump. + + + OTP-18763 Application(s): stdlib + Related Id(s): GH-7655 + + When an Erlang source file lacked a module definition, + there would be a spurious "module name must not be + empty" diagnostic for each spec in the file. + + + --- Improvements and New Features --- + + OTP-18679 Application(s): stdlib + Related Id(s): ERIERL-965 + + The argument descriptions for option types in argparse + have been made less ambiguous. + + + OTP-18690 Application(s): stdlib + Related Id(s): GH-7510, PR-7511 + + Clarified the documentation of normal shutdown reason + on gen_server:call/2,3 + + + OTP-18696 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Pattern matching and equivalence (=:=, =/=) comparisons + on 0.0 will now raise a warning, as it will no longer + be considered equivalent to -0.0 in OTP 27. + + If a match on 0.0 specifically is desired (distinct + from -0.0), the warning can be suppressed by writing + +0.0 instead. + + The arithmetic comparison operators are unaffected, + including arithmetic equality (==). + + + OTP-18705 Application(s): stdlib + Related Id(s): GH-6339, GH-7524, OTP-18471, PR-6843 + + The semantics of the gen_{server,statem,event} + behaviour's synchronous start behaviour introduced in + OTP-26.0 with OTP-18471, has been clarified in the + documentation. + + + OTP-18736 Application(s): stdlib + Related Id(s): PR-7564 + + Added functionality to set a custom multiline prompt. + + + OTP-18746 Application(s): stdlib + Related Id(s): PR-7313, PR-7456 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + A warning for (accidental use of) Triple-Quoted Strings + has been implemented as per EEP 64. + + + OTP-18754 Application(s): kernel, stdlib + Related Id(s): PR-7604, PR-7647 + + The keyboard shortcuts for the shell are now + configurable. + + + Full runtime dependencies of stdlib-5.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.2.1.README.txt b/release-notes/OTP-26.2.1.README.txt new file mode 100644 index 0000000..cced400 --- /dev/null +++ b/release-notes/OTP-26.2.1.README.txt @@ -0,0 +1,101 @@ +Patch Package: OTP 26.2.1 +Git Tag: OTP-26.2.1 +Date: 2023-12-18 +Trouble Report Id: OTP-18897, OTP-18902, OTP-18903 +Seq num: +System: OTP +Release: 26 +Application: erts-14.2.1, ssh-5.1.1 +Predecessor: OTP 26.2 + + Check out the git tag OTP-26.2.1, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18897 Application(s): ssh + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + --------------------------------------------------------------------- + --- OTP-26.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18903 Application(s): otp + + Updated copyright and license information. + + + --------------------------------------------------------------------- + --- erts-14.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18902 Application(s): erts + + Removed unnecessary PCRE source tar-ball. + + + Full runtime dependencies of erts-14.2.1: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- ssh-5.1.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-5.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18897 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + With this change (being response to CVE-2023-48795), + ssh can negotiate "strict KEX" OpenSSH extension with + peers supporting it; also + '[email protected]' algorithm becomes a + less preferred cipher. + + If strict KEX availability cannot be ensured on both + connection sides, affected encryption modes(CHACHA and + CBC) can be disabled with standard ssh configuration. + This will provide protection against vulnerability, but + at a cost of affecting interoperability. See + Configuring algorithms in SSH. + + + Full runtime dependencies of ssh-5.1.1: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.2.2.README.txt b/release-notes/OTP-26.2.2.README.txt new file mode 100644 index 0000000..e73a91c --- /dev/null +++ b/release-notes/OTP-26.2.2.README.txt @@ -0,0 +1,178 @@ +Patch Package: OTP 26.2.2 +Git Tag: OTP-26.2.2 +Date: 2024-02-08 +Trouble Report Id: OTP-18901, OTP-18911, OTP-18917, OTP-18931, + OTP-18932, OTP-18949, OTP-18957, OTP-18964 +Seq num: ERIERL-1023, GH-7978, GH-7987, GH-8051 +System: OTP +Release: 26 +Application: common_test-1.26.1, erl_interface-5.5.1, + erts-14.2.2, kernel-9.2.1, ssh-5.1.2, + ssl-11.1.1 +Predecessor: OTP 26.2.1 + + Check out the git tag OTP-26.2.2, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- common_test-1.26.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.26.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18932 Application(s): common_test + + Fix how CT finds Erlang/OTP releases for compatability + testing. This functionality is only used to test + Erlang/OTP. + + + Full runtime dependencies of common_test-1.26.1: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- erl_interface-5.5.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.5.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18931 Application(s): erl_interface, erts + Related Id(s): GH-7987, PR-7989 + + Fix bug where the system installed openssl/md5.h would + be confused with the vendored md5.h. + + + --------------------------------------------------------------------- + --- erts-14.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.2.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18911 Application(s): erts + Related Id(s): ERIERL-1023, PR-7983 + + 32-bit runtime systems on most Unix like platforms + could crash if a BIF timer was set with a huge timeout + of more than 68 years into the future. In order for the + crash to occur, the huge timer (at a later time than + when it was set) had to become the nearest active timer + set on the specific scheduler on which it was set. This + could not happen on a system with only one scheduler + since there would always be shorter timers in the + system. + + Setting a timer larger than 49 days on Windows could + under rare circumstances cause the timeout to be + delayed. + + + OTP-18931 Application(s): erl_interface, erts + Related Id(s): GH-7987, PR-7989 + + Fix bug where the system installed openssl/md5.h would + be confused with the vendored md5.h. + + + OTP-18949 Application(s): erts + + The JIT has now been disabled on x86 Macs to prevent + annoying the "verifying shm-xyz" popups introduced in + MacOS Sonoma. + + ARM Macs are unaffected. + + + OTP-18957 Application(s): erts + Related Id(s): GH-8051, OTP-18841, PR-8088 + + Garbage collection of a process on a dirty scheduler + could collide with signal handling for that process + causing a crash of the runtime system. This bug was + introduced in OTP 25.3.2.8 and OTP 26.2. + + + Full runtime dependencies of erts-14.2.2: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- kernel-9.2.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-9.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18901 Application(s): kernel + + Fix group (that is the shell) to properly handle when + an get_until callback function returned {done, eof, []} + when an eof was detected. + + + Full runtime dependencies of kernel-9.2.1: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssh-5.1.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-5.1.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18964 Application(s): ssh + + With this change, Curve25519 and Curve448 KEX methods + become most preferred (related to RFC8731). + + + Full runtime dependencies of ssh-5.1.2: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-11.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18917 Application(s): ssl + Related Id(s): GH-7978 + + Legacy name handling could cause interop problems + between TLS-1.3/1.2 client and TLS-1.2 server. + + + Full runtime dependencies of ssl-11.1.1: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.2.3.README.txt b/release-notes/OTP-26.2.3.README.txt new file mode 100644 index 0000000..295f620 --- /dev/null +++ b/release-notes/OTP-26.2.3.README.txt @@ -0,0 +1,436 @@ +Patch Package: OTP 26.2.3 +Git Tag: OTP-26.2.3 +Date: 2024-03-07 +Trouble Report Id: OTP-18890, OTP-18900, OTP-18906, OTP-18907, + OTP-18909, OTP-18910, OTP-18919, OTP-18921, + OTP-18924, OTP-18926, OTP-18935, OTP-18936, + OTP-18937, OTP-18940, OTP-18948, OTP-18952, + OTP-18953, OTP-18962, OTP-18971, OTP-18974, + OTP-18979, OTP-18982, OTP-18985, OTP-18986, + OTP-18988, OTP-18990, OTP-18991, OTP-18996, + OTP-19002, OTP-19003, OTP-19006, OTP-19007, + OTP-19008, OTP-19009, OTP-19011 +Seq num: ERIERL-1041, ERIERL-1049, GH-7911, GH-7924, + GH-7934, GH-7968, GH-8016, GH-8021, GH-8024, + GH-8044, GH-8079, GH-8119, GH-8158, GH-8187, + PR-7750, PR-7930, PR-7932, PR-7933, PR-7945, + PR-7984, PR-8025, PR-8046, PR-8075, PR-8173, + PR-8174, PR-8181, PR-8189, PR-8201 +System: OTP +Release: 26 +Application: compiler-8.4.2, crypto-5.4.1, erts-14.2.3, + kernel-9.2.2, odbc-2.14.2, public_key-1.15.1, + ssh-5.1.3, ssl-11.1.2, stdlib-5.2.1, wx-2.4.1 +Predecessor: OTP 26.2.2 + + Check out the git tag OTP-26.2.3, and build a full OTP system + including documentation. Apply one or more applications from this + build as patches to your installation using the 'otp_patch_apply' + tool. For information on install requirements, see descriptions for + each application version below. + + --------------------------------------------------------------------- + --- OTP-26.2.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18924 Application(s): otp + + Quote uninstall path in registry when installing on + windows. + + + --------------------------------------------------------------------- + --- compiler-8.4.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.4.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-19003 Application(s): compiler + Related Id(s): GH-8187, PR-8189 + + In rare circumstances, an unsafe optimization could + cause the compiler to generate incorrect code for list + matching. + + + --- Improvements and New Features --- + + OTP-18936 Application(s): compiler + + Fix the compilation server to restart if the + applications in its lib dir changes inbetween erlc + invokations. + + + Full runtime dependencies of compiler-8.4.2: crypto-5.1, erts-13.0, + kernel-8.4, stdlib-5.0 + + + --------------------------------------------------------------------- + --- crypto-5.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.4.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18921 Application(s): crypto + + Fix compile error when OPENSSL_NO_DES is defined. + + + OTP-18996 Application(s): crypto + Related Id(s): PR-8173, PR-8174 + + The function crypto:pbkdf2_hmac will no longer block + the main schedulers. If the iteration count or block + size parameters are such that the function is likely to + take a long time to execute, the function will be + scheduled to run on a dirty CPU scheduler. + + + Full runtime dependencies of crypto-5.4.1: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- erts-14.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.2.3 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18906 Application(s): erts + Related Id(s): PR-7930 + + Fixed compile warning in erl_nif.c for gcc-13. + + + OTP-18907 Application(s): erts + Related Id(s): PR-7932 + + Fix C++ compile error for macros enif_select_read and + friends. + + + OTP-18940 Application(s): erts + Related Id(s): GH-8024 + + Fixed a name clash on Solaris that prevented the JIT + from being built. + + + OTP-18952 Application(s): erts + Related Id(s): PR-8025 + + Fix termcap detection on solaris. + + + OTP-18971 Application(s): erts + Related Id(s): GH-8044 + + Fix heap corruption bug that could cause runaway memory + consumption due to circular offheap list at process + exit. Other symptoms may also be possible. Bug exists + since OTP 25.0. + + + OTP-18979 Application(s): erts + + Do not clear tracing in old module instance if load + fails with 'not_purged'. + + + OTP-18982 Application(s): erts + + When exceeding the `max_heap_size` limit in a garbage + collection initiated by some bit syntax operations, the + process would not always terminate immediately. + + + OTP-19006 Application(s): erts + + The code server could be hanging if a module with + on_load function was loaded at the same time as another + module was purged using erlang:purge_module directly. + + + OTP-19008 Application(s): erts + Related Id(s): GH-8119, PR-8201 + + A process optimized for parallel signal delivery could + under some circumstances lose wakeup information. That + is, the processes was not woken up to take care of the + signal, so the signal would not be taken care of until + the process was woken by another signal. Only processes + configured with message_queue_data set to off_heap + utilize this optimization. + + + OTP-19009 Application(s): erts + Related Id(s): PR-8181 + + Fix segfault when generating crashdump containing a fun + places in persistent_term storage. + + + OTP-19011 Application(s): erts + + By default the JIT is disabled on Intel Macs, because + of annoying poups on macOS Sonoma. It is now possible + to explicitly enable the JIT on Intel Macs. Here is + how: ./configure --enable-jit + + + Full runtime dependencies of erts-14.2.3: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- kernel-9.2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-9.2.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18910 Application(s): kernel + Related Id(s): GH-7924, PR-7933 + + Fix performance bug when using io:fread to read from + standard_io. This regression was introduced in OTP + 26.0. + + + OTP-18948 Application(s): kernel + Related Id(s): PR-8046 + + A bug in the code server could cause it to crash in + some concurrent scenarios. This bug was introduced in + 26.1. + + + OTP-18990 Application(s): kernel + Related Id(s): GH-8158 + + Fixed gen_udp:open/2 type spec to include already + supported module socket address types. + + + OTP-19007 Application(s): kernel, ssh + Related Id(s): ERIERL-1049 + + Fix reading of password for ssh client when in + user_interactive mode. + + + Full runtime dependencies of kernel-9.2.2: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- odbc-2.14.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.14.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18926 Application(s): odbc + + Use spec for API doc + + + Full runtime dependencies of odbc-2.14.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.15.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.15.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18935 Application(s): public_key + Related Id(s): GH-8021 + + Hostname prefix with X number of dots should not be + accepted. + + + Full runtime dependencies of public_key-1.15.1: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-5.1.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-5.1.3 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18974 Application(s): ssh + + With this change, acceptor_sup is not started for ssh + client as it is not needed in that role. + + + OTP-18986 Application(s): ssh + + With this change, more secure algorithms are preferred + by ssh and documentation is updated to reflect that. + + + OTP-19002 Application(s): ssh + Related Id(s): ERIERL-1041 + + With this change, KEX strict terminal message is + emitted with debug verbosity. + + + OTP-19007 Application(s): kernel, ssh + Related Id(s): ERIERL-1049 + + Fix reading of password for ssh client when in + user_interactive mode. + + + Full runtime dependencies of ssh-5.1.3: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.1.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-11.1.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18890 Application(s): ssl + Related Id(s): GH-7911 + + ssl:prf/5, will start working instead of hanging in a + TLS-1.3 context if called appropriately. Note that the + implementation has changed and in OTP-27 a more + adequate API will be documented. + + + OTP-18909 Application(s): ssl + Related Id(s): GH-7968 + + Server name verification didn't work if a connection + was made with IP-address as a string. + + + OTP-18919 Application(s): ssl + Related Id(s): PR-7984 + + The fallback after "dh" ssl option was undefined was to + get "dh" from ssl options again. This is clearly wrong + and now changed to the documented fallback "dhfile" ssl + option. + + + OTP-18962 Application(s): ssl + Related Id(s): GH-8079 + + Correct default value selection for DTLS. Will only + affect users linked with really old version of + cryptolib library. + + + OTP-18991 Application(s): ssl + + Adhere elliptic curves with RFC 8422 pre TLS-1.3, that + is Edwards curves are added to curves that can be used + for key exchange, and documentation and implementation + of eccs/0,1 are aligned. + + + --- Improvements and New Features --- + + OTP-18985 Application(s): ssl + + Improve alert reason when ecdhe_rsa key_exchange does + not have any common curves to use + + + Full runtime dependencies of ssl-11.1.2: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.2.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-5.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18900 Application(s): stdlib + Related Id(s): GH-7934, PR-7945 + + The help texts shown by argparse will now display + sub-command arguments in the correct order. + + + OTP-18937 Application(s): stdlib + + Clarified the argparse documentation regarding the + user-defined help template. + + + OTP-18953 Application(s): stdlib + Related Id(s): GH-8016, PR-8075 + + Fix shell expansion to not crash when expanding invalid + using invalid atoms. + + + Full runtime dependencies of stdlib-5.2.1: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.4.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18988 Application(s): wx + Related Id(s): PR-7750 + + Add option to silence wx depracation macros. + + + Full runtime dependencies of wx-2.4.1: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-26.2.README.txt b/release-notes/OTP-26.2.README.txt new file mode 100644 index 0000000..8a6328a --- /dev/null +++ b/release-notes/OTP-26.2.README.txt @@ -0,0 +1,1134 @@ +Patch Package: OTP 26.2 +Git Tag: OTP-26.2 +Date: 2023-12-13 +Trouble Report Id: OTP-16607, OTP-17844, OTP-18728, OTP-18730, + OTP-18735, OTP-18739, OTP-18749, OTP-18751, + OTP-18760, OTP-18762, OTP-18764, OTP-18765, + OTP-18767, OTP-18771, OTP-18772, OTP-18775, + OTP-18776, OTP-18777, OTP-18782, OTP-18798, + OTP-18799, OTP-18800, OTP-18802, OTP-18810, + OTP-18811, OTP-18812, OTP-18814, OTP-18815, + OTP-18817, OTP-18818, OTP-18821, OTP-18822, + OTP-18823, OTP-18824, OTP-18826, OTP-18827, + OTP-18828, OTP-18829, OTP-18830, OTP-18832, + OTP-18833, OTP-18836, OTP-18838, OTP-18839, + OTP-18840, OTP-18841, OTP-18842, OTP-18843, + OTP-18844, OTP-18850, OTP-18853, OTP-18854, + OTP-18855, OTP-18857, OTP-18858, OTP-18861, + OTP-18866, OTP-18867, OTP-18868, OTP-18869, + OTP-18871, OTP-18872, OTP-18873, OTP-18877, + OTP-18880, OTP-18882, OTP-18883, OTP-18885, + OTP-18886, OTP-18888, OTP-18891, OTP-18893, + OTP-18895, OTP-18896, OTP-18899 +Seq num: ERIERL-738, ERIERL-994, ERIERL-997, GH-7515, + GH-7548, GH-7571, GH-7580, GH-7591, GH-7608, + GH-7621, GH-7625, GH-7676, GH-7685, GH-7735, + GH-7736, GH-7766, GH-7795, GH-7801, GH-7827, + GH-7832, GH-7834, GH-7838, GH-7875, GH-7890, + GH-7914 +System: OTP +Release: 26 +Application: asn1-5.2.1, common_test-1.26, crypto-5.4, + debugger-5.3.3, dialyzer-5.1.2, + diameter-2.3.1, edoc-1.2.1, eldap-1.2.12, + erl_docgen-1.5.2, erl_interface-5.5, + erts-14.2, eunit-2.9, ftp-1.2.1, inets-9.1, + kernel-9.2, mnesia-4.23, os_mon-2.9.1, + public_key-1.15, runtime_tools-2.0.1, + ssh-5.1, ssl-11.1, stdlib-5.2, tftp-1.1.1, + wx-2.4, xmerl-1.3.34 +Predecessor: OTP 26.1.2 + + Check out the git tag OTP-26.2, and build a full OTP system including + documentation. Apply one or more applications from this build as + patches to your installation using the 'otp_patch_apply' tool. For + information on install requirements, see descriptions for each + application version below. + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-18728 Application(s): common_test + Related Id(s): PR-7487, PR-7674 + + With this change, common_test returns an error when + suite with a badly defined group is executed. + + + --------------------------------------------------------------------- + --- OTP-26.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + --- Improvements and New Features --- + + OTP-18840 Application(s): otp, stdlib + Related Id(s): PR-7629 + + The removal of the deprecated slave module, originally + planned for OTP 27, has been postponed to OTP 29. + + + OTP-18896 Application(s): otp + + Updated copyright and license information. + + + --------------------------------------------------------------------- + --- asn1-5.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-5.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18844 Application(s): asn1 + + Fix benign warning from gcc 11 about mismatching call + to free(). + + + Full runtime dependencies of asn1-5.2.1: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.26 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.26 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18728 Application(s): common_test + Related Id(s): PR-7487, PR-7674 + + *** POTENTIAL INCOMPATIBILITY *** + + With this change, common_test returns an error when + suite with a badly defined group is executed. + + + OTP-18760 Application(s): common_test + + With this change, stylesheet option is applied to all + HTML report pages. + + + OTP-18799 Application(s): common_test, erl_docgen, xmerl + Related Id(s): PR-7695 + + Update all <tt> html tags to be <code> instead. + + + --- Improvements and New Features --- + + OTP-18858 Application(s): common_test + Related Id(s): PR-7825 + + This change fixes docs, so that historically deprecated + ?config macro is no longer recommended to be used. + + + Full runtime dependencies of common_test-1.26: compiler-6.0, + crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, + observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, + stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- crypto-5.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-5.4 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18895 Application(s): crypto, erl_interface, os_mon, + runtime_tools + + Fixed some benign compile warnings on Windows. + + + --- Improvements and New Features --- + + OTP-18832 Application(s): crypto + Related Id(s): PR-7763 + + Enable engine support for OpenSSL versions 3. + + + Full runtime dependencies of crypto-5.4: erts-9.0, kernel-5.3, + stdlib-3.9 + + + --------------------------------------------------------------------- + --- debugger-5.3.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-5.3.3 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18888 Application(s): debugger + Related Id(s): GH-7914 + + Map comprehensions now work in the Debugger. + + + Full runtime dependencies of debugger-5.3.3: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-5.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-5.1.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18767 Application(s): dialyzer + Related Id(s): PR-7657 + + Fix dialyzer --output flag to work. This option was + accidentally removed in OTP 26.0. + + + OTP-18772 Application(s): dialyzer + Related Id(s): GH-7676 + + Fixed a crash in contract checking relating to opaque + types. + + + Full runtime dependencies of dialyzer-5.1.2: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.3.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + Full runtime dependencies of diameter-2.3.1: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- edoc-1.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The edoc-1.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18782 Application(s): edoc + Related Id(s): PR-7643 + + Emit <code> instead of <tt>. + + + Full runtime dependencies of edoc-1.2.1: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-2.0, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.12 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.12 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18810 Application(s): eldap + + Add missing dependency to asn1 application + + + Full runtime dependencies of eldap-1.2.12: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_docgen-1.5.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.5.2 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18775 Application(s): erl_docgen + Related Id(s): PR-7663 + + Fix erl_docgen dtd to only allow a single + datatype_title within a datatypes block. + + + OTP-18776 Application(s): erl_docgen + Related Id(s): PR-7663 + + Fix so that EEP-48 doc chunks include the module + summary and generates equiv tags in the correct order. + + The function/type group title is now also included in + the entry metadata. + + + OTP-18799 Application(s): common_test, erl_docgen, xmerl + Related Id(s): PR-7695 + + Update all <tt> html tags to be <code> instead. + + + Full runtime dependencies of erl_docgen-1.5.2: edoc-1.0, erts-11.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.5 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.5 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18895 Application(s): crypto, erl_interface, os_mon, + runtime_tools + + Fixed some benign compile warnings on Windows. + + + --- Improvements and New Features --- + + OTP-18764 Application(s): erl_interface + Related Id(s): PR-7602 + + Add support to encode maps with ei_x_format. + + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + --- 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-14.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-14.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18751 Application(s): erts + Related Id(s): GH-7548, GH-7621 + + Fix erl.exe to to restore the console to its original + state when exiting. This bug was introduced in OTP 26.0 + and only happens when erl.exe is run in cmd.exe. + + + OTP-18802 Application(s): erts + + Fix faulty debug assert when page size is larger than + 16kb, like on PowerPC. Did crash debug VM directly at + start. + + + OTP-18811 Application(s): erts + Related Id(s): ERIERL-994 + + zlib will no longer randomly return garbage (negative) + Adler32 checksums. + + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18838 Application(s): erts + Related Id(s): GH-7801, PR-7822 + + A process with message_queue_data configured as + off_heap could end up in an inconsistent state when + being receive traced, inspected using process_info/2 + with the message_queue_len item, or inspected using the + break menu (CTRL-C). When it ended up in this + inconsistent state, it was not enqueued into a run + queue even though it was set in a runnable state.This + also effected signals being sent to the process after + it had gotten into this inconsistent state, in such a + way that it was from this point not possible to + communicate with it. + + + OTP-18839 Application(s): erts + Related Id(s): GH-7801, PR-7822 + + A race occurring when a process was selected for dirty + execution simultaneously as it was scheduled for + handling a signal could cause the process to end up in + an inconsistent state. When it ended up in this + inconsistent state, it was not enqueued into a run + queue even though it was set in a runnable state. This + also effected signals being sent to the process after + it had gotten into this inconsistent state, in such a + way that it was from this point not possible to + communicate with it. + + + OTP-18841 Application(s): erts + Related Id(s): GH-7801, OTP-18737, PR-7822 + + When a process had to to wait in the run queue for a + long time before being selected for dirty execution, it + could not receive signals. This caused inspection of + such a process, for example using process_info/2, to + take a long time. + + This issue was introduced in OTP 25.3.2.6 and 26.1 when + fixing an issue where a constant flow of signals + prevented a process from being able to execute dirty. + + + OTP-18842 Application(s): erts + + Fixed a bug in the JIT that miscompiled large + select_val instructions. + + + OTP-18871 Application(s): erts + Related Id(s): GH-7838 + + Fix bug on Windows where large writes to standard_io + could cause duplicate data to be written. + + + OTP-18880 Application(s): erts + Related Id(s): GH-7736, PR-7761 + + The struct ip_mreqn field imr_ifindex had got an + incorrect byte order conversion that has been + corrected. + + + OTP-18885 Application(s): erts + Related Id(s): GH-7834, GH-7890, PR-7915 + + On OTP 24 and OTP 25, incoming distributed messages + larger than 64 KiB sent using an alias leaked memory if + the alias had been removed prior to entering the node. + This issue was not present on OTP 26. + + Incoming distributed messages larger than 64 KiB sent + using an alias which had been removed on the receiving + node could crash the node. This crash was quite + unlikely on OTP 24 and OTP 25, but very likely on OTP + 26. + + 'DOWN' signals with exit reason larger than 64 KiB + directed towards a process on a node with a not + matching creation leaked memory on the receiving node. + Such signals should however be very rare. + + + --- Improvements and New Features --- + + OTP-18762 Application(s): erts, kernel + + Add Windows support for DGRAM socket connect. + + + OTP-18765 Application(s): erts + Related Id(s): PR-7707 + + process_info/2 now supports lookup of values for + specific keys in the process dictionary. For example, + {{dictionary, Key}, Value} = process_info(Pid, + {dictionary, Key}). + + + OTP-18830 Application(s): erts + Related Id(s): PR-7823 + + Removed unnecessary regexp library used when generating + yielding BIFs. + + + OTP-18872 Application(s): erts + Related Id(s): GH-7832 + + Fix tty restore when +Bc is used. + + + OTP-18877 Application(s): erl_interface, erts + + Replaced old md5 implementation with an implementation + from OpenSSL. + + + OTP-18899 Application(s): erts + + Removed unused makewhatis script. + + + Full runtime dependencies of erts-14.2: kernel-9.0, sasl-3.3, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- eunit-2.9 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.9 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18771 Application(s): eunit + Related Id(s): PR-7635 + + With this change, EUnit timetraps can be scaled with + the use of scale_timeouts option. + + + Full runtime dependencies of eunit-2.9: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.2.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.2.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + Full runtime dependencies of ftp-1.2.1: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-9.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-9.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18855 Application(s): inets + + Correct IP protocol handling so that redirects always + uses correct IP-family options and not fails. + + + --- Improvements and New Features --- + + OTP-18735 Application(s): inets + Related Id(s): GH-7580, PR-7596 + + inets app starts ssl by default + + + OTP-18882 Application(s): inets + + Avoid httpd returning 500 internal server error when + unable to open a file. 404 or 503 will be returned + instead. + + + OTP-18891 Application(s): inets + Related Id(s): GH-7827, PR-7843 + + Properly handle documented option mime_type, for + backwards compatibility fallback to undocumented option + default_type if mime_type is not set. + + + Full runtime dependencies of inets-9.1: erts-14.0, kernel-9.0, + mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, + stdlib-5.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- kernel-9.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-9.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18749 Application(s): kernel + Related Id(s): GH-7608 + + For inet_backend = socket, an unexpected receive error + such as etimedout caused the receiving state machine + server to crash. This bug has now been fixed. + + + OTP-18800 Application(s): kernel + Related Id(s): GH-7591, PR-7714 + + Fix bug where reading using file from a unicode enabled + standard_io, standard_error or any other group backed + device would result in incorrect values being returned + or a crash. + + Now instead a no_translation error is returned to the + caller when unicode data is read using file. See Using + Unicode in the STDLIB User's Guide for more details on + how to correctly read from standard_io. + + + OTP-18812 Application(s): kernel + Related Id(s): ERIERL-997 + + The native resolver interface module has gotten a + rewrite of its ETS table handling to minimize term + copying, and also to move the handling of client + time-outs to the clients, which helps the native + resolver name server from digging itself into a tar pit + when heavily loaded. + + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18833 Application(s): kernel + Related Id(s): GH-7625, PR-7659 + + Fix bug in pg if a client process both monitored a + group/scope and joined a group. The termination of such + process resulted in crash of the pg server process. + + + OTP-18873 Application(s): kernel + Related Id(s): PR-7831 + + Fix crash when using file:consult and the underlying + file read returns an error while reading. + + + OTP-18883 Application(s): kernel + Related Id(s): #7764 + + Corrected gen_tcp_socket listen option handling. + + + --- Improvements and New Features --- + + OTP-18762 Application(s): erts, kernel + + Add Windows support for DGRAM socket connect. + + + OTP-18818 Application(s): kernel + Related Id(s): #7337 + + Document the, previously opaque, types select_tag() and + completion_tag(). + + + Full runtime dependencies of kernel-9.2: crypto-5.0, erts-14.0, + sasl-3.0, stdlib-5.0 + + + --------------------------------------------------------------------- + --- mnesia-4.23 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.23 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18798 Application(s): mnesia + + Document mnesia:foldl/4 and mnesia:foldr/4. + + + OTP-18850 Application(s): mnesia + + mnesia:add_table_copy/3 no longer fails with reason + system_limit when the node is starting. + + + --- Improvements and New Features --- + + OTP-18843 Application(s): mnesia + Related Id(s): GH-7766 + + Restore recreate of disc_only tables could crash if + they had an index. + + + Full runtime dependencies of mnesia-4.23: erts-9.0, kernel-5.3, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- os_mon-2.9.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.9.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18895 Application(s): crypto, erl_interface, os_mon, + runtime_tools + + Fixed some benign compile warnings on Windows. + + + Full runtime dependencies of os_mon-2.9.1: erts-14.0, kernel-9.0, + sasl-4.2.1, stdlib-5.0 + + + --------------------------------------------------------------------- + --- public_key-1.15 ------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.15 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18739 Application(s): public_key, ssl + + ssl application will validate id-kp-serverAuth and + id-kp-clientAuth extended key usage only in end entity + certificates. public_key application will disallow + "anyExtendedKeyUsage" for CA certificates that includes + the extended key usage extension and marks it critical. + + + OTP-18854 Application(s): public_key + + Modernize ECC handling so that crypto FIPS support + works as expected. + + + --- Improvements and New Features --- + + OTP-17844 Application(s): public_key + Related Id(s): ERIERL-738 + + Support certificate policies in path_validation - as + described by RFC 5280. + + + OTP-18814 Application(s): public_key + Related Id(s): PR-7435 + + Add more search paths for cacerts on Illumos. + + + OTP-18867 Application(s): public_key + Related Id(s): GH-7515 + + Make it possible to handle invalid date formats in the + verify_fun for pkix_path_validation/3 + + + Full runtime dependencies of public_key-1.15: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-2.0.1 --------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-2.0.1 application can be applied independently of + other applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18868 Application(s): runtime_tools + Related Id(s): GH-7735 + + Fixed issue with fetching port information for observer + could crash if port had died. + + + OTP-18895 Application(s): crypto, erl_interface, os_mon, + runtime_tools + + Fixed some benign compile warnings on Windows. + + + Full runtime dependencies of runtime_tools-2.0.1: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-5.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-5.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18861 Application(s): ssh + Related Id(s): PR-7627 + + Avoid outputting ansi escape sequences to dumb ssh + clients. + + + OTP-18869 Application(s): ssh + Related Id(s): GH-7571, PR-7849 + + With this change, connection handler does not execute + socket operations until it becomes socket owner. + Previously errors could occur if connection handler + tried to work with socket whose owner exited. + + + --- Improvements and New Features --- + + OTP-18730 Application(s): ssh + Related Id(s): PR-7499 + + With this change, reverse search works with ssh shell + and non dumb terminals. + + + Full runtime dependencies of ssh-5.1: crypto-5.0, erts-14.0, + kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- ssl-11.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-11.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18739 Application(s): public_key, ssl + + ssl application will validate id-kp-serverAuth and + id-kp-clientAuth extended key usage only in end entity + certificates. public_key application will disallow + "anyExtendedKeyUsage" for CA certificates that includes + the extended key usage extension and marks it critical. + + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18817 Application(s): ssl + + Correct handling of TLS-1.3 legacy scheme names, could + cause interop failures for TLS-1.2 clients. + + + OTP-18886 Application(s): ssl + + Add missing export for connection_info() API type. + + + --- Improvements and New Features --- + + OTP-18836 Application(s): ssl + Related Id(s): GH-7795 + + Fixed server name indication which was not handled + properly. + + + OTP-18853 Application(s): ssl + Related Id(s): PR-7841 + + Align documentation and implementation + + + OTP-18893 Application(s): ssl + Related Id(s): PR-7920, PR-7921 + + Improve connection setup by optimizing certificate + lookup. + + + Full runtime dependencies of ssl-11.1: crypto-5.0, erts-14.0, + inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, + stdlib-4.1 + + + --------------------------------------------------------------------- + --- stdlib-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-5.2 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18777 Application(s): stdlib + Related Id(s): PR-7663 + + Make shell_docs correctly trim the newline at the end + of code blocks. + + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + OTP-18822 Application(s): stdlib + Related Id(s): PR-7796 + + Fixed a bug where autocompletion could crash the shell + when trying to expand a nested tuple. + + + OTP-18823 Application(s): stdlib + + Removed auto closing feature, in autocompletion, for + function arguments, tuples, records and maps, since + this could interfere with autocompletion of atoms. + + + OTP-18824 Application(s): stdlib + + Fixed a bug where autocompletion string formatting + would remove suggestions that had the same name but + different case. + + + OTP-18826 Application(s): stdlib + Related Id(s): PR-7797 + + Fix so that ctrl+h, ctrl+backspace in the shell only + removes one character instead of a whole word. + + + OTP-18827 Application(s): stdlib + Related Id(s): PR-7797 + + Fix so that its possible to override the default + keyboard shortcuts for the shell. + + + OTP-18828 Application(s): stdlib + Related Id(s): PR-7799 + + Allow shell local func v(), in a restricted shell + + + OTP-18829 Application(s): stdlib + Related Id(s): PR-7799 + + Report syntax error when writing an invalid attribute + like '1> -hej.' + + + OTP-18866 Application(s): stdlib + Related Id(s): GH-7875, PR-7878 + + When attempting to match part of a record in the key of + a map generator, the entire record would be matched. + + + --- Improvements and New Features --- + + OTP-18821 Application(s): stdlib + Related Id(s): OTP-18746 + + The warning for accidental use of a future + triple-quoted string delimiter has been upgraded to + instead warn for adjacent strings without intervening + white space, which effectively is the same at a string + start, but also covers the same situation at a string + end. + + + OTP-18840 Application(s): otp, stdlib + Related Id(s): PR-7629 + + The removal of the deprecated slave module, originally + planned for OTP 27, has been postponed to OTP 29. + + + OTP-18857 Application(s): stdlib, wx + Related Id(s): GH-7685 + + Guards have been added to gen_*:start* API functions to + catch bad arguments earlier. Before this change, in + some cases, a bad argument could tag along and cause + the server to fail later, right after start. + + + Full runtime dependencies of stdlib-5.2: compiler-5.0, crypto-4.5, + erts-13.1, kernel-9.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tftp-1.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The tftp-1.1.1 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18815 Application(s): diameter, erts, ftp, inets, kernel, + otp, ssh, ssl, stdlib, tftp + Related Id(s): PR-7780 + + Replaced unintentional Erlang Public License 1.1 + headers in some files with the intended Apache License + 2.0 header. + + + Full runtime dependencies of tftp-1.1.1: erts-6.0, kernel-6.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- wx-2.4 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.4 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Improvements and New Features --- + + OTP-18857 Application(s): stdlib, wx + Related Id(s): GH-7685 + + Guards have been added to gen_*:start* API functions to + catch bad arguments earlier. Before this change, in + some cases, a bad argument could tag along and cause + the server to fail later, right after start. + + + Full runtime dependencies of wx-2.4: erts-12.0, kernel-8.0, + stdlib-5.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.34 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.34 application can be applied independently of other + applications on a full OTP 26 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18799 Application(s): common_test, erl_docgen, xmerl + Related Id(s): PR-7695 + + Update all <tt> html tags to be <code> instead. + + + Full runtime dependencies of xmerl-1.3.34: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-27.0-rc1.README.txt b/release-notes/OTP-27.0-rc1.README.txt new file mode 100644 index 0000000..017c55b --- /dev/null +++ b/release-notes/OTP-27.0-rc1.README.txt @@ -0,0 +1,2307 @@ +Inital Release: OTP 27.0 +Git Tag: OTP-27.0 +Date: 2024-02-14 +Trouble Report Id: OTP-16607, OTP-18568, OTP-18577, OTP-18589, + OTP-18590, OTP-18594, OTP-18606, OTP-18608, + OTP-18609, OTP-18622, OTP-18639, OTP-18641, + OTP-18642, OTP-18648, OTP-18658, OTP-18667, + OTP-18668, OTP-18671, OTP-18673, OTP-18680, + OTP-18682, OTP-18684, OTP-18699, OTP-18703, + OTP-18709, OTP-18713, OTP-18714, OTP-18715, + OTP-18716, OTP-18717, OTP-18727, OTP-18741, + OTP-18742, OTP-18743, OTP-18744, OTP-18750, + OTP-18756, OTP-18761, OTP-18766, OTP-18774, + OTP-18778, OTP-18779, OTP-18781, OTP-18783, + OTP-18784, OTP-18785, OTP-18786, OTP-18787, + OTP-18788, OTP-18789, OTP-18793, OTP-18794, + OTP-18795, OTP-18796, OTP-18801, OTP-18804, + OTP-18805, OTP-18806, OTP-18807, OTP-18808, + OTP-18809, OTP-18813, OTP-18816, OTP-18819, + OTP-18820, OTP-18825, OTP-18831, OTP-18834, + OTP-18835, OTP-18846, OTP-18847, OTP-18848, + OTP-18849, OTP-18852, OTP-18856, OTP-18859, + OTP-18860, OTP-18865, OTP-18870, OTP-18874, + OTP-18875, OTP-18876, OTP-18878, OTP-18879, + OTP-18881, OTP-18887, OTP-18892, OTP-18894, + OTP-18898, OTP-18904, OTP-18908, OTP-18912, + OTP-18913, OTP-18914, OTP-18916, OTP-18918, + OTP-18920, OTP-18922, OTP-18923, OTP-18927, + OTP-18928, OTP-18929, OTP-18930, OTP-18934, + OTP-18941, OTP-18942, OTP-18944, OTP-18945, + OTP-18946, OTP-18947, OTP-18950, OTP-18951, + OTP-18954, OTP-18955, OTP-18959, OTP-18961, + OTP-18963, OTP-18967, OTP-18972, OTP-18973, + OTP-18976, OTP-18977, OTP-18978, OTP-18980 +Seq num: #312, 7809, BL-322, ERIERL-43, ERIERL-964, + ERIERL-967, ERIERL-985, GH-4992, GH-6152, + GH-6692, GH-6985, GH-7183, GH-7232, GH-7266, + GH-7295, GH-7397, GH-7432, GH-7493, GH-7494, + GH-7706, GH-7718, GH-8061, OTP-16448, + OTP-16608, OTP-16875, OTP-17734, OTP-18746, + OTP-18750, PR-6510, PR-6639, PR-6791, + PR-6985, PR-7110, PR-7125, PR-7174, PR-7202, + PR-7220, PR-7236, PR-7243, PR-7267, PR-7274, + PR-7299, PR-7313, PR-7316, PR-7348, PR-7380, + PR-7383, PR-7388, PR-7398, PR-7419, PR-7428, + PR-7441, PR-7443, PR-7451, PR-7465, PR-7470, + PR-7474, PR-7475, PR-7481, PR-7491, PR-7496, + PR-7528, PR-7534, PR-7535, PR-7538, PR-7556, + PR-7585, PR-7590, PR-7592, PR-7607, PR-7628, + PR-7639, PR-7649, PR-7651, PR-7675, PR-7684, + PR-7697, PR-7699, PR-7700, PR-7701, PR-7702, + PR-7703, PR-7711, PR-7720, PR-7726, PR-7728, + PR-7732, PR-7738, PR-7739, PR-7740, PR-7745, + PR-7779, PR-7781, PR-7782, PR-7790, PR-7809, + PR-7816, PR-7824, PR-7844, PR-7845, PR-7846, + PR-7847, PR-7856, PR-7857, PR-7869, PR-7879, + PR-7891, PR-7898, PR-7917, PR-7918, PR-7936, + PR-7942, PR-7952, PR-7957, PR-7960, PR-7963, + PR-7973, PR-7981, PR-7993, PR-8003, PR-8004, + PR-8006, PR-8026, PR-8042, PR-8063, PR-8067, + PR-8069, PR-8076, PR-8086, PR-8090, PR-8092 +System: OTP +Release: 27 +Application: asn1-5.3, common_test-1.27, compiler-8.5, + crypto-5.5, debugger-5.4, dialyzer-5.2, + diameter-2.4, edoc-1.3, eldap-1.3, + erl_interface-5.6, erts-14.3, et-1.8, + eunit-2.10, ftp-1.3, inets-9.2, + jinterface-1.15, kernel-9.3, megaco-4.6, + mnesia-4.24, observer-2.16, odbc-2.15, + os_mon-2.10, parsetools-2.6, public_key-1.16, + reltool-1.1, runtime_tools-2.1, sasl-4.3, + snmp-5.16, ssh-5.2, ssl-11.2, stdlib-6.0, + syntax_tools-3.2, tftp-1.2, tools-4.0, + wx-2.5, xmerl-1.4 +Predecessor: OTP + +Check out the git tag OTP-27.0, and build a full OTP system including +documentation. + +# HIGHLIGHTS + +- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the + modules `sets`, `ordsets`, and `gb_sets`. + + Own Id: OTP-18622 + Related Id(s): GH-7183, GH-7232 + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + a() -> ok; + a(_) -> error. + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + + while in Erlang/OTP 27 the diagnostic is similar to: + + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + + Own Id: OTP-18648 + Related Id(s): PR-7383 + +- The compiler will now merge consecutive updates of the same record. + + As an example, the body of the following function will be combined into a + single tuple creation instruction: + + -record(r, {a,b,c,d}). + + update(Value) -> + R0 = #r{}, + R1 = R0#r{a=Value}, + R2 = R1#r{b=2}, + R2#r{c=3}. + + Own Id: OTP-18680 + Related Id(s): ERIERL-967, PR-7491, PR-8086 + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and `/=`) and all relative + comparison operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Related Id(s): PR-7728 + + *** POTENTIAL INCOMPATIBILITY *** + +- The `erl` command now supports the `-S` flag, which is similar to the `-run` + flag, except that it will pass all arguments up to end of the command line to + the called function. (The `-run` flag will not pass arguments beginning with a + hyphen.) Another difference is that `-S` will always call a function with one + argument, passing an empty list if no arguments were given. + + Own Id: OTP-18744 + Related Id(s): PR-7470 + +- Triple-Quoted Strings has been implemented as per EEP 64. See String in the + Reference Manual. + + Example: + + 1> """ + a + b + c + """. + "a\nb\nc" + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + + Own Id: OTP-18750 + Related Id(s): PR-7313, PR-7451, OTP-18746 + + *** POTENTIAL INCOMPATIBILITY *** + +- Several new functions that accept funs have been added to module `timer`. + + Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept + a 0-ary fun as the second argument, while functions `apply_after/3`, + `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second + and a list of n arguments for the fun as the third argument. + + Own Id: OTP-18808 + Related Id(s): PR-7649 + +- Sigils on string literals have been implemented as per EEP 66, that is: + binary and string sigils in verbatim and escape characters variants, as well + as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted + strings (EEP 64). See Sigils in the Reference Manual. + + Examples: + + 1> ~"Björn". + <<"Björn"/utf8>> + 2> ~b"Björn". + <<"Björn"/utf8>> + 3> ~S"\s*(\w+)". + "\\s*(\\w+)" + 4> ~B"\s*(\w+)". + <<"\\s*(\\w+)">> + + Own Id: OTP-18825 + Related Id(s): PR-7684, OTP-18750 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the `cover` tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + `line_coverage` option. + + To enable native coverage in the runtime system, start it like so: + + $ erl +JPcover true + + There are also the following new functions for supporting native coverage: + + - code:coverage_support/0 + - code:get_coverage/2 + - code:reset_coverage/1 + - code:get_coverage_mode/0 + - code:get_coverage_mode/1 + - code:set_coverage_mode/1 + + Own Id: OTP-18856 + Related Id(s): PR-7856 + +- EEP-59 - Documentation Attributes has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of EEP-48. + - Using the compiler flag `warn_missing_doc` will raise a warning when doc. + attributes are missing in exported functions, types, and callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Related Id(s): PR-7936 + +- New `ets` functions ets:first_lookup/1, ets:next_lookup/2, + ets:prev_lookup/2 and ets:last_lookup/1. Example: ets:next_lookup/1 is + equivalent to ets:next/2 followed by ets:lookup/2 with the next key. The + new combined functions are more efficient and with guaranteed atomicity. + + Own Id: OTP-18923 + Related Id(s): PR-6791 + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + -feature(maybe_expr, disable). + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + erlc -disable-feature maybe_expr some_file.erl + + Own Id: OTP-18944 + Related Id(s): PR-8067 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Related Id(s): PR-8090 + +- Multiple trace sessions. + + Own Id: OTP-18980 + +# POTENTIAL INCOMPATIBILITIES + +- The `pid` field has been removed from `erlang:fun_info/1,2`. + + Own Id: OTP-18594 + Related Id(s): PR-7274 + +- By default, escripts will now be compiled instead of interpreted. That means + that the `compiler` application must be installed. + + Own Id: OTP-18639 + Related Id(s): PR-7348 + +- Introduce default value for httpd_server name configuration to improve ease of + use. + + Own Id: OTP-18641 + Related Id(s): PR-7316 + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and <c>/=</c>) and all relative + comparison operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Related Id(s): PR-7728 + + *** HIGHLIGHT *** + +- Triple-Quoted Strings has been implemented as per EEP 64. See String in the + Reference Manual. + + Example: + + 1> """ + a + b + c + """. + "a\nb\nc" + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + + Own Id: OTP-18750 + Related Id(s): PR-7313, PR-7451, OTP-18746 + + *** HIGHLIGHT *** + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): GH-7706, PR-7726 + +# OTP-27.0 + +## Fixed Bugs and Malfunctions + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and <c>/=</c>) and all relative + comparison operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Related Id(s): PR-7728 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): GH-7706, PR-7726 + + *** POTENTIAL INCOMPATIBILITY *** + +## Improvements and New Features + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + -feature(maybe_expr, disable). + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + erlc -disable-feature maybe_expr some_file.erl + + Own Id: OTP-18944 + Related Id(s): PR-8067 + + *** HIGHLIGHT *** + +# asn1-5.3 + +## Fixed Bugs and Malfunctions + +- Multiple bugs has been eliminated in the specialized decode feature. + + Own Id: OTP-18813 + Related Id(s): PR-7790 + +## Improvements and New Features + +- Specs have been added to all `asn1ct` API functions. + + Own Id: OTP-18804 + Related Id(s): PR-7738 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of asn1-5.3 +> +> erts-14.0, kernel-9.0, stdlib-5.0 + +# common_test-1.27 + +## Improvements and New Features + +- Calls to ct:capture_start/0 and ct:capture_stop/0 are now synchronous to + ensure that all output is captured. + + Own Id: OTP-18658 + Related Id(s): PR-7380 + +- The order in which multiple hooks are executed can now be reversed after each + config function. See CTH Execution Order. + + Own Id: OTP-18682 + Related Id(s): ERIERL-43, GH-7397, PR-7496 + +- The default CSS will now include a basic dark mode handling if it is preferred + by the browser. + + Own Id: OTP-18761 + Related Id(s): PR-7428 + +- `-callback` attributes have been added to `ct_suite` and `ct_hooks`. + + Own Id: OTP-18781 + Related Id(s): PR-7701 + +- The built-in cth_log_redirect hook can now be configured to replace default + logger reports in terminal with HTML logs. + + Own Id: OTP-18875 + Related Id(s): PR-7891 + +- Error handling for the `ct_property_test` framework has been enhanced. + + Own Id: OTP-18881 + Related Id(s): PR-7824 + +- Enhance test case documentation, making it clear how a test case can be + failed. + + Own Id: OTP-18892 + Related Id(s): PR-7869 + +- The failing line in the test source code is now colored to make it easier to + find on the screen. + + Own Id: OTP-18898 + Related Id(s): PR-7917 + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of common_test-1.27 +> +> compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, +> kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, +> stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + +# compiler-8.5 + +## Fixed Bugs and Malfunctions + +- Generators for binary comprehensions could be evaluated before it was known + that they would be needed. That could result in a binary comprehensions + failing if a generator that should not be evaluated until later failed. + + As an example, consider this module: + + -module(t). + -export([f/0]). + + f() -> + <<0 || _ <- [], _ <- ok, false>>. + + In Erlang/OTP 26 it would fail like so: + + > t:f(). + ** exception error: bad generator ok + in function t:f/0 (t.erl, line 6) + + In Erlang/OTP 27 it returns an empty binary: + + > t:f(). + <<>> + + Own Id: OTP-18703 + Related Id(s): GH-7494, PR-7538 + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): GH-7706, PR-7726 + + *** POTENTIAL INCOMPATIBILITY *** + +## Improvements and New Features + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + a() -> ok; + a(_) -> error. + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + + while in Erlang/OTP 27 the diagnostic is similar to: + + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + + Own Id: OTP-18648 + Related Id(s): PR-7383 + + *** HIGHLIGHT *** + +- The compiler now optimizes creation of binaries that are known to be constant. + + Consider this example: + + bin() -> + C = char(), + <<C>>. + + char() -> $*. + + Essentially, the compiler rewrites the example to the slightly more efficient: + + bin() -> + _ = char(), + <<$*>>. + + char() -> $*. + + Own Id: OTP-18673 + Related Id(s): ERIERL-964, PR-7474 + +- The compiler will now merge consecutive updates of the same record. + + As an example, the body of the following function will be combined into a + single tuple creation instruction: + + -record(r, {a,b,c,d}). + + update(Value) -> + R0 = #r{}, + R1 = R0#r{a=Value}, + R2 = R1#r{b=2}, + R2#r{c=3}. + + Own Id: OTP-18680 + Related Id(s): ERIERL-967, PR-7491, PR-8086 + + *** HIGHLIGHT *** + +- Improved the performance of the alias analysis pass. + + Own Id: OTP-18714 + Related Id(s): GH-7432, PR-7528 + +- `-spec` attributes are now used for documentation. + + Own Id: OTP-18801 + Related Id(s): PR-7739 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the `cover` tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + `line_coverage` option. + + To enable native coverage in the runtime system, start it like so: + + $ erl +JPcover true + + There are also the following new functions for supporting native coverage: + + - code:coverage_support/0 + - code:get_coverage/2 + - code:reset_coverage/1 + - code:get_coverage_mode/0 + - code:get_coverage_mode/1 + - code:set_coverage_mode/1 + + Own Id: OTP-18856 + Related Id(s): PR-7856 + + *** HIGHLIGHT *** + +- EEP-59 - Documentation Attributes has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of EEP-48. + - Using the compiler flag `warn_missing_doc` will raise a warning when doc. + attributes are missing in exported functions, types, and callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Related Id(s): PR-7936 + + *** HIGHLIGHT *** + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Related Id(s): PR-8090 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of compiler-8.5 +> +> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0 + +# crypto-5.5 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +- Removed functions `crypto_dyn_iv_init/3` and `crypto_dyn_iv_update/3` which + were marked as deprecated since OTP 25. + + Own Id: OTP-18973 + +- `OPENSSL_thread_stop` is called when `crypto` is purged to not leak thread + specific data. + + Own Id: OTP-18978 + Related Id(s): 7809 + +> #### Full runtime dependencies of crypto-5.5 +> +> erts-9.0, kernel-5.3, stdlib-3.9 + +# debugger-5.4 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): PR-7441 + +## Improvements and New Features + +- Type specs have been added to all API functions. + + Own Id: OTP-18819 + Related Id(s): PR-7781 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of debugger-5.4 +> +> compiler-8.0, erts-14.3, kernel-8.0, stdlib-3.15, wx-2.0 + +# dialyzer-5.2 + +## Improvements and New Features + +- The `--gui` option for Dialyzer has been removed. + + Own Id: OTP-18667 + Related Id(s): PR-7443 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of dialyzer-5.2 +> +> compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0 + +# diameter-2.4 + +## Improvements and New Features + +- `-callback` attributes have been added to `diameter_app` and + `diameter_transport`. + + Own Id: OTP-18783 + Related Id(s): PR-7699 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of diameter-2.4 +> +> erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0 + +# edoc-1.3 + +## Fixed Bugs and Malfunctions + +- EEP 48 doc chunks now properly include links within `{@type }` macros. + + Own Id: OTP-18945 + Related Id(s): PR-8063 + +- `@hidden` now means `hidden` in EEP 48 doc chunks instead of `none`. + + Own Id: OTP-18946 + Related Id(s): PR-8063 + +## Improvements and New Features + +- There is a new `edoc_html_to_markdown` module that can be used to convert + EEP-48 `application/html+erlang` to Markdown. + + Own Id: OTP-18947 + Related Id(s): PR-8063 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of edoc-1.3 +> +> erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7 + +# eldap-1.3 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of eldap-1.3 +> +> asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-3.4 + +# erl_interface-5.6 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +## Known Bugs and Problems + +- 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. + + Own Id: OTP-16607 + Related Id(s): OTP-16608 + +# erts-14.3 + +## Fixed Bugs and Malfunctions + +- Fix bugs in how `erl -extra` interacts with passing flags via ERL\_\*FLAGS or + `-args_file`. + + Own Id: OTP-18766 + Related Id(s): PR-7639 + +- Fixed a bug that prevented the emulator from building on recent versions of + Yocto Linux. + + Own Id: OTP-18918 + Related Id(s): PR-7952 + +- Fix spectre mitigation configure test to work with GCC patches to always add + `-fcf-protection=full`. + + Own Id: OTP-18928 + Related Id(s): PR-8006 + +## Improvements and New Features + +- Refactored how the JIT handles POSIX signals and how they affect thread + stacks, allowing us to use the native stack register for Erlang stacks on more + platforms. + + Notably, containers built on 64-bit x86 Alpine Linux images will now perform + much better in sequential code. As an example, running `dialyzer` over the OTP + code base finishes about 15% quicker. + + Own Id: OTP-18568 + Related Id(s): PR-7174 + +- The `instrument` module can now track allocations on a per-process or + per-port basis. + + Own Id: OTP-18577 + Related Id(s): PR-7236 + +- The `pid` field has been removed from `erlang:fun_info/1,2`. + + Own Id: OTP-18594 + Related Id(s): PR-7274 + + *** POTENTIAL INCOMPATIBILITY *** + +- By default, escripts will now be compiled instead of interpreted. That means + that the `compiler` application must be installed. + + Own Id: OTP-18639 + Related Id(s): PR-7348 + + *** POTENTIAL INCOMPATIBILITY *** + +- A binary returned from the `socket` receive functions is no longer created + as a sub binary of an often large receive buffer binary (socket option + `{otp,rcvbuf}`). This avoids space waste, trusting the allocators to implement + reallocation efficiently. + + Own Id: OTP-18642 + Related Id(s): GH-6152, PR-7465 + +- The default process limit has been raised to `1048576` processes. + + Own Id: OTP-18699 + Related Id(s): PR-7388 + +- The erlang:system_monitor/2 functionality is now able to monitor long + message queues in the system. + + Own Id: OTP-18709 + Related Id(s): PR-7651 + +- The `erl` command now supports the `-S` flag, which is similar to the `-run` + flag, except that it will pass all arguments up to end of the command line to + the called function. (The `-run` flag will not pass arguments beginning with a + hyphen.) Another difference is that `-S` will always call a function with one + argument, passing an empty list if no arguments were given. + + Own Id: OTP-18744 + Related Id(s): PR-7470 + + *** HIGHLIGHT *** + +- When implementing an alternative carrier for the Erlang distribution, a + separate input handler process may now be registered, using + erlang:dist_ctrl_input_handler/2, also in the case when the distribution + controller is a port. + + Own Id: OTP-18774 + Related Id(s): PR-7110 + +- Add call stack trace to the error reported by erlang:process_flag/2 when + `max_heap_size` has been exceeded. + + Own Id: OTP-18779 + Related Id(s): PR-7592 + +- `-callback` attributes have been added to `erl_tracer`. + + Own Id: OTP-18794 + Related Id(s): PR-7703 + +- For `inet_backend = socket`, setting the `active` socket option alone, to + `once`, `true` or `N`, has been optimized, as well as the corresponding data + delivery. + + Own Id: OTP-18835 + +- Socket options that take string now also accept binaries. + + Own Id: OTP-18849 + Related Id(s): PR-6510 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the `cover` tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + `line_coverage` option. + + To enable native coverage in the runtime system, start it like so: + + $ erl +JPcover true + + There are also the following new functions for supporting native coverage: + + - code:coverage_support/0 + - code:get_coverage/2 + - code:reset_coverage/1 + - code:get_coverage_mode/0 + - code:get_coverage_mode/1 + - code:set_coverage_mode/1 + + Own Id: OTP-18856 + Related Id(s): PR-7856 + + *** HIGHLIGHT *** + +- Changed the default value of the command line flag `-code_path_choice Choice` + to `strict`. + + Own Id: OTP-18894 + Related Id(s): PR-7243 + +- Added module loading to `erl -init_debug` printouts. + + Own Id: OTP-18929 + Related Id(s): PR-8004 + +- Optimized code loading by moving certain operations from the code server to + the caller. + + Own Id: OTP-18941 + Related Id(s): PR-7981 + +- Updated asmjit to version a465fe71ab3d0e224b2b4bd0fac69ae68ab9239d + + Own Id: OTP-18942 + +- The deprecated functions in `zlib` have been removed. That includes + `inflateChunk/{1,2}`, `getBufSize/1`, `setBufSize/2`, the CRC32 functions, and + the Adler checksum functions. + + Own Id: OTP-18950 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Related Id(s): PR-8090 + + *** HIGHLIGHT *** + +- The obsolete and undocumented support for opening a port to an external + resource by passing an atom (or a string) as first argument to `open_port()`, + implemented by the vanilla driver, has been removed. This feature has been + scheduled for removal in OTP 27 since the release of OTP 26. + + Own Id: OTP-18976 + Related Id(s): PR-7125 + +- Add optional NIF callback `ERL_NIF_OPT_ON_UNLOAD_THREAD` to be called by all + scheduler thread when a NIF library is unloaded. Used for releasing thread + specific data. Can be set with function `enif_set_option`. + + Own Id: OTP-18977 + Related Id(s): PR-7809 + +- Multiple trace sessions. + + Own Id: OTP-18980 + *** HIGHLIGHT *** + +> #### Full runtime dependencies of erts-14.3 +> +> kernel-9.0, sasl-3.3, stdlib-4.1 + +# et-1.8 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): PR-7441 + +- Dialyzer warnings due to type specs added in `dbg` have been eliminated. + + Own Id: OTP-18860 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of et-1.8 +> +> erts-9.0, kernel-5.3, runtime_tools-1.10, stdlib-3.4, wx-1.2 + +# eunit-2.10 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of eunit-2.10 +> +> erts-9.0, kernel-5.3, stdlib-3.4 + +# ftp-1.3 + +## Fixed Bugs and Malfunctions + +- Dialyzer warnings due to type specs added in `dbg` have been eliminated. + + Own Id: OTP-18860 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of ftp-1.3 +> +> erts-7.0, kernel-6.0, runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + +# inets-9.2 + +## Improvements and New Features + +- Introduce default value for httpd_server name configuration to improve ease of + use. + + Own Id: OTP-18641 + Related Id(s): PR-7316 + + *** POTENTIAL INCOMPATIBILITY *** + +- With this change, `erl -S httpd` command can be used for serving current + directory content over HTTP. + + Own Id: OTP-18727 + Related Id(s): PR-7299 + +- Add `-callback` attributes to `httpd`, `mod_esi` and `mod_security`. + + Own Id: OTP-18786 + Related Id(s): PR-7700 + +- Use a relative redirect with an absolute path to prevent whoever is running + inets from having to configure the ServerName to match the network-reachable + hostname of the server. + + Own Id: OTP-18809 + +- Use proc_lib:set_label/1 to increase observability of inets processes. + + Own Id: OTP-18927 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of inets-9.2 +> +> erts-14.0, kernel-9.0, mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, +> ssl-9.0, stdlib-5.0, stdlib-6.0 + +# jinterface-1.15 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +# kernel-9.3 + +## Fixed Bugs and Malfunctions + +- Fixed a crash when calling file:delete/2 with an empty option list. + + Own Id: OTP-18590 + Related Id(s): PR-7220 + +- New functions have been added to the undocumented module `inet_dns` that + take a flag to specify if encode/decode is for mDNS. This affects how CLASS + values in the private range, with the top bit set, are handled. + + Own Id: OTP-18878 + Related Id(s): GH-7718, OTP-17734 + +- The error information for erlang:phash/2 has been corrected. + + Own Id: OTP-18904 + Related Id(s): PR-7960 + +- `get_until` requests using the I/O protocol now correctly return a binary or + list when `eof` is the last item returned by the callback. + + Own Id: OTP-18930 + Related Id(s): GH-4992, PR-7993 + +- Calling logger:add_handlers/1 with config option now works. + + Own Id: OTP-18954 + Related Id(s): GH-8061, PR-8076 + +- The code:del_path/1 function now also works on paths added through `-pa`, + `-pz` , `-path` and the boot script. + + Own Id: OTP-18959 + Related Id(s): GH-6692, PR-7697 + +## Improvements and New Features + +- Added file:read_file/2 with a `raw` option for reading files without going + through the file server. + + Own Id: OTP-18589 + Related Id(s): PR-7220 + +- The undocumented Erlang DNS resolver library (`inet_dns` and `inet_res`) has + been augmented to handle IXFR, NOTIFY, UPDATE and TSIG records. With this some + bug fixes and code cleanup has been done, and the resolver used in the test + suite has been changed to Knot DNS. See the source code. + + Kudos to Alexander Clouter that did almost all the work! + + Own Id: OTP-18713 + Related Id(s): GH-6985, PR-6985 + +- The `ebin` directories for escripts are now cached. + + Own Id: OTP-18778 + Related Id(s): PR-7556 + +- Add `-callback` attributes to `application`, `logger_handler` and + `logger_formatter`. + + Own Id: OTP-18795 + Related Id(s): PR-7703 + +- Progress reports from before logger is started are now logged when log level + is set to debug. + + Own Id: OTP-18807 + Related Id(s): ERIERL-985, PR-7732 + +- The code:where_is_file/2 and code:which/1 functions now check for + existence of the file directly instead of listing the content of each + directory in the code path. + + Own Id: OTP-18816 + Related Id(s): PR-7711 + +- Type specs has been added to the `logger:Level/1,2,3` functions. + + Own Id: OTP-18820 + Related Id(s): PR-7779 + +- For `inet_backend = socket`, setting the `active` socket option alone, to + `once`, `true` or `N`, has been optimized, as well as the corresponding data + delivery. + + Own Id: OTP-18835 + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): PR-7845 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the `cover` tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + `line_coverage` option. + + To enable native coverage in the runtime system, start it like so: + + $ erl +JPcover true + + There are also the following new functions for supporting native coverage: + + - code:coverage_support/0 + - code:get_coverage/2 + - code:reset_coverage/1 + - code:get_coverage_mode/0 + - code:get_coverage_mode/1 + - code:set_coverage_mode/1 + + Own Id: OTP-18856 + Related Id(s): PR-7856 + + *** HIGHLIGHT *** + +- Optimized code loading by moving certain operations from the code server to + the caller. + + Own Id: OTP-18941 + Related Id(s): PR-7981 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +- Application startup has been optimized by removing an intermediary process. + + Own Id: OTP-18963 + Related Id(s): PR-8042 + +- The undocumented and deprecated `file:pid2name` function has been removed. + + Own Id: OTP-18967 + Related Id(s): PR-8092 + +> #### Full runtime dependencies of kernel-9.3 +> +> crypto-5.0, erts-14.3, sasl-3.0, stdlib-6.0 + +# megaco-4.6 + +## Improvements and New Features + +- `-callback` attributes have been added to `megaco_transport`. + + Own Id: OTP-18806 + Related Id(s): PR-7740 + +- Updated types and specs for all API modules. + + Own Id: OTP-18920 + Related Id(s): BL-322 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of megaco-4.6 +> +> asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, +> stdlib-2.5 + +# mnesia-4.24 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of mnesia-4.24 +> +> erts-9.0, kernel-5.3, stdlib-5.0 + +# observer-2.16 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): PR-7441 + +## Improvements and New Features + +- The new function proc_lib:set_label/1 can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, `observer`, and it will be included in crash reports + produced by processes using `gen_server`, `gen_statem`, `gen_event`, and + `gen_fsm`. + + The label for a process can be retrieved by calling proc_lib:get_label/1. + + Note that those functions work on any process, not only processes that use + `proc_lib`. + + Example: + + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + + Own Id: OTP-18789 + Related Id(s): PR-7720, PR-8003 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of observer-2.16 +> +> erts-14.0, et-1.5, kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + +# odbc-2.15 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of odbc-2.15 +> +> erts-6.0, kernel-3.0, stdlib-2.0 + +# os_mon-2.10 + +## Improvements and New Features + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of os_mon-2.10 +> +> erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0 + +# parsetools-2.6 + +## Improvements and New Features + +- The `leex` documentation has been updated to use specs for documenting the + generated interface. + + Own Id: OTP-18796 + Related Id(s): PR-7703 + +- yecc now wraps the `-module` attribute with `-file` to indicate the `.yrl` + source file. + + Own Id: OTP-18912 + Related Id(s): PR-7963 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of parsetools-2.6 +> +> erts-6.0, kernel-3.0, stdlib-3.4 + +# public_key-1.16 + +## Improvements and New Features + +- The `ssl` client can negotiate and handle certificate status request (OCSP + stapling support on the client side). + + Own Id: OTP-18606 + Related Id(s): OTP-16448, OTP-16875 + +- Improved exception reason when public_key:cacerts_get/0 failed. + + Own Id: OTP-18609 + Related Id(s): GH-7295, PR-7202 + +- Key customization support has been extended to allow flexibility for + implementers of for instance hardware security modules (HSM) or trusted + platform modules (TPM). + + Own Id: OTP-18876 + Related Id(s): PR-7475, PR-7898 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of public_key-1.16 +> +> asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 + +# reltool-1.1 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): PR-7441 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of reltool-1.1 +> +> erts-14.3, kernel-9.0, sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3 + +# runtime_tools-2.1 + +## Improvements and New Features + +- The `instrument` module can now track allocations on a per-process or + per-port basis. + + Own Id: OTP-18577 + Related Id(s): PR-7236 + +- The new function proc_lib:set_label/1 can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, `observer`, and it will be included in crash reports + produced by processes using `gen_server`, `gen_statem`, `gen_event`, and + `gen_fsm`. + + The label for a process can be retrieved by calling proc_lib:get_label/1. + + Note that those functions work on any process, not only processes that use + `proc_lib`. + + Example: + + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + + Own Id: OTP-18789 + Related Id(s): PR-7720, PR-8003 + +- Type specs had been added to all `dbg` functions. + + Own Id: OTP-18859 + Related Id(s): PR-7782 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of runtime_tools-2.1 +> +> erts-14.2, kernel-8.1, mnesia-4.12, stdlib-6.0 + +# sasl-4.3 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of sasl-4.3 +> +> erts-14.3, kernel-6.0, stdlib-4.0, tools-2.6.14 + +# snmp-5.16 + +## Improvements and New Features + +- `-callback` attributes have been added to modules + `snmpa_network_interface_filter`, `snmpa_notification_filter`, + `snmpm_network_interface_filter`, `snmpm_user`, and + `snmpa_notification_delivery_info_receiver`. + + New `-type` attributes have also been added to modules `snmp`, `snmpa`, + `snmpm`, and `snmpa_conf` to support the previously mentioned callbacks. + + Own Id: OTP-18785 + Related Id(s): PR-7702 + +- Updated types and specs for all API modules. + + Own Id: OTP-18934 + Related Id(s): #312 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of snmp-5.16 +> +> crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, +> stdlib-5.0 + +# ssh-5.2 + +## Improvements and New Features + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): PR-7845 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +- Updated types and specs for all API modules. + + Own Id: OTP-18961 + +> #### Full runtime dependencies of ssh-5.2 +> +> crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, +> stdlib-5.0, stdlib-5.0 + +# ssl-11.2 + +## Fixed Bugs and Malfunctions + +- Starting a TLS server without sufficient credentials (certificate or anonymous + cipher) would work, but it was impossible to connect to it. + + This has been corrected to return an error instead of starting the server. + + Own Id: OTP-18887 + Related Id(s): GH-7493, PR-7918 + +## Improvements and New Features + +- The `ssl` client can negotiate and handle certificate status request (OCSP + stapling support on the client side). + + Own Id: OTP-18606 + Related Id(s): OTP-16448, OTP-16875 + +- Added ssl_crl_cache_api:lookup/2 as an optional `-callback` attribute. + + Own Id: OTP-18788 + Related Id(s): PR-7700 + +- Key customization support has been extended to allow flexibility for + implementers of for instance hardware security modules (HSM) or trusted + platform modules (TPM). + + Own Id: OTP-18876 + Related Id(s): PR-7475, PR-7898 + +- The proc_lib:set_label/1 function is now used to increase observability of + `ssl` processes. + + Own Id: OTP-18879 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of ssl-11.2 +> +> crypto-5.0, erts-14.3, inets-5.10.7, kernel-9.0, public_key-1.16, +> runtime_tools-1.15.1, stdlib-6.0 + +# stdlib-6.0 + +## Fixed Bugs and Malfunctions + +- The specs in module `binary` has been updated to reflect what is allowed by + the documentation. + + Own Id: OTP-18684 + Related Id(s): PR-7481 + +- Several functions in the `binary` module would accept arguments of the wrong + type under certain circumstances. In this release, they now raise an exception + when incorrect types are given. + + The following functions would accept an invalid pattern if the subject binary + was empty or if the `{scope,{0,0}}` option was given: `binary:match/2,3`, + `binary:matches/2,3`, `binary:replace/3,4`, and `binary:split/2,3` + + The call `binary:copy(<<1:1>>, 0)` would return an empty binary instead of + raising an exception. Similarly, calls to `binary:part/2,3` attempting to + extract 0 bytes at position 0 of a bitstring would return an empty binary + instead of raising an exception. + + Own Id: OTP-18743 + Related Id(s): PR-7607, PR-7628 + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): GH-7706, PR-7726 + + *** POTENTIAL INCOMPATIBILITY *** + +- `get_until` requests using the I/O protocol now correctly return a binary or + list when `eof` is the last item returned by the callback. + + Own Id: OTP-18930 + Related Id(s): GH-4992, PR-7993 + +## Improvements and New Features + +- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the + modules `sets`, `ordsets`, and `gb_sets`. + + Own Id: OTP-18622 + Related Id(s): GH-7183, GH-7232 + + *** HIGHLIGHT *** + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + a() -> ok; + a(_) -> error. + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + + while in Erlang/OTP 27 the diagnostic is similar to: + + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + + Own Id: OTP-18648 + Related Id(s): PR-7383 + + *** HIGHLIGHT *** + +- `zip:create/2,3` will now tolerate POSIX timestamps in the provided + `file_info` records. + + Own Id: OTP-18668 + +- The callback function gen_statem:handle_event/4 has been cached in the + `gen_statem` engine to optimize callback call speed. + + Own Id: OTP-18671 + Related Id(s): PR-7419 + +- The type beam_lib:beam/0 is now exported. + + Own Id: OTP-18716 + Related Id(s): PR-7534 + +- The documentation for the `binary` module has been improved. + + Own Id: OTP-18741 + Related Id(s): PR-7585 + +- `binary:replace/3,4` now supports using a fun for supplying the replacement + binary. + + Own Id: OTP-18742 + Related Id(s): PR-7590 + +- Triple-Quoted Strings has been implemented as per EEP 64. See String in the + Reference Manual. + + Example: + + 1> """ + a + b + c + """. + "a\nb\nc" + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + + Own Id: OTP-18750 + Related Id(s): PR-7313, PR-7451, OTP-18746 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + +- The new function proc_lib:set_label/1 can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, `observer`, and it will be included in crash reports + produced by processes using `gen_server`, `gen_statem`, `gen_event`, and + `gen_fsm`. + + The label for a process can be retrieved by calling proc_lib:get_label/1. + + Note that those functions work on any process, not only processes that use + `proc_lib`. + + Example: + + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + + Own Id: OTP-18789 + Related Id(s): PR-7720, PR-8003 + +- `-callback` attributes has been added to modules `sys` and `erl_error`. + + Own Id: OTP-18793 + Related Id(s): PR-7703 + +- Several new functions that accept funs have been added to module `timer`. + + Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept + a 0-ary fun as the second argument, while functions `apply_after/3`, + `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second + and a list of n arguments for the fun as the third argument. + + Own Id: OTP-18808 + Related Id(s): PR-7649 + + *** HIGHLIGHT *** + +- Sigils on string literals have been implemented as per EEP 66, that is: + binary and string sigils in verbatim and escape characters variants, as well + as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted + strings (EEP 64). See Sigils in the Reference Manual. + + Examples: + + 1> ~"Björn". + <<"Björn"/utf8>> + 2> ~b"Björn". + <<"Björn"/utf8>> + 3> ~S"\s*(\w+)". + "\\s*(\\w+)" + 4> ~B"\s*(\w+)". + <<"\\s*(\\w+)">> + + Own Id: OTP-18825 + Related Id(s): PR-7684, OTP-18750 + + *** HIGHLIGHT *** + +- Functions shell:default_multiline_prompt/1, shell:inverted_space_prompt/1, + and shell:prompt_width/1 have been exported to help with custom prompt + implementations. + + Own Id: OTP-18834 + Related Id(s): PR-7675, PR-7816 + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): PR-7845 + +- The `M-h` hotkey (Alt/Option-h) now outputs help for the module or function + directly before the cursor. + + Own Id: OTP-18847 + Related Id(s): PR-7846 + +- Added support for adding a custom code formatter that formats your multi-line + shell commands in your preferred formatting on submission. See + `shell:format_shell_func/` and shell:erl_pp_format_func/1. + + Own Id: OTP-18848 + Related Id(s): PR-7847 + +- Added shell functions for viewing, forgetting and saving locally defined + functions, types and records. + + Own Id: OTP-18852 + Related Id(s): PR-7844 + +- Added string:jaro_similarity/2, which can be used to calculate the + similarity between two strings. + + Own Id: OTP-18865 + Related Id(s): PR-7879 + +- The new function ets:update_element/4 is similar to ets:update_element/3, + but takes a default tuple as the fourth argument, which will be inserted if no + previous record with that key exists. + + Own Id: OTP-18870 + Related Id(s): PR-7857 + +- Added functions to retrieve the next higher or lower key/element from + `gb_trees` and `gb_sets`, as well as returning iterators that start at + given keys/elements. + + Own Id: OTP-18874 + Related Id(s): PR-7745 + +- When he shell built-in function `c/1,2` is used to re-compile a module, + the current working directory of the original compilation is now added to the + include path. + + + Own Id: OTP-18908 + Related Id(s): PR-7957 + +- The `timer` module now uses a private table for its internal state, slightly + improving its performance. + + Own Id: OTP-18914 + Related Id(s): PR-7973 + +- EEP-59 - Documentation Attributes has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of EEP-48. + - Using the compiler flag `warn_missing_doc` will raise a warning when doc. + attributes are missing in exported functions, types, and callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Related Id(s): PR-7936 + + *** HIGHLIGHT *** + +- New `ets` functions ets:first_lookup/1, ets:next_lookup/2, + ets:prev_lookup/2 and ets:last_lookup/1. Example: ets:next_lookup/1 is + equivalent to ets:next/2 followed by ets:lookup/2 with the next key. The + new combined functions are more efficient and with guaranteed atomicity. + + Own Id: OTP-18923 + Related Id(s): PR-6791 + + *** HIGHLIGHT *** + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + -feature(maybe_expr, disable). + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + erlc -disable-feature maybe_expr some_file.erl + + Own Id: OTP-18944 + Related Id(s): PR-8067 + + *** HIGHLIGHT *** + +- The compiler will now raise a warning when updating record/map literals. As an + example, consider this module: + + -module(t). + -export([f/0]). + -record(r, {a,b,c}). + + f() -> + #r{a=1}#r{b=2}. + + The compiler raises the following warning: + + 1> c(t). + t.erl:6:12: Warning: expression updates a literal + % 6| #r{a=1}#r{b=2}. + % | ^ + + Own Id: OTP-18951 + Related Id(s): PR-8069 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of stdlib-6.0 +> +> compiler-5.0, crypto-4.5, erts-14.3, kernel-9.3, sasl-3.0 + +# syntax_tools-3.2 + +## Fixed Bugs and Malfunctions + +- The `epp_dodger` module can now handle the `maybe` and `else` keywords. + + Own Id: OTP-18608 + Related Id(s): GH-7266, PR-7267 + +- Reverting a `#wrapper` will no longer throw away changes made to + positions/annotations. + + Own Id: OTP-18805 + Related Id(s): PR-7398 + +## Improvements and New Features + +- The type erl_syntax:annotation_or_location/0 is now exported. + + Own Id: OTP-18715 + Related Id(s): PR-7535 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of syntax_tools-3.2 +> +> compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0 + +# tftp-1.2 + +## Improvements and New Features + +- There is now a new `tftp_logger` callback behavior module. + + Own Id: OTP-18787 + Related Id(s): PR-7700 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of tftp-1.2 +> +> erts-6.0, kernel-6.0, stdlib-5.0 + +# tools-4.0 + +## Fixed Bugs and Malfunctions + +- Dialyzer warnings due to type specs added in `dbg` have been eliminated. + + Own Id: OTP-18860 + +## Improvements and New Features + +- Triple-Quoted Strings has been implemented as per EEP 64. See String in the + Reference Manual. + + Example: + + 1> """ + a + b + c + """. + "a\nb\nc" + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + + Own Id: OTP-18750 + Related Id(s): PR-7313, PR-7451, OTP-18746 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + +- There is a new tool `tprof`, which combines the functionality of `eprof` + and `cprof` under one interface. It also adds heap profiling. + + Own Id: OTP-18756 + Related Id(s): PR-6639 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the `cover` tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + `line_coverage` option. + + To enable native coverage in the runtime system, start it like so: + + $ erl +JPcover true + + There are also the following new functions for supporting native coverage: + + - code:coverage_support/0 + - code:get_coverage/2 + - code:reset_coverage/1 + - code:get_coverage_mode/0 + - code:get_coverage_mode/1 + - code:set_coverage_mode/1 + + Own Id: OTP-18856 + Related Id(s): PR-7856 + + *** HIGHLIGHT *** + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of tools-4.0 +> +> compiler-8.5, erts-14.3, erts-14.3, kernel-9.3, runtime_tools-2.1, stdlib-6.0 + +# wx-2.5 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of wx-2.5 +> +> erts-12.0, kernel-8.0, stdlib-5.0 + +# xmerl-1.4 + +## Improvements and New Features + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- As an alternative to `xmerl_xml`, a new export module `xmerl_xml_indent` that + provides out-of-the box indented output has been added. + + Own Id: OTP-18922 + Related Id(s): PR-7942 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): PR-8026 + + *** HIGHLIGHT *** + +> #### Full runtime dependencies of xmerl-1.4 +> +> erts-6.0, kernel-3.0, stdlib-2.5 + diff --git a/release-notes/OTP-27.0-rc2.README.txt b/release-notes/OTP-27.0-rc2.README.txt new file mode 100644 index 0000000..b44a5f0 --- /dev/null +++ b/release-notes/OTP-27.0-rc2.README.txt @@ -0,0 +1,3075 @@ +``` +Inital Release: OTP 27.0 +Git Tag: OTP-27.0 +Date: 2024-03-21 +Trouble Report Id: OTP-16607, OTP-18568, OTP-18577, OTP-18589, + OTP-18590, OTP-18594, OTP-18606, OTP-18608, + OTP-18609, OTP-18622, OTP-18639, OTP-18641, + OTP-18642, OTP-18648, OTP-18658, OTP-18665, + OTP-18667, OTP-18668, OTP-18671, OTP-18673, + OTP-18680, OTP-18682, OTP-18684, OTP-18699, + OTP-18703, OTP-18709, OTP-18713, OTP-18714, + OTP-18715, OTP-18716, OTP-18717, OTP-18727, + OTP-18741, OTP-18742, OTP-18743, OTP-18744, + OTP-18750, OTP-18756, OTP-18761, OTP-18766, + OTP-18774, OTP-18778, OTP-18779, OTP-18781, + OTP-18783, OTP-18784, OTP-18785, OTP-18786, + OTP-18787, OTP-18788, OTP-18789, OTP-18793, + OTP-18794, OTP-18795, OTP-18796, OTP-18801, + OTP-18804, OTP-18805, OTP-18806, OTP-18807, + OTP-18808, OTP-18809, OTP-18813, OTP-18816, + OTP-18819, OTP-18820, OTP-18825, OTP-18831, + OTP-18834, OTP-18835, OTP-18846, OTP-18847, + OTP-18848, OTP-18849, OTP-18852, OTP-18856, + OTP-18859, OTP-18860, OTP-18865, OTP-18870, + OTP-18874, OTP-18875, OTP-18876, OTP-18878, + OTP-18879, OTP-18881, OTP-18884, OTP-18887, + OTP-18892, OTP-18894, OTP-18898, OTP-18904, + OTP-18908, OTP-18912, OTP-18913, OTP-18914, + OTP-18916, OTP-18918, OTP-18920, OTP-18922, + OTP-18923, OTP-18927, OTP-18928, OTP-18929, + OTP-18930, OTP-18934, OTP-18938, OTP-18941, + OTP-18942, OTP-18943, OTP-18944, OTP-18945, + OTP-18946, OTP-18947, OTP-18950, OTP-18951, + OTP-18954, OTP-18955, OTP-18959, OTP-18961, + OTP-18963, OTP-18965, OTP-18966, OTP-18967, + OTP-18968, OTP-18969, OTP-18972, OTP-18973, + OTP-18975, OTP-18976, OTP-18977, OTP-18978, + OTP-18980, OTP-18981, OTP-18984, OTP-18987, + OTP-18989, OTP-18992, OTP-18993, OTP-18994, + OTP-18995, OTP-18998, OTP-19001, OTP-19004, + OTP-19005, OTP-19010, OTP-19014, OTP-19016, + OTP-19017, OTP-19018, OTP-19020, OTP-19022, + OTP-19025, OTP-19026, OTP-19027, OTP-19029, + OTP-19030 +Seq num: BL-312, BL-322, ERIERL-43, ERIERL-964, + ERIERL-967, ERIERL-985, GH-4992, GH-6152, + GH-6692, GH-6979, GH-6985, GH-7183, GH-7232, + GH-7266, GH-7295, GH-7397, GH-7432, GH-7438, + GH-7493, GH-7494, GH-7706, GH-7718, GH-7972, + GH-8058, GH-8061, GH-8066, GH-8159, GH-8166, + OTP-16448, OTP-16608, OTP-16875, OTP-17734, + OTP-18746, OTP-18750, OTP-18835, PR-6510, + PR-6639, PR-6658, PR-6791, PR-6985, PR-7110, + PR-7125, PR-7174, PR-7202, PR-7220, PR-7236, + PR-7243, PR-7267, PR-7274, PR-7299, PR-7313, + PR-7316, PR-7348, PR-7380, PR-7383, PR-7388, + PR-7398, PR-7419, PR-7428, PR-7441, PR-7443, + PR-7447, PR-7451, PR-7465, PR-7470, PR-7474, + PR-7475, PR-7481, PR-7491, PR-7496, PR-7528, + PR-7534, PR-7535, PR-7538, PR-7556, PR-7585, + PR-7590, PR-7592, PR-7607, PR-7628, PR-7639, + PR-7649, PR-7651, PR-7675, PR-7684, PR-7697, + PR-7699, PR-7700, PR-7701, PR-7702, PR-7703, + PR-7711, PR-7720, PR-7726, PR-7728, PR-7732, + PR-7738, PR-7739, PR-7740, PR-7745, PR-7779, + PR-7781, PR-7782, PR-7790, PR-7809, PR-7816, + PR-7824, PR-7844, PR-7845, PR-7846, PR-7847, + PR-7856, PR-7857, PR-7869, PR-7879, PR-7891, + PR-7898, PR-7917, PR-7918, PR-7936, PR-7942, + PR-7952, PR-7957, PR-7960, PR-7963, PR-7973, + PR-7977, PR-7981, PR-7993, PR-8003, PR-8004, + PR-8006, PR-8026, PR-8035, PR-8042, PR-8048, + PR-8063, PR-8067, PR-8069, PR-8076, PR-8086, + PR-8090, PR-8091, PR-8092, PR-8093, PR-8095, + PR-8103, PR-8111, PR-8112, PR-8155, PR-8156, + PR-8164, PR-8168, PR-8177, PR-8182, PR-8205, + PR-8241 +System: OTP +Release: 27 +Application: asn1-5.3, common_test-1.27, compiler-8.5, + crypto-5.5, debugger-5.4, dialyzer-5.2, + diameter-2.4, edoc-1.3, eldap-1.2.13, + erl_interface-5.5.2, erts-14.3, et-1.7.1, + eunit-2.9.1, ftp-1.2.2, inets-9.2, + jinterface-1.14.1, kernel-9.3, megaco-4.6, + mnesia-4.23.1, observer-2.16, odbc-2.14.3, + os_mon-2.10, parsetools-2.6, public_key-1.16, + reltool-1.0.1, runtime_tools-2.1, sasl-4.2.2, + snmp-5.16, ssh-5.2, ssl-11.2, stdlib-6.0, + syntax_tools-3.2, tftp-1.2, tools-4.0, + wx-2.4.2, xmerl-1.4 +Predecessor: OTP +``` + +Check out the git tag OTP-27.0, and build a full OTP system including +documentation. + +# HIGHLIGHTS + +- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the + modules [`sets`], [`ordsets`], and [`gb_sets`]. + + Own Id: OTP-18622 + Application(s): stdlib + Related Id(s): [GH-7183], [GH-7232] + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + ```erlang + a() -> ok; + a(_) -> error. + ``` + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + ```text + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + ``` + + while in Erlang/OTP 27 the diagnostic is similar to: + + ```text + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + ``` + + Own Id: OTP-18648 + Application(s): compiler, stdlib + Related Id(s): [PR-7383] + +- The compiler will now merge consecutive updates of the same record. + + As an example, the body of the following function will be combined into a + single tuple creation instruction: + + ```erlang + -record(r, {a,b,c,d}). + + update(Value) -> + R0 = #r{}, + R1 = R0#r{a=Value}, + R2 = R1#r{b=2}, + R2#r{c=3}. + ``` + + Own Id: OTP-18680 + Application(s): compiler + Related Id(s): ERIERL-967, [PR-7491], [PR-8086] + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and `/=`) and all relative comparison + operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Application(s): otp + Related Id(s): [PR-7728] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The `erl` command now supports the `-S` flag, which is similar to the `-run` + flag, except that it will pass all arguments up to end of the command line to + the called function. (The `-run` flag will not pass arguments beginning with a + hyphen.) Another difference is that `-S` will always call a function with one + argument, passing an empty list if no arguments were given. + + Own Id: OTP-18744 + Application(s): erts + Related Id(s): [PR-7470] + +- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the + Reference Manual. + + Example: + + ```erlang + 1> """ + a + b + c + """. + "a\nb\nc" + ``` + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + ```text + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + ``` + + Own Id: OTP-18750 + Application(s): stdlib, tools + Related Id(s): [PR-7313], [PR-7451], OTP-18746 + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- Several new functions that accept funs have been added to module [`timer`]. + + Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept + a nullary fun as the second argument, while functions `apply_after/3`, + `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second + and a list of n arguments for the fun as the third argument. + + Own Id: OTP-18808 + Application(s): stdlib + Related Id(s): [PR-7649] + +- Sigils on string literals have been implemented as per [EEP 66], that is: + binary and string sigils in verbatim and escape characters variants, as well + as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted + strings (EEP 64). See Sigils in the Reference Manual. + + Examples: + + ```erlang + 1> ~"Björn". + <<"Björn"/utf8>> + 2> ~b"Björn". + <<"Björn"/utf8>> + 3> ~S"\s*(\w+)". + "\\s*(\\w+)" + 4> ~B"\s*(\w+)". + <<"\\s*(\\w+)">> + ``` + + Own Id: OTP-18825 + Application(s): stdlib + Related Id(s): [PR-7684], OTP-18750 + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the [`cover`] tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + [`line_coverage`] option. + + To enable native coverage in the runtime system, start it like so: + + ```text + $ erl +JPcover true + ``` + + There are also the following new functions for supporting native coverage: + + - `code:coverage_support/0` + - `code:get_coverage/2` + - `code:reset_coverage/1` + - `code:get_coverage_mode/0` + - `code:get_coverage_mode/1` + - `code:set_coverage_mode/1` + + Own Id: OTP-18856 + Application(s): compiler, erts, kernel, tools + Related Id(s): [PR-7856] + +- [EEP-59 - Documentation Attributes] has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of [EEP-48]. + - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc` + attributes are missing in exported functions, types, and callbacks. + - Using the compiler flag `warn_missing_spec_documented` will raise a warning + when spec attributes are missing in documented functions, types, and + callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Application(s): compiler, stdlib + Related Id(s): [PR-7936] + +- New [`ets`] functions `ets:first_lookup/1`, `ets:next_lookup/2`, + `ets:prev_lookup/2` and `ets:last_lookup/1`. Example: `ets:next_lookup/1` is + equivalent to `ets:next/2` followed by `ets:lookup/2` with the next key. The + new combined functions are more efficient and with guaranteed atomicity. + + Own Id: OTP-18923 + Application(s): stdlib + Related Id(s): [PR-6791] + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + ```erlang + -feature(maybe_expr, disable). + ``` + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + ```text + erlc -disable-feature maybe_expr some_file.erl + ``` + + Own Id: OTP-18944 + Application(s): otp, stdlib + Related Id(s): [PR-8067] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Application(s): asn1, common_test, compiler, crypto, debugger, dialyzer, + diameter, edoc, eldap, erl_interface, erts, et, eunit, ftp, inets, jinterface, + kernel, megaco, mnesia, observer, odbc, os_mon, parsetools, public_key, + reltool, runtime_tools, sasl, snmp, ssh, ssl, stdlib, syntax_tools, tftp, + tools, wx, xmerl + Related Id(s): [PR-8026] + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + ```erlang + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + ``` + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Application(s): compiler, erts + Related Id(s): [PR-8090] + +- Multiple trace sessions. + + Own Id: OTP-18980 + Application(s): erts + +- The `jer` (JSON Encoding Rules) for ASN.1 now use the new [`json`] module for + encoding and decoding JSON. Thus, there is no longer any need for an external + JSON library. + + Own Id: OTP-19018 + Application(s): asn1 + Related Id(s): [PR-8241] + +- There is a new module [`json`] for encoding and decoding [JSON]. + + Both encoding and decoding can be customized. Decoding can be done in a + SAX-like fashion and handle multiple documents and streams of data. + + Own Id: OTP-19020 + Application(s): stdlib + Related Id(s): [PR-8111] + +# POTENTIAL INCOMPATIBILITIES + +- The `pid` field has been removed from `erlang:fun_info/1,2`. + + Own Id: OTP-18594 + Application(s): erts + Related Id(s): [PR-7274] + +- By default, escripts will now be compiled instead of interpreted. That means + that the `compiler` application must be installed. + + Own Id: OTP-18639 + Application(s): erts + Related Id(s): [PR-7348] + +- Introduced a default value for httpd_server name configuration to improve ease + of use. + + Own Id: OTP-18641 + Application(s): inets + Related Id(s): [PR-7316] + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and `/=`) and all relative comparison + operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Application(s): otp + Related Id(s): [PR-7728] + + \*\*\* HIGHLIGHT \*\*\* + +- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the + Reference Manual. + + Example: + + ```erlang + 1> """ + a + b + c + """. + "a\nb\nc" + ``` + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + ```text + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + ``` + + Own Id: OTP-18750 + Application(s): stdlib, tools + Related Id(s): [PR-7313], [PR-7451], OTP-18746 + + \*\*\* HIGHLIGHT \*\*\* + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Application(s): compiler, otp, stdlib + Related Id(s): [GH-7706], [PR-7726] + +- The existing experimental support for archive files will be changed in a + future release. The support for having an archive in an escript will remain, + but the support for using archives in a release will either become more + limited or completely removed. + + As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice` + flag, and using [`erl_prim_loader`] for reading members of an archive are + deprecated. + + To remain compatible with future version of Erlang/OTP `escript` scripts that + need to retrieve data files from its archive should use `escript:extract/2` + instead of `erl_prim_loader` and `code:lib_dir/2`. + + Own Id: OTP-18966 + Application(s): kernel, otp + Related Id(s): [PR-8091] + +- The order in which the compiler looks up options has changed. + + When there is a conflict in the compiler options given in the `-compile()` + attribute and options given to the compiler, the options given in the + `-compile()` attribute overrides the option given to the compiler, which in + turn overrides options given in the `ERL_COMPILER_OPTIONS` environment + variable. + + Example: + + If `some_module.erl` has the following attribute: + + ```erlang + -compile([nowarn_missing_spec]). + ``` + + and the compiler is invoked like so: + + ```text + % erlc +warn_missing_spec some_module.erl + ``` + + no warnings will be issued for functions that do not have any specs. + + Own Id: OTP-18968 + Application(s): compiler + Related Id(s): [GH-6979], [PR-8093] + +- The implementations of `http_uri:encode/1` and `http_uri:decode/1` are now + replaced with their equivalent, but bug free versions from module + [`uri_string`], namely `uri_string:quote/1` and `uri_string:unquote/1`. + + Own Id: OTP-19022 + Application(s): inets + +- For security reasons remove CBC ciphers form default supported cipher suites + in TLS-1.2 + + Own Id: OTP-19025 + Application(s): ssl + +- Enhance simple_one_for_one error handling. Avoid crash of transient child + returning ignore for init-function. Also disallow automatic shutdown as it + does not make sense for this supervisor type, may potentially be backwards + incompatible for no intended uses, that is supervisors will not remain + bug-compatible. + + Own Id: OTP-19029 + Application(s): stdlib + +# OTP-27.0 + +## Fixed Bugs and Malfunctions + +- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0` + when using the term equivalence operators (`=:=` and `=/=`). + + The arithmetic equality operators (`==` and `/=`) and all relative comparison + operations still consider `0.0` equal to `-0.0`. + + Own Id: OTP-18717 + Related Id(s): [PR-7728] + + \*\*\* HIGHLIGHT \*\*\* + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): [GH-7706], [PR-7726] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +## Improvements and New Features + +- `configure` scripts of the OTP build system are now generated using Autoconf + 2.72. + + Own Id: OTP-18943 + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + ```erlang + -feature(maybe_expr, disable). + ``` + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + ```text + erlc -disable-feature maybe_expr some_file.erl + ``` + + Own Id: OTP-18944 + Related Id(s): [PR-8067] + + \*\*\* HIGHLIGHT \*\*\* + +- By default `configure` scripts used when building OTP will now try to enable + support for timestamps that will work after mid-January 2038. This has + typically only been an issue on 32-bit platforms. + + If `configure` cannot figure out how to enable such timestamps, it will abort + with an error message. If you want to build the system anyway, knowing that + the system will not function properly after mid-January 2038, you can pass the + `--disable-year2038` option to `configure`, which will enable `configure` to + continue without support for timestamps after mid-January 2038. + + Own Id: OTP-18965 + Related Id(s): [PR-8095] + +- The existing experimental support for archive files will be changed in a + future release. The support for having an archive in an escript will remain, + but the support for using archives in a release will either become more + limited or completely removed. + + As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice` + flag, and using [`erl_prim_loader`] for reading members of an archive are + deprecated. + + To remain compatible with future version of Erlang/OTP `escript` scripts that + need to retrieve data files from its archive should use `escript:extract/2` + instead of `erl_prim_loader` and `code:lib_dir/2`. + + Own Id: OTP-18966 + Related Id(s): [PR-8091] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The restriction for the expression that gives a default value for a record + field is now documented. + + Own Id: OTP-18995 + Related Id(s): [GH-8166], [PR-8177] + +# asn1-5.3 + +## Fixed Bugs and Malfunctions + +- Multiple bugs has been eliminated in the [specialized decode feature]. + + Own Id: OTP-18813 + Related Id(s): [PR-7790] + +## Improvements and New Features + +- Specs have been added to all `asn1ct` API functions. + + Own Id: OTP-18804 + Related Id(s): [PR-7738] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- The `jer` (JSON Encoding Rules) for ASN.1 now use the new [`json`] module for + encoding and decoding JSON. Thus, there is no longer any need for an external + JSON library. + + Own Id: OTP-19018 + Related Id(s): [PR-8241] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of asn1-5.3 +> +> erts-14.0, kernel-9.0, stdlib-5.0 + +# common_test-1.27 + +## Improvements and New Features + +- Calls to `ct:capture_start/0` and `ct:capture_stop/0` are now synchronous to + ensure that all output is captured. + + Own Id: OTP-18658 + Related Id(s): [PR-7380] + +- The order in which multiple hooks are executed can now be reversed after each + config function. See [CTH Execution Order]. + + Own Id: OTP-18682 + Related Id(s): ERIERL-43, [GH-7397], [PR-7496] + +- The default CSS will now include a basic dark mode handling if it is preferred + by the browser. + + Own Id: OTP-18761 + Related Id(s): [PR-7428] + +- `-callback` attributes have been added to [`ct_suite`] and [`ct_hooks`]. + + Own Id: OTP-18781 + Related Id(s): [PR-7701] + +- The built-in [cth_log_redirect] hook can now be configured to replace default + logger reports in terminal with HTML logs. + + Own Id: OTP-18875 + Related Id(s): [PR-7891] + +- Error handling for the [`ct_property_test`] framework has been enhanced. + + Own Id: OTP-18881 + Related Id(s): [PR-7824] + +- Enhance test case documentation, making it clear how a test case can be + failed. + + Own Id: OTP-18892 + Related Id(s): [PR-7869] + +- The failing line in the test source code is now colored to make it easier to + find on the screen. + + Own Id: OTP-18898 + Related Id(s): [PR-7917] + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- With this change, suite execution elapsed time is included in index page. + + Own Id: OTP-18981 + Related Id(s): [GH-7972], [PR-8112] + +> #### Full runtime dependencies of common_test-1.27 +> +> compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, +> kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, +> stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8 + +# compiler-8.5 + +## Fixed Bugs and Malfunctions + +- Generators for binary comprehensions could be evaluated before it was known + that they would be needed. That could result in a binary comprehensions + failing if a generator that should not be evaluated until later failed. + + As an example, consider this module: + + ```erlang + -module(t). + -export([f/0]). + + f() -> + <<0 || _ <- [], _ <- ok, false>>. + ``` + + In Erlang/OTP 26 it would fail like so: + + ```text + > t:f(). + ** exception error: bad generator ok + in function t:f/0 (t.erl, line 6) + ``` + + In Erlang/OTP 27 it returns an empty binary: + + ```text + > t:f(). + <<>> + ``` + + Own Id: OTP-18703 + Related Id(s): [GH-7494], [PR-7538] + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): [GH-7706], [PR-7726] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +## Improvements and New Features + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + ```erlang + a() -> ok; + a(_) -> error. + ``` + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + ```text + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + ``` + + while in Erlang/OTP 27 the diagnostic is similar to: + + ```text + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + ``` + + Own Id: OTP-18648 + Related Id(s): [PR-7383] + + \*\*\* HIGHLIGHT \*\*\* + +- The compiler now optimizes creation of binaries that are known to be constant. + + Consider this example: + + ```erlang + bin() -> + C = char(), + <<C>>. + + char() -> $*. + ``` + + Essentially, the compiler rewrites the example to the slightly more efficient: + + ```erlang + bin() -> + _ = char(), + <<$*>>. + + char() -> $*. + ``` + + Own Id: OTP-18673 + Related Id(s): ERIERL-964, [PR-7474] + +- The compiler will now merge consecutive updates of the same record. + + As an example, the body of the following function will be combined into a + single tuple creation instruction: + + ```erlang + -record(r, {a,b,c,d}). + + update(Value) -> + R0 = #r{}, + R1 = R0#r{a=Value}, + R2 = R1#r{b=2}, + R2#r{c=3}. + ``` + + Own Id: OTP-18680 + Related Id(s): ERIERL-967, [PR-7491], [PR-8086] + + \*\*\* HIGHLIGHT \*\*\* + +- Improved the performance of the alias analysis pass. + + Own Id: OTP-18714 + Related Id(s): [GH-7432], [PR-7528] + +- `-spec` attributes are now used for documentation. + + Own Id: OTP-18801 + Related Id(s): [PR-7739] + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the [`cover`] tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + [`line_coverage`] option. + + To enable native coverage in the runtime system, start it like so: + + ```text + $ erl +JPcover true + ``` + + There are also the following new functions for supporting native coverage: + + - `code:coverage_support/0` + - `code:get_coverage/2` + - `code:reset_coverage/1` + - `code:get_coverage_mode/0` + - `code:get_coverage_mode/1` + - `code:set_coverage_mode/1` + + Own Id: OTP-18856 + Related Id(s): [PR-7856] + + \*\*\* HIGHLIGHT \*\*\* + +- [EEP-59 - Documentation Attributes] has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of [EEP-48]. + - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc` + attributes are missing in exported functions, types, and callbacks. + - Using the compiler flag `warn_missing_spec_documented` will raise a warning + when spec attributes are missing in documented functions, types, and + callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Related Id(s): [PR-7936] + + \*\*\* HIGHLIGHT \*\*\* + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- The order in which the compiler looks up options has changed. + + When there is a conflict in the compiler options given in the `-compile()` + attribute and options given to the compiler, the options given in the + `-compile()` attribute overrides the option given to the compiler, which in + turn overrides options given in the `ERL_COMPILER_OPTIONS` environment + variable. + + Example: + + If `some_module.erl` has the following attribute: + + ```erlang + -compile([nowarn_missing_spec]). + ``` + + and the compiler is invoked like so: + + ```text + % erlc +warn_missing_spec some_module.erl + ``` + + no warnings will be issued for functions that do not have any specs. + + Own Id: OTP-18968 + Related Id(s): [GH-6979], [PR-8093] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + ```erlang + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + ``` + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Related Id(s): [PR-8090] + + \*\*\* HIGHLIGHT \*\*\* + +- Improved the match context reuse optimization slightly, allowing match + contexts to be passed as-is to `bit_size/1` and `byte_size/1`. + + Own Id: OTP-18987 + +- `m:erl_lint` (and by extension the [`compiler`]) will now warn for code using + deprecated callbacks. + + The only callback currenly deprecated is `format_status/2` in `gen_server`, + `gen_event` and `gen_statem`. + + You can use `nowarn_deprecated_callback` to silence the warning. + + Own Id: OTP-19010 + Related Id(s): [PR-8205] + +> #### Full runtime dependencies of compiler-8.5 +> +> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0 + +# crypto-5.5 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Removed functions `crypto_dyn_iv_init/3` and `crypto_dyn_iv_update/3` which + were marked as deprecated since OTP 25. + + Own Id: OTP-18973 + +- Add support for sm3 hash and hmac. + + Own Id: OTP-18975 + Related Id(s): [PR-6658] + +- `OPENSSL_thread_stop` is called when `crypto` is purged to not leak thread + specific data. + + Own Id: OTP-18978 + Related Id(s): [PR-7809] + +- Add SM4 block cipher implemented according to GB/T 32907-2016. + + Own Id: OTP-19005 + Related Id(s): [PR-8168] + +> #### Full runtime dependencies of crypto-5.5 +> +> erts-9.0, kernel-5.3, stdlib-3.9 + +# debugger-5.4 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): [PR-7441] + +## Improvements and New Features + +- Type specs have been added to all API functions. + + Own Id: OTP-18819 + Related Id(s): [PR-7781] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of debugger-5.4 +> +> compiler-8.0, erts-14.3, kernel-8.0, stdlib-3.15, wx-2.0 + +# dialyzer-5.2 + +## Improvements and New Features + +- The `--gui` option for Dialyzer has been removed. + + Own Id: OTP-18667 + Related Id(s): [PR-7443] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of dialyzer-5.2 +> +> compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0 + +# diameter-2.4 + +## Improvements and New Features + +- `-callback` attributes have been added to [`diameter_app`] and + [`diameter_transport`]. + + Own Id: OTP-18783 + Related Id(s): [PR-7699] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of diameter-2.4 +> +> erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0 + +# edoc-1.3 + +## Fixed Bugs and Malfunctions + +- [EEP 48] doc chunks now properly include links within `{@type }` macros. + + Own Id: OTP-18945 + Related Id(s): [PR-8063] + +- `@hidden` now means `hidden` in [EEP 48] doc chunks instead of `none`. + + Own Id: OTP-18946 + Related Id(s): [PR-8063] + +## Improvements and New Features + +- There is a new `edoc_html_to_markdown` module that can be used to convert + EEP-48 `application/html+erlang` to Markdown. + + Own Id: OTP-18947 + Related Id(s): [PR-8063] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of edoc-1.3 +> +> erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7 + +# eldap-1.2.13 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of eldap-1.2.13 +> +> asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-3.4 + +# erl_interface-5.5.2 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +## Known Bugs and Problems + +- 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. + + Own Id: OTP-16607 + Related Id(s): OTP-16608 + +# erts-14.3 + +## Fixed Bugs and Malfunctions + +- Bugs in how `erl -extra` interacts with passing flags via ERL\_\*FLAGS or + `-args_file` have been fixed. + + Own Id: OTP-18766 + Related Id(s): [PR-7639] + +- Fixed a bug that prevented the emulator from building on recent versions of + Yocto Linux. + + Own Id: OTP-18918 + Related Id(s): [PR-7952] + +- Fix spectre mitigation configure test to work with GCC patches to always add + `-fcf-protection=full`. + + Own Id: OTP-18928 + Related Id(s): [PR-8006] + +- Fix faulty reduction counting in exiting process which could cause it to do + unnecessary yielding. + + Own Id: OTP-19014 + +## Improvements and New Features + +- Refactored how the JIT handles POSIX signals and how they affect thread + stacks, allowing us to use the native stack register for Erlang stacks on more + platforms. + + Notably, containers built on 64-bit x86 Alpine Linux images will now perform + much better in sequential code. As an example, running `dialyzer` over the OTP + code base finishes about 15% quicker. + + Own Id: OTP-18568 + Related Id(s): [PR-7174] + +- The [`instrument`] module can now track allocations on a per-process or + per-port basis. + + Own Id: OTP-18577 + Related Id(s): [PR-7236] + +- The `pid` field has been removed from `erlang:fun_info/1,2`. + + Own Id: OTP-18594 + Related Id(s): [PR-7274] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- By default, escripts will now be compiled instead of interpreted. That means + that the `compiler` application must be installed. + + Own Id: OTP-18639 + Related Id(s): [PR-7348] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- A binary returned from the [`socket`] receive functions is no longer created + as a sub binary of an often large receive buffer binary (socket option + `{otp,rcvbuf}`). This avoids space waste, trusting the allocators to implement + reallocation efficiently. + + Own Id: OTP-18642 + Related Id(s): [GH-6152], [PR-7465] + +- The default process limit has been raised to `1048576` processes. + + Own Id: OTP-18699 + Related Id(s): [PR-7388] + +- The `erlang:system_monitor/2` functionality is now able to monitor long + message queues in the system. + + Own Id: OTP-18709 + Related Id(s): [PR-7651] + +- The `erl` command now supports the `-S` flag, which is similar to the `-run` + flag, except that it will pass all arguments up to end of the command line to + the called function. (The `-run` flag will not pass arguments beginning with a + hyphen.) Another difference is that `-S` will always call a function with one + argument, passing an empty list if no arguments were given. + + Own Id: OTP-18744 + Related Id(s): [PR-7470] + + \*\*\* HIGHLIGHT \*\*\* + +- When implementing an alternative carrier for the Erlang distribution, a + separate input handler process may now be registered, using + `erlang:dist_ctrl_input_handler/2`, also in the case when the distribution + controller is a port. + + Own Id: OTP-18774 + Related Id(s): [PR-7110] + +- The call stack trace has now been added to the error reported by + `erlang:process_flag/2` when `max_heap_size` limit has been exceeded. + + Own Id: OTP-18779 + Related Id(s): [PR-7592] + +- `-callback` attributes have been added to [`erl_tracer`]. + + Own Id: OTP-18794 + Related Id(s): [PR-7703] + +- For `inet_backend = socket`, setting the `active` socket option alone, to + `once`, `true` or `N`, has been optimized, as well as the corresponding data + delivery. + + Own Id: OTP-18835 + +- Socket options that take string now also accept binaries. + + Own Id: OTP-18849 + Related Id(s): [PR-6510] + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the [`cover`] tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + [`line_coverage`] option. + + To enable native coverage in the runtime system, start it like so: + + ```text + $ erl +JPcover true + ``` + + There are also the following new functions for supporting native coverage: + + - `code:coverage_support/0` + - `code:get_coverage/2` + - `code:reset_coverage/1` + - `code:get_coverage_mode/0` + - `code:get_coverage_mode/1` + - `code:set_coverage_mode/1` + + Own Id: OTP-18856 + Related Id(s): [PR-7856] + + \*\*\* HIGHLIGHT \*\*\* + +- Changed the default value of the command line flag `-code_path_choice Choice` + to `strict`. + + Own Id: OTP-18894 + Related Id(s): [PR-7243] + +- Added module loading to `erl -init_debug` printouts. + + Own Id: OTP-18929 + Related Id(s): [PR-8004] + +- When the runtime system halts, it performs various flush operations before + terminating. By default there is no limit on how much time the flush + operations are allowed to take. A new _halt flush timeout_ functionality has + been introduced which can be used for limiting the amount of time that the + flushing operations are allowed to take. For more information see the + documentation of the [`flush_timeout`] option of the `erlang:halt/2` BIF and + the documentation of the `erl` [`+zhft <Timeout>`] command line flag. + + Own Id: OTP-18938 + Related Id(s): [GH-7438], [PR-8035] + +- Optimized code loading by moving certain operations from the code server to + the caller. + + Own Id: OTP-18941 + Related Id(s): [PR-7981] + +- Updated asmjit to version a465fe71ab3d0e224b2b4bd0fac69ae68ab9239d + + Own Id: OTP-18942 + +- The deprecated functions in [`zlib`] have been removed. That includes + `inflateChunk/{1,2}`, `getBufSize/1`, `setBufSize/2`, the CRC32 functions, and + the Adler checksum functions. + + Own Id: OTP-18950 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Safe destructive update of tuples has been implemented in the compiler and + runtime system. This allows the VM to update tuples in-place when it is safe + to do so, thus improving performance by doing less copying but also by + producing less garbage. + + Example: + + ```erlang + -record(rec, {a,b,c}). + + update(#rec{a=needs_update,b=N}=R0) -> + R = R0#rec{a=up_to_date}, + if + N < 0 -> + R#rec{c=negative}; + N == 0 -> + R#rec{c=zero}; + N > 0 -> + R#rec{c=positive} + end. + ``` + + The record updates in each of the three clauses of the `if` can safely be done + in-place, because variable `R` is not used again. + + Own Id: OTP-18972 + Related Id(s): [PR-8090] + + \*\*\* HIGHLIGHT \*\*\* + +- The obsolete and undocumented support for opening a port to an external + resource by passing an atom (or a string) as first argument to `open_port()`, + implemented by the vanilla driver, has been removed. This feature has been + scheduled for removal in OTP 27 since the release of OTP 26. + + Own Id: OTP-18976 + Related Id(s): [PR-7125] + +- An optional NIF callback `ERL_NIF_OPT_ON_UNLOAD_THREAD` to be called by all + scheduler threads when a NIF library is unloaded. Used for releasing thread + specific data. Can be set with function `enif_set_option`. + + Own Id: OTP-18977 + Related Id(s): [PR-7809] + +- Multiple trace sessions. + + Own Id: OTP-18980 + \*\*\* HIGHLIGHT \*\*\* + +- Added the `+MMlp on|off` emulator option to let the `mseg` allocator use + "large pages" (sometimes known as "huge pages" or "super pages"). This + currently only affects super-carrier allocations, but may be extended in the + future. + + Own Id: OTP-18984 + Related Id(s): [PR-7977] + +- `inet_backend = socket` has been optimized and reworked to be more compatible + with the original `inet_backend = inet`. + + Own Id: OTP-19004 + Related Id(s): OTP-18835 + +> #### Full runtime dependencies of erts-14.3 +> +> kernel-9.0, sasl-3.3, stdlib-4.1 + +# et-1.7.1 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): [PR-7441] + +- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated. + + Own Id: OTP-18860 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of et-1.7.1 +> +> erts-9.0, kernel-5.3, runtime_tools-1.10, stdlib-3.4, wx-1.2 + +# eunit-2.9.1 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of eunit-2.9.1 +> +> erts-9.0, kernel-5.3, stdlib-3.4 + +# ftp-1.2.2 + +## Fixed Bugs and Malfunctions + +- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated. + + Own Id: OTP-18860 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of ftp-1.2.2 +> +> erts-7.0, kernel-6.0, runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + +# inets-9.2 + +## Improvements and New Features + +- Introduced a default value for httpd_server name configuration to improve ease + of use. + + Own Id: OTP-18641 + Related Id(s): [PR-7316] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The `httpd` module has been extended with an API for simple serving directory + content over HTTP. With this change, the current working directory can be + served like this: + + ``` + erl -S httpd + ``` + + An arbitrary directory can be served like this: + + ``` + erl -S httpd serve path/to/dir + ``` + + Own Id: OTP-18727 + Related Id(s): [PR-7299] + +- Add `-callback` attributes to [`httpd`], [`mod_esi`] and [`mod_security`]. + + Own Id: OTP-18786 + Related Id(s): [PR-7700] + +- Use a relative redirect with an absolute path to prevent whoever is running + inets from having to configure the ServerName to match the network-reachable + hostname of the server. + + Own Id: OTP-18809 + +- `inets` processes now use `proc_lib:set_label/1` to improve observeability. + + Own Id: OTP-18927 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- The implementations of `http_uri:encode/1` and `http_uri:decode/1` are now + replaced with their equivalent, but bug free versions from module + [`uri_string`], namely `uri_string:quote/1` and `uri_string:unquote/1`. + + Own Id: OTP-19022 + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +> #### Full runtime dependencies of inets-9.2 +> +> erts-14.0, kernel-9.0, mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, +> ssl-9.0, stdlib-5.0, stdlib-6.0 + +# jinterface-1.14.1 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +# kernel-9.3 + +## Fixed Bugs and Malfunctions + +- Fixed a crash when calling `file:delete/2` with an empty option list. + + Own Id: OTP-18590 + Related Id(s): [PR-7220] + +- New functions have been added to the undocumented module [`inet_dns`] that + take a flag to specify if encode/decode is for mDNS. This affects how CLASS + values in the private range, with the top bit set, are handled. + + Own Id: OTP-18878 + Related Id(s): [GH-7718], OTP-17734 + +- The error information for `erlang:phash/2` has been corrected. + + Own Id: OTP-18904 + Related Id(s): [PR-7960] + +- `get_until` requests using the I/O protocol now correctly return a binary or + list when `eof` is the last item returned by the callback. + + Own Id: OTP-18930 + Related Id(s): [GH-4992], [PR-7993] + +- Calling `logger:add_handlers/1` with config option now works. + + Own Id: OTP-18954 + Related Id(s): [GH-8061], [PR-8076] + +- The `code:del_path/1` function now also works on paths added through `-pa`, + `-pz` , `-path` and the boot script. + + Own Id: OTP-18959 + Related Id(s): [GH-6692], [PR-7697] + +## Improvements and New Features + +- Added `file:read_file/2` with a `raw` option for reading files without going + through the file server. + + Own Id: OTP-18589 + Related Id(s): [PR-7220] + +- The undocumented Erlang DNS resolver library (`inet_dns` and `inet_res`) has + been augmented to handle IXFR, NOTIFY, UPDATE and TSIG records. With this some + bug fixes and code cleanup has been done, and the resolver used in the test + suite has been changed to Knot DNS. See the source code. + + Kudos to Alexander Clouter that did almost all the work! + + Own Id: OTP-18713 + Related Id(s): [GH-6985], [PR-6985] + +- The `ebin` directories for escripts are now cached. + + Own Id: OTP-18778 + Related Id(s): [PR-7556] + +- `-callback` attributes haven been added to [`application`], + [`logger_handler`], and [`logger_formatter`]. + + Own Id: OTP-18795 + Related Id(s): [PR-7703] + +- Progress reports from before logger is started are now logged when log level + is set to debug. + + Own Id: OTP-18807 + Related Id(s): ERIERL-985, [PR-7732] + +- The `code:where_is_file/2` and `code:which/1` functions now check for + existence of the file directly instead of listing the content of each + directory in the code path. + + Own Id: OTP-18816 + Related Id(s): [PR-7711] + +- Type specs has been added to the [`logger:Level/1,2,3`] functions. + + Own Id: OTP-18820 + Related Id(s): [PR-7779] + +- For `inet_backend = socket`, setting the `active` socket option alone, to + `once`, `true` or `N`, has been optimized, as well as the corresponding data + delivery. + + Own Id: OTP-18835 + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): [PR-7845] + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the [`cover`] tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + [`line_coverage`] option. + + To enable native coverage in the runtime system, start it like so: + + ```text + $ erl +JPcover true + ``` + + There are also the following new functions for supporting native coverage: + + - `code:coverage_support/0` + - `code:get_coverage/2` + - `code:reset_coverage/1` + - `code:get_coverage_mode/0` + - `code:get_coverage_mode/1` + - `code:set_coverage_mode/1` + + Own Id: OTP-18856 + Related Id(s): [PR-7856] + + \*\*\* HIGHLIGHT \*\*\* + +- Optimized code loading by moving certain operations from the code server to + the caller. + + Own Id: OTP-18941 + Related Id(s): [PR-7981] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Application startup has been optimized by removing an intermediary process. + + Own Id: OTP-18963 + Related Id(s): [PR-8042] + +- The existing experimental support for archive files will be changed in a + future release. The support for having an archive in an escript will remain, + but the support for using archives in a release will either become more + limited or completely removed. + + As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice` + flag, and using [`erl_prim_loader`] for reading members of an archive are + deprecated. + + To remain compatible with future version of Erlang/OTP `escript` scripts that + need to retrieve data files from its archive should use `escript:extract/2` + instead of `erl_prim_loader` and `code:lib_dir/2`. + + Own Id: OTP-18966 + Related Id(s): [PR-8091] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The undocumented and deprecated `file:pid2name` function has been removed. + + Own Id: OTP-18967 + Related Id(s): [PR-8092] + +- Improve error logging when the standard_io reader and/or writer terminate with + an error. + + Own Id: OTP-18989 + Related Id(s): [PR-8103] + +- `inet_backend = socket` has been optimized and reworked to be more compatible + with the original `inet_backend = inet`. + + Own Id: OTP-19004 + Related Id(s): OTP-18835 + +> #### Full runtime dependencies of kernel-9.3 +> +> crypto-5.0, erts-14.3, sasl-3.0, stdlib-6.0 + +# megaco-4.6 + +## Improvements and New Features + +- `-callback` attributes have been added to [`megaco_transport`]. + + Own Id: OTP-18806 + Related Id(s): [PR-7740] + +- Updated types and specs for all API modules. + + Own Id: OTP-18920 + Related Id(s): BL-322 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of megaco-4.6 +> +> asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, +> stdlib-2.5 + +# mnesia-4.23.1 + +## Fixed Bugs and Malfunctions + +- The `mnesia_registry` module have been deprecated. + + Own Id: OTP-18994 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of mnesia-4.23.1 +> +> erts-9.0, kernel-5.3, stdlib-5.0 + +# observer-2.16 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): [PR-7441] + +## Improvements and New Features + +- The new function `proc_lib:set_label/1` can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, [`observer`], and it will be included in crash reports + produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and + [`gen_fsm`]. + + The label for a process can be retrieved by calling `proc_lib:get_label/1`. + + Note that those functions work on any process, not only processes that use + [`proc_lib`]. + + Example: + + ```text + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + ``` + + Own Id: OTP-18789 + Related Id(s): [PR-7720], [PR-8003] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of observer-2.16 +> +> erts-14.0, et-1.5, kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3 + +# odbc-2.14.3 + +## Fixed Bugs and Malfunctions + +- Change liborder in makefile to avoid finding system libei instead of erlang + libei. + + Own Id: OTP-19030 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of odbc-2.14.3 +> +> erts-6.0, kernel-3.0, stdlib-2.0 + +# os_mon-2.10 + +## Improvements and New Features + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of os_mon-2.10 +> +> erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0 + +# parsetools-2.6 + +## Improvements and New Features + +- The `leex` documentation has been updated to use specs for documenting the + generated interface. + + Own Id: OTP-18796 + Related Id(s): [PR-7703] + +- yecc now wraps the `-module` attribute with `-file` to indicate the `.yrl` + source file. + + Own Id: OTP-18912 + Related Id(s): [PR-7963] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of parsetools-2.6 +> +> erts-6.0, kernel-3.0, stdlib-3.4 + +# public_key-1.16 + +## Improvements and New Features + +- The `ssl` client can negotiate and handle certificate status request (OCSP + stapling support on the client side). + + Own Id: OTP-18606 + Related Id(s): OTP-16448, OTP-16875 + +- Improved exception reason when `public_key:cacerts_get/0` failed. + + Own Id: OTP-18609 + Related Id(s): [GH-7295], [PR-7202] + +- Key customization support has been extended to allow flexibility for + implementers of for instance hardware security modules (HSM) or trusted + platform modules (TPM). + + Own Id: OTP-18876 + Related Id(s): [PR-7475], [PR-7898] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of public_key-1.16 +> +> asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 + +# reltool-1.0.1 + +## Fixed Bugs and Malfunctions + +- The dependencies for this application are now listed in the app file. + + Own Id: OTP-18831 + Related Id(s): [PR-7441] + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of reltool-1.0.1 +> +> erts-14.3, kernel-9.0, sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3 + +# runtime_tools-2.1 + +## Improvements and New Features + +- The [`instrument`] module can now track allocations on a per-process or + per-port basis. + + Own Id: OTP-18577 + Related Id(s): [PR-7236] + +- The new function `proc_lib:set_label/1` can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, [`observer`], and it will be included in crash reports + produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and + [`gen_fsm`]. + + The label for a process can be retrieved by calling `proc_lib:get_label/1`. + + Note that those functions work on any process, not only processes that use + [`proc_lib`]. + + Example: + + ```text + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + ``` + + Own Id: OTP-18789 + Related Id(s): [PR-7720], [PR-8003] + +- Type specs had been added to all [`dbg`] functions. + + Own Id: OTP-18859 + Related Id(s): [PR-7782] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of runtime_tools-2.1 +> +> erts-14.2, kernel-8.1, mnesia-4.12, stdlib-6.0 + +# sasl-4.2.2 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of sasl-4.2.2 +> +> erts-14.3, kernel-6.0, stdlib-4.0, tools-2.6.14 + +# snmp-5.16 + +## Improvements and New Features + +- `-callback` attributes have been added to modules + [`snmpa_network_interface_filter`], [`snmpa_notification_filter`], + [`snmpm_network_interface_filter`], [`snmpm_user`], and + [`snmpa_notification_delivery_info_receiver`]. + + New `-type` attributes have also been added to modules [`snmp`], [`snmpa`], + [`snmpm`], and [`snmpa_conf`] to support the previously mentioned callbacks. + + Own Id: OTP-18785 + Related Id(s): [PR-7702] + +- Updated types and specs for all API modules. + + Own Id: OTP-18934 + Related Id(s): BL-312 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of snmp-5.16 +> +> crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, +> stdlib-5.0 + +# ssh-5.2 + +## Fixed Bugs and Malfunctions + +- With this change, ssh processes are assigned labels for troubleshooting + purposes. + + Own Id: OTP-19017 + +## Improvements and New Features + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): [PR-7845] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Updated types and specs for all API modules. + + Own Id: OTP-18961 + +> #### Full runtime dependencies of ssh-5.2 +> +> crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, +> stdlib-5.0, stdlib-6.0 + +# ssl-11.2 + +## Fixed Bugs and Malfunctions + +- Starting a TLS server without sufficient credentials (certificate or anonymous + cipher) would work, but it was impossible to connect to it. + + This has been corrected to return an error instead of starting the server. + + Own Id: OTP-18887 + Related Id(s): [GH-7493], [PR-7918] + +- Handle ASN.1 decode errors in more places, to improve user error handling. + + Own Id: OTP-18969 + Related Id(s): [GH-8058] + +- Improved error checking on the API functions. + + Own Id: OTP-18992 + Related Id(s): [GH-8066], [PR-8156] + +## Improvements and New Features + +- The `ssl` client can negotiate and handle certificate status request (OCSP + stapling support on the client side). + + Own Id: OTP-18606 + Related Id(s): OTP-16448, OTP-16875 + +- Memory consumption has been reduced and performance increased by refactoring + internal data structures and their usage. + + Own Id: OTP-18665 + Related Id(s): [PR-7447] + +- Added `ssl_crl_cache_api:lookup/2` as an optional `-callback` attribute. + + Own Id: OTP-18788 + Related Id(s): [PR-7700] + +- Key customization support has been extended to allow flexibility for + implementers of for instance hardware security modules (HSM) or trusted + platform modules (TPM). + + Own Id: OTP-18876 + Related Id(s): [PR-7475], [PR-7898] + +- The `proc_lib:set_label/1` function is now used to increase observability of + `ssl` processes. + + Own Id: OTP-18879 + +- Add support for brainpool elliptic curves in TLS-1.3. + + Own Id: OTP-18884 + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Make ssl:key_exporter_materials/4 a documented and supported API function. + + Own Id: OTP-19016 + +- For security reasons remove CBC ciphers form default supported cipher suites + in TLS-1.2 + + Own Id: OTP-19025 + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- Add cert_policy_opts option to configure certificate policy options for the + certificate path validation. + + Own Id: OTP-19027 + +> #### Full runtime dependencies of ssl-11.2 +> +> crypto-5.0, erts-14.3, inets-5.10.7, kernel-9.0, public_key-1.15, +> runtime_tools-1.15.1, stdlib-6.0 + +# stdlib-6.0 + +## Fixed Bugs and Malfunctions + +- The specs in module [`binary`] has been updated to reflect what is allowed by + the documentation. + + Own Id: OTP-18684 + Related Id(s): [PR-7481] + +- Several functions in the [`binary`] module would accept arguments of the wrong + type under certain circumstances. In this release, they now raise an exception + when incorrect types are given. + + The following functions would accept an invalid pattern if the subject binary + was empty or if the `{scope,{0,0}}` option was given: `binary:match/2,3`, + `binary:matches/2,3`, `binary:replace/3,4`, and `binary:split/2,3` + + The call `binary:copy(<<1:1>>, 0)` would return an empty binary instead of + raising an exception. Similarly, calls to `binary:part/2,3` attempting to + extract 0 bytes at position 0 of a bitstring would return an empty binary + instead of raising an exception. + + Own Id: OTP-18743 + Related Id(s): [PR-7607], [PR-7628] + +- The documentation for the preprocessor now mentions that `defined(Name)` can + be called in the condition for an `-if` or `-elif` directive to test whether + `Name` is the name of a defined macro. (This feature was implemented in OTP + 21.) + + If a function call in an `-if` or `-elif` with a name that is not the name of + a guard BIF, there would not be a compilation error, but would instead cause + the lines following the directive to be skipped. This has now been changed to + be a compilation error. + + Own Id: OTP-18784 + Related Id(s): [GH-7706], [PR-7726] + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- `get_until` requests using the I/O protocol now correctly return a binary or + list when `eof` is the last item returned by the callback. + + Own Id: OTP-18930 + Related Id(s): [GH-4992], [PR-7993] + +- Enhance simple_one_for_one error handling. Avoid crash of transient child + returning ignore for init-function. Also disallow automatic shutdown as it + does not make sense for this supervisor type, may potentially be backwards + incompatible for no intended uses, that is supervisors will not remain + bug-compatible. + + Own Id: OTP-19029 + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +## Improvements and New Features + +- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the + modules [`sets`], [`ordsets`], and [`gb_sets`]. + + Own Id: OTP-18622 + Related Id(s): [GH-7183], [GH-7232] + + \*\*\* HIGHLIGHT \*\*\* + +- The compiler now emits nicer error message for function head mismatches. For + example, given: + + ```erlang + a() -> ok; + a(_) -> error. + ``` + + Erlang/OTP 26 and earlier would emit a diagnostic similar to: + + ```text + t.erl:6:1: head mismatch + % 6| a(_) -> error. + % | ^ + ``` + + while in Erlang/OTP 27 the diagnostic is similar to: + + ```text + t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted? + % 6| a(_) -> error. + % | ^ + ``` + + Own Id: OTP-18648 + Related Id(s): [PR-7383] + + \*\*\* HIGHLIGHT \*\*\* + +- `zip:create/2,3` will now tolerate POSIX timestamps in the provided + `file_info` records. + + Own Id: OTP-18668 + +- The callback function `gen_statem:handle_event/4` has been cached in the + `gen_statem` engine to optimize callback call speed. + + Own Id: OTP-18671 + Related Id(s): [PR-7419] + +- The type `beam_lib:beam/0` is now exported. + + Own Id: OTP-18716 + Related Id(s): [PR-7534] + +- The documentation for the [`binary`] module has been improved. + + Own Id: OTP-18741 + Related Id(s): [PR-7585] + +- `binary:replace/3,4` now supports using a fun for supplying the replacement + binary. + + Own Id: OTP-18742 + Related Id(s): [PR-7590] + +- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the + Reference Manual. + + Example: + + ```erlang + 1> """ + a + b + c + """. + "a\nb\nc" + ``` + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + ```text + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + ``` + + Own Id: OTP-18750 + Related Id(s): [PR-7313], [PR-7451], OTP-18746 + + \*\*\* HIGHLIGHT \*\*\* + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- The new function `proc_lib:set_label/1` can be used to add a descriptive term + to any process that does not have a registered name. The name will be shown by + tools such as `\c:i/0`, [`observer`], and it will be included in crash reports + produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and + [`gen_fsm`]. + + The label for a process can be retrieved by calling `proc_lib:get_label/1`. + + Note that those functions work on any process, not only processes that use + [`proc_lib`]. + + Example: + + ```text + 1> self(). + <0.90.0> + 2> proc_lib:set_label(my_label). + ok + 3> i(). + . + . + . + <0.90.0> erlang:apply/2 2586 75011 0 + my_label c:pinfo/2 51 + 4> proc_lib:get_label(self()). + my_label + ``` + + Own Id: OTP-18789 + Related Id(s): [PR-7720], [PR-8003] + +- `-callback` attributes has been added to modules [`sys`] and [`erl_error`]. + + Own Id: OTP-18793 + Related Id(s): [PR-7703] + +- Several new functions that accept funs have been added to module [`timer`]. + + Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept + a nullary fun as the second argument, while functions `apply_after/3`, + `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second + and a list of n arguments for the fun as the third argument. + + Own Id: OTP-18808 + Related Id(s): [PR-7649] + + \*\*\* HIGHLIGHT \*\*\* + +- Sigils on string literals have been implemented as per [EEP 66], that is: + binary and string sigils in verbatim and escape characters variants, as well + as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted + strings (EEP 64). See Sigils in the Reference Manual. + + Examples: + + ```erlang + 1> ~"Björn". + <<"Björn"/utf8>> + 2> ~b"Björn". + <<"Björn"/utf8>> + 3> ~S"\s*(\w+)". + "\\s*(\\w+)" + 4> ~B"\s*(\w+)". + <<"\\s*(\\w+)">> + ``` + + Own Id: OTP-18825 + Related Id(s): [PR-7684], OTP-18750 + + \*\*\* HIGHLIGHT \*\*\* + +- Functions `shell:default_multiline_prompt/1`, `shell:inverted_space_prompt/1`, + and `shell:prompt_width/1` have been exported to help with custom prompt + implementations. + + Own Id: OTP-18834 + Related Id(s): [PR-7675], [PR-7816] + +- The shell now pages long output from the help command (`h(Module)`), auto + completions and the search command. + + Own Id: OTP-18846 + Related Id(s): [PR-7845] + +- The `M-h` hotkey (Alt/Option-h) now outputs help for the module or function + directly before the cursor. + + Own Id: OTP-18847 + Related Id(s): [PR-7846] + +- Added support for adding a custom code formatter that formats your multi-line + shell commands in your preferred formatting on submission. See + `shell:format_shell_func/` and `shell:erl_pp_format_func/1`. + + Own Id: OTP-18848 + Related Id(s): [PR-7847] + +- Added shell functions for viewing, forgetting and saving locally defined + functions, types and records. + + Own Id: OTP-18852 + Related Id(s): [PR-7844] + +- Added `string:jaro_similarity/2`, which can be used to calculate the + similarity between two strings. + + Own Id: OTP-18865 + Related Id(s): [PR-7879] + +- The new function `ets:update_element/4` is similar to `ets:update_element/3`, + but takes a default tuple as the fourth argument, which will be inserted if no + previous record with that key exists. + + Own Id: OTP-18870 + Related Id(s): [PR-7857] + +- Added functions to retrieve the next higher or lower key/element from + [`gb_trees`] and [`gb_sets`], as well as returning iterators that start at + given keys/elements. + + Own Id: OTP-18874 + Related Id(s): [PR-7745] + +- When the shell built-in function [`c/1,2`][c12] is used to re-compile a + module, the current working directory of the original compilation is now added + to the include path. + + [c12]: `\c:c/1` + + Own Id: OTP-18908 + Related Id(s): [PR-7957] + +- The `timer` module now uses a private table for its internal state, slightly + improving its performance. + + Own Id: OTP-18914 + Related Id(s): [PR-7973] + +- [EEP-59 - Documentation Attributes] has been implemented. + + Documentation attributes can be used to document functions, types, callbacks, + and modules. The keyword `-moduledoc "Documentation here".` is used to + document modules, while `-doc "Documentation here".` can be used on top of + functions, types, and callbacks to document them, respectively. + + - Types, callbacks, and function documentation can be set to `hidden` either + via `-doc false` or `-doc hidden`. When documentation attributes mark a type + as hidden, they will not be part of the documentation. + - The documentation from `moduledoc` and `doc` gets added by default to the + binary beam file, following the format of [EEP-48]. + - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc` + attributes are missing in exported functions, types, and callbacks. + - Using the compiler flag `warn_missing_spec_documented` will raise a warning + when spec attributes are missing in documented functions, types, and + callbacks. + - `moduledoc`s and `doc`s may refer to external files to be embedded, such as + `-doc {file, "README.md"}.`, which refers to the file `README.md` found in + the current working directory. + - The compiler warns about exported functions whose specs refer to hidden + types. Thus, there will be warnings when a hidden type (meaning, the type is + not part of the documentation) gets used in an exported function. + + Own Id: OTP-18916 + Related Id(s): [PR-7936] + + \*\*\* HIGHLIGHT \*\*\* + +- New [`ets`] functions `ets:first_lookup/1`, `ets:next_lookup/2`, + `ets:prev_lookup/2` and `ets:last_lookup/1`. Example: `ets:next_lookup/1` is + equivalent to `ets:next/2` followed by `ets:lookup/2` with the next key. The + new combined functions are more efficient and with guaranteed atomicity. + + Own Id: OTP-18923 + Related Id(s): [PR-6791] + + \*\*\* HIGHLIGHT \*\*\* + +- The `maybe` expression is now enabled by default. + + To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the + `maybe` expression can be disabled by disabling the `maybe_expr` feature. That + can be done by placing the following the line at the beginning of an Erlang + source file: + + ```erlang + -feature(maybe_expr, disable). + ``` + + Another way to disable the `maybe_expr` feature is by passing the + `-disable-feature` option to `erlc`: + + ```text + erlc -disable-feature maybe_expr some_file.erl + ``` + + Own Id: OTP-18944 + Related Id(s): [PR-8067] + + \*\*\* HIGHLIGHT \*\*\* + +- The compiler will now raise a warning when updating record/map literals. As an + example, consider this module: + + ```erlang + -module(t). + -export([f/0]). + -record(r, {a,b,c}). + + f() -> + #r{a=1}#r{b=2}. + ``` + + The compiler raises the following warning: + + ```text + 1> c(t). + t.erl:6:12: Warning: expression updates a literal + % 6| #r{a=1}#r{b=2}. + % | ^ + ``` + + Own Id: OTP-18951 + Related Id(s): [PR-8069] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +- Optimized `ets:foldl` and `ets:foldr` to use new `ets:next_lookup`. Also made + them immune against table renaming. + + Own Id: OTP-18993 + Related Id(s): [PR-8048] + +- Windows now supports all functions in [`math`]. + + Own Id: OTP-19001 + Related Id(s): [PR-8164] + +- `m:erl_lint` (and by extension the [`compiler`]) will now warn for code using + deprecated callbacks. + + The only callback currenly deprecated is `format_status/2` in `gen_server`, + `gen_event` and `gen_statem`. + + You can use `nowarn_deprecated_callback` to silence the warning. + + Own Id: OTP-19010 + Related Id(s): [PR-8205] + +- There is a new module [`json`] for encoding and decoding [JSON]. + + Both encoding and decoding can be customized. Decoding can be done in a + SAX-like fashion and handle multiple documents and streams of data. + + Own Id: OTP-19020 + Related Id(s): [PR-8111] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of stdlib-6.0 +> +> compiler-5.0, crypto-4.5, erts-14.3, kernel-9.3, sasl-3.0 + +# syntax_tools-3.2 + +## Fixed Bugs and Malfunctions + +- The [`epp_dodger`] module can now handle the `maybe` and `else` keywords. + + Own Id: OTP-18608 + Related Id(s): [GH-7266], [PR-7267] + +- Reverting a `#wrapper` will no longer throw away changes made to + positions/annotations. + + Own Id: OTP-18805 + Related Id(s): [PR-7398] + +## Improvements and New Features + +- The type `erl_syntax:annotation_or_location/0` is now exported. + + Own Id: OTP-18715 + Related Id(s): [PR-7535] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of syntax_tools-3.2 +> +> compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0 + +# tftp-1.2 + +## Improvements and New Features + +- There is a new [`tftp_logger`] callback behavior module. + + Own Id: OTP-18787 + Related Id(s): [PR-7700] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of tftp-1.2 +> +> erts-6.0, kernel-6.0, stdlib-5.0 + +# tools-4.0 + +## Fixed Bugs and Malfunctions + +- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated. + + Own Id: OTP-18860 + +- In Erlang/OTP 26, doing a [`cover`] analysis on the `line` level would return + multiple entries for lines on which multiple functions were defined. + + For example, consider this module: + + -module(foo). + -export([bar/0, baz/0]). + + bar() -> ok. baz() -> not_ok. + + In Erlang/OTP 26, analysing on the `line` level would return two entries for + line 4: + + 1> cover:compile_module(foo). + {ok,foo} + 2> foo:bar(). + ok + 3> cover:analyse(foo, coverage, line). + {ok,[{{foo,4},{1,0}},{{foo,4},{0,1}}]} + 4> cover:analyse(foo, calls, line). + {ok,[{{foo,4},1},{{foo,4},0}]} + + In Erlang/OTP 27, there will only be a single entry for line 4: + + 1> cover:compile_module(foo). + {ok,foo} + 2> foo:bar(). + ok + 3> cover:analyse(foo, coverage, line). + {ok,[{{foo,4},{1,0}}]} + 4> cover:analyse(foo, calls, line). + {ok,[{{foo,4},1}]} + + Own Id: OTP-18998 + Related Id(s): [GH-8159], [PR-8182] + +- Fixed align command in emacs mode. + + Own Id: OTP-19026 + Related Id(s): [PR-8155] + +## Improvements and New Features + +- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the + Reference Manual. + + Example: + + ```erlang + 1> """ + a + b + c + """. + "a\nb\nc" + ``` + + Adjacent string literals without intervening white space is now a syntax + error, to avoid possible confusion with triple-quoted strings. For example: + + ```text + 1> "abc""xyz". + "xyz". + * 1:6: adjacent string literals without intervening white space + ``` + + Own Id: OTP-18750 + Related Id(s): [PR-7313], [PR-7451], OTP-18746 + + \*\*\* HIGHLIGHT \*\*\* + + \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* + +- There is a new tool [`tprof`], which combines the functionality of [`eprof`] + and [`cprof`] under one interface. It also adds heap profiling. + + Own Id: OTP-18756 + Related Id(s): [PR-6639] + +- Native coverage support has been implemented in the JIT. It will automatically + be used by the [`cover`] tool to reduce the execution overhead when running + cover-compiled code. + + There are also new APIs to support native coverage without using the `cover` + tool. + + To instrument code for native coverage it must be compiled with the + [`line_coverage`] option. + + To enable native coverage in the runtime system, start it like so: + + ```text + $ erl +JPcover true + ``` + + There are also the following new functions for supporting native coverage: + + - `code:coverage_support/0` + - `code:get_coverage/2` + - `code:reset_coverage/1` + - `code:get_coverage_mode/0` + - `code:get_coverage_mode/1` + - `code:set_coverage_mode/1` + + Own Id: OTP-18856 + Related Id(s): [PR-7856] + + \*\*\* HIGHLIGHT \*\*\* + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of tools-4.0 +> +> compiler-8.5, erts-14.3, erts-14.3, kernel-9.3, runtime_tools-2.1, stdlib-6.0 + +# wx-2.4.2 + +## Improvements and New Features + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of wx-2.4.2 +> +> erts-12.0, kernel-8.0, stdlib-5.0 + +# xmerl-1.4 + +## Improvements and New Features + +- Function specifications and types have been added to all public API functions. + + Own Id: OTP-18913 + +- As an alternative to `xmerl_xml`, a new export module `xmerl_xml_indent` that + provides out-of-the box indented output has been added. + + Own Id: OTP-18922 + Related Id(s): [PR-7942] + +- The documentation has been migrated to use Markdown and ExDoc. + + Own Id: OTP-18955 + Related Id(s): [PR-8026] + + \*\*\* HIGHLIGHT \*\*\* + +> #### Full runtime dependencies of xmerl-1.4 +> +> erts-6.0, kernel-3.0, stdlib-2.5 + +[CTH Execution Order]: + https://erlang.org/doc/apps/common_test/ct_hooks_chapter.html#cth_execution_order +[EEP 48]: https://www.erlang.org/eeps/eep-0048 +[EEP 64]: https://www.erlang.org/eeps/eep-0064 +[EEP 66]: https://www.erlang.org/eeps/eep-0066 +[EEP-48]: https://www.erlang.org/eeps/eep-0048 +[EEP-59 - Documentation Attributes]: https://www.erlang.org/eeps/eep-0059 +[GH-4992]: https://github.com/erlang/otp/issues/4992 +[GH-6152]: https://github.com/erlang/otp/issues/6152 +[GH-6692]: https://github.com/erlang/otp/issues/6692 +[GH-6979]: https://github.com/erlang/otp/issues/6979 +[GH-6985]: https://github.com/erlang/otp/issues/6985 +[GH-7183]: https://github.com/erlang/otp/issues/7183 +[GH-7232]: https://github.com/erlang/otp/issues/7232 +[GH-7266]: https://github.com/erlang/otp/issues/7266 +[GH-7295]: https://github.com/erlang/otp/issues/7295 +[GH-7397]: https://github.com/erlang/otp/issues/7397 +[GH-7432]: https://github.com/erlang/otp/issues/7432 +[GH-7438]: https://github.com/erlang/otp/issues/7438 +[GH-7493]: https://github.com/erlang/otp/issues/7493 +[GH-7494]: https://github.com/erlang/otp/issues/7494 +[GH-7706]: https://github.com/erlang/otp/issues/7706 +[GH-7718]: https://github.com/erlang/otp/issues/7718 +[GH-7972]: https://github.com/erlang/otp/issues/7972 +[GH-8058]: https://github.com/erlang/otp/issues/8058 +[GH-8061]: https://github.com/erlang/otp/issues/8061 +[GH-8066]: https://github.com/erlang/otp/issues/8066 +[GH-8159]: https://github.com/erlang/otp/issues/8159 +[GH-8166]: https://github.com/erlang/otp/issues/8166 +[JSON]: https://en.wikipedia.org/wiki/JSON +[PR-6510]: https://github.com/erlang/otp/pull/6510 +[PR-6639]: https://github.com/erlang/otp/pull/6639 +[PR-6658]: https://github.com/erlang/otp/pull/6658 +[PR-6791]: https://github.com/erlang/otp/pull/6791 +[PR-6985]: https://github.com/erlang/otp/pull/6985 +[PR-7110]: https://github.com/erlang/otp/pull/7110 +[PR-7125]: https://github.com/erlang/otp/pull/7125 +[PR-7174]: https://github.com/erlang/otp/pull/7174 +[PR-7202]: https://github.com/erlang/otp/pull/7202 +[PR-7220]: https://github.com/erlang/otp/pull/7220 +[PR-7236]: https://github.com/erlang/otp/pull/7236 +[PR-7243]: https://github.com/erlang/otp/pull/7243 +[PR-7267]: https://github.com/erlang/otp/pull/7267 +[PR-7274]: https://github.com/erlang/otp/pull/7274 +[PR-7299]: https://github.com/erlang/otp/pull/7299 +[PR-7313]: https://github.com/erlang/otp/pull/7313 +[PR-7316]: https://github.com/erlang/otp/pull/7316 +[PR-7348]: https://github.com/erlang/otp/pull/7348 +[PR-7380]: https://github.com/erlang/otp/pull/7380 +[PR-7383]: https://github.com/erlang/otp/pull/7383 +[PR-7388]: https://github.com/erlang/otp/pull/7388 +[PR-7398]: https://github.com/erlang/otp/pull/7398 +[PR-7419]: https://github.com/erlang/otp/pull/7419 +[PR-7428]: https://github.com/erlang/otp/pull/7428 +[PR-7441]: https://github.com/erlang/otp/pull/7441 +[PR-7443]: https://github.com/erlang/otp/pull/7443 +[PR-7447]: https://github.com/erlang/otp/pull/7447 +[PR-7451]: https://github.com/erlang/otp/pull/7451 +[PR-7465]: https://github.com/erlang/otp/pull/7465 +[PR-7470]: https://github.com/erlang/otp/pull/7470 +[PR-7474]: https://github.com/erlang/otp/pull/7474 +[PR-7475]: https://github.com/erlang/otp/pull/7475 +[PR-7481]: https://github.com/erlang/otp/pull/7481 +[PR-7491]: https://github.com/erlang/otp/pull/7491 +[PR-7496]: https://github.com/erlang/otp/pull/7496 +[PR-7528]: https://github.com/erlang/otp/pull/7528 +[PR-7534]: https://github.com/erlang/otp/pull/7534 +[PR-7535]: https://github.com/erlang/otp/pull/7535 +[PR-7538]: https://github.com/erlang/otp/pull/7538 +[PR-7556]: https://github.com/erlang/otp/pull/7556 +[PR-7585]: https://github.com/erlang/otp/pull/7585 +[PR-7590]: https://github.com/erlang/otp/pull/7590 +[PR-7592]: https://github.com/erlang/otp/pull/7592 +[PR-7607]: https://github.com/erlang/otp/pull/7607 +[PR-7628]: https://github.com/erlang/otp/pull/7628 +[PR-7639]: https://github.com/erlang/otp/pull/7639 +[PR-7649]: https://github.com/erlang/otp/pull/7649 +[PR-7651]: https://github.com/erlang/otp/pull/7651 +[PR-7675]: https://github.com/erlang/otp/pull/7675 +[PR-7684]: https://github.com/erlang/otp/pull/7684 +[PR-7697]: https://github.com/erlang/otp/pull/7697 +[PR-7699]: https://github.com/erlang/otp/pull/7699 +[PR-7700]: https://github.com/erlang/otp/pull/7700 +[PR-7701]: https://github.com/erlang/otp/pull/7701 +[PR-7702]: https://github.com/erlang/otp/pull/7702 +[PR-7703]: https://github.com/erlang/otp/pull/7703 +[PR-7711]: https://github.com/erlang/otp/pull/7711 +[PR-7720]: https://github.com/erlang/otp/pull/7720 +[PR-7726]: https://github.com/erlang/otp/pull/7726 +[PR-7728]: https://github.com/erlang/otp/pull/7728 +[PR-7732]: https://github.com/erlang/otp/pull/7732 +[PR-7738]: https://github.com/erlang/otp/pull/7738 +[PR-7739]: https://github.com/erlang/otp/pull/7739 +[PR-7740]: https://github.com/erlang/otp/pull/7740 +[PR-7745]: https://github.com/erlang/otp/pull/7745 +[PR-7779]: https://github.com/erlang/otp/pull/7779 +[PR-7781]: https://github.com/erlang/otp/pull/7781 +[PR-7782]: https://github.com/erlang/otp/pull/7782 +[PR-7790]: https://github.com/erlang/otp/pull/7790 +[PR-7809]: https://github.com/erlang/otp/pull/7809 +[PR-7816]: https://github.com/erlang/otp/pull/7816 +[PR-7824]: https://github.com/erlang/otp/pull/7824 +[PR-7844]: https://github.com/erlang/otp/pull/7844 +[PR-7845]: https://github.com/erlang/otp/pull/7845 +[PR-7846]: https://github.com/erlang/otp/pull/7846 +[PR-7847]: https://github.com/erlang/otp/pull/7847 +[PR-7856]: https://github.com/erlang/otp/pull/7856 +[PR-7857]: https://github.com/erlang/otp/pull/7857 +[PR-7869]: https://github.com/erlang/otp/pull/7869 +[PR-7879]: https://github.com/erlang/otp/pull/7879 +[PR-7891]: https://github.com/erlang/otp/pull/7891 +[PR-7898]: https://github.com/erlang/otp/pull/7898 +[PR-7917]: https://github.com/erlang/otp/pull/7917 +[PR-7918]: https://github.com/erlang/otp/pull/7918 +[PR-7936]: https://github.com/erlang/otp/pull/7936 +[PR-7942]: https://github.com/erlang/otp/pull/7942 +[PR-7952]: https://github.com/erlang/otp/pull/7952 +[PR-7957]: https://github.com/erlang/otp/pull/7957 +[PR-7960]: https://github.com/erlang/otp/pull/7960 +[PR-7963]: https://github.com/erlang/otp/pull/7963 +[PR-7973]: https://github.com/erlang/otp/pull/7973 +[PR-7977]: https://github.com/erlang/otp/pull/7977 +[PR-7981]: https://github.com/erlang/otp/pull/7981 +[PR-7993]: https://github.com/erlang/otp/pull/7993 +[PR-8003]: https://github.com/erlang/otp/pull/8003 +[PR-8004]: https://github.com/erlang/otp/pull/8004 +[PR-8006]: https://github.com/erlang/otp/pull/8006 +[PR-8026]: https://github.com/erlang/otp/pull/8026 +[PR-8035]: https://github.com/erlang/otp/pull/8035 +[PR-8042]: https://github.com/erlang/otp/pull/8042 +[PR-8048]: https://github.com/erlang/otp/pull/8048 +[PR-8063]: https://github.com/erlang/otp/pull/8063 +[PR-8067]: https://github.com/erlang/otp/pull/8067 +[PR-8069]: https://github.com/erlang/otp/pull/8069 +[PR-8076]: https://github.com/erlang/otp/pull/8076 +[PR-8086]: https://github.com/erlang/otp/pull/8086 +[PR-8090]: https://github.com/erlang/otp/pull/8090 +[PR-8091]: https://github.com/erlang/otp/pull/8091 +[PR-8092]: https://github.com/erlang/otp/pull/8092 +[PR-8093]: https://github.com/erlang/otp/pull/8093 +[PR-8095]: https://github.com/erlang/otp/pull/8095 +[PR-8103]: https://github.com/erlang/otp/pull/8103 +[PR-8111]: https://github.com/erlang/otp/pull/8111 +[PR-8112]: https://github.com/erlang/otp/pull/8112 +[PR-8155]: https://github.com/erlang/otp/pull/8155 +[PR-8156]: https://github.com/erlang/otp/pull/8156 +[PR-8164]: https://github.com/erlang/otp/pull/8164 +[PR-8168]: https://github.com/erlang/otp/pull/8168 +[PR-8177]: https://github.com/erlang/otp/pull/8177 +[PR-8182]: https://github.com/erlang/otp/pull/8182 +[PR-8205]: https://github.com/erlang/otp/pull/8205 +[PR-8241]: https://github.com/erlang/otp/pull/8241 +[`+zhft <Timeout>`]: erl_cmd.md#+zhft +[`application`]: https://erlang.org/doc/man/application +[`binary`]: https://erlang.org/doc/man/binary +[`compiler`]: https://erlang.org/doc/man/compile +[`cover`]: https://erlang.org/doc/man/cover +[`cprof`]: https://erlang.org/doc/man/cprof +[`ct_hooks`]: https://erlang.org/doc/man/ct_hooks +[`ct_property_test`]: https://erlang.org/doc/man/ct_property_test +[`ct_suite`]: https://erlang.org/doc/man/ct_suite +[`dbg`]: https://erlang.org/doc/man/dbg +[`diameter_app`]: https://erlang.org/doc/man/diameter_app +[`diameter_transport`]: https://erlang.org/doc/man/diameter_transport +[`epp_dodger`]: https://erlang.org/doc/man/epp_dodger +[`eprof`]: https://erlang.org/doc/man/eprof +[`erl_error`]: https://erlang.org/doc/man/erl_error +[`erl_prim_loader`]: https://erlang.org/doc/man/erl_prim_loader +[`erl_tracer`]: https://erlang.org/doc/man/erl_tracer +[`ets`]: https://erlang.org/doc/man/ets +[`flush_timeout`]: https://erlang.org/doc/man/erlang#halt_flush_timeout +[`gb_sets`]: https://erlang.org/doc/man/gb_sets +[`gb_trees`]: https://erlang.org/doc/man/gb_trees +[`gen_event`]: https://erlang.org/doc/man/gen_event +[`gen_fsm`]: https://erlang.org/doc/man/gen_fsm +[`gen_server`]: https://erlang.org/doc/man/gen_server +[`gen_statem`]: https://erlang.org/doc/man/gen_statem +[`httpd`]: https://erlang.org/doc/man/httpd +[`inet_dns`]: https://erlang.org/doc/man/inet_dns +[`instrument`]: https://erlang.org/doc/man/instrument +[`json`]: https://erlang.org/doc/man/json +[`line_coverage`]: https://erlang.org/doc/man/compile#line_coverage +[`logger:Level/1,2,3`]: https://erlang.org/doc/man/logger +[`logger_formatter`]: https://erlang.org/doc/man/logger_formatter +[`logger_handler`]: https://erlang.org/doc/man/logger_handler +[`math`]: https://erlang.org/doc/man/math +[`megaco_transport`]: https://erlang.org/doc/man/megaco_transport +[`mod_esi`]: https://erlang.org/doc/man/mod_esi +[`mod_security`]: https://erlang.org/doc/man/mod_security +[`observer`]: https://erlang.org/doc/man/observer +[`ordsets`]: https://erlang.org/doc/man/ordsets +[`proc_lib`]: https://erlang.org/doc/man/proc_lib +[`sets`]: https://erlang.org/doc/man/sets +[`snmp`]: https://erlang.org/doc/man/snmp +[`snmpa_conf`]: https://erlang.org/doc/man/snmpa_conf +[`snmpa_network_interface_filter`]: + https://erlang.org/doc/man/snmpa_network_interface_filter +[`snmpa_notification_delivery_info_receiver`]: + https://erlang.org/doc/man/snmpa_notification_delivery_info_receiver +[`snmpa_notification_filter`]: + https://erlang.org/doc/man/snmpa_notification_filter +[`snmpa`]: https://erlang.org/doc/man/snmpa +[`snmpm_network_interface_filter`]: + https://erlang.org/doc/man/snmpm_network_interface_filter +[`snmpm_user`]: https://erlang.org/doc/man/snmpm_user +[`snmpm`]: https://erlang.org/doc/man/snmpm +[`socket`]: https://erlang.org/doc/man/socket +[`sys`]: https://erlang.org/doc/man/sys +[`tftp_logger`]: https://erlang.org/doc/man/tftp_logger +[`timer`]: https://erlang.org/doc/man/timer +[`tprof`]: https://erlang.org/doc/man/tprof +[`uri_string`]: https://erlang.org/doc/man/uri_string +[`zlib`]: https://erlang.org/doc/man/zlib +[cth_log_redirect]: + https://erlang.org/doc/apps/common_test/ct_hooks_chapter.html#built-in-cths +[specialized decode feature]: https://erlang.org/doc/apps/asn1/asn1_spec.html |