Librecov / librecov

Open source code coverage history webapp
https://www.librecov.com
MIT License
16 stars 1 forks source link

chore(deps): update dependency erlang to v27 #273

Open renovate[bot] opened 4 months ago

renovate[bot] commented 4 months ago

This PR contains the following updates:

Package Update Change
erlang major 24.1.7 -> 27.1.1

Release Notes

erlang/otp (erlang) ### [`v27.1.1`](https://redirect.github.com/erlang/otp/releases/tag/OTP-27.1.1): OTP 27.1.1 [Compare Source](https://redirect.github.com/erlang/otp/compare/OTP-27.1...OTP-27.1.1) ### [`v27.1`](https://redirect.github.com/erlang/otp/releases/tag/OTP-27.1): OTP 27.1 [Compare Source](https://redirect.github.com/erlang/otp/compare/OTP-27.0.1...OTP-27.1) Patch Package: OTP 27.1 Git Tag: OTP-27.1 Date: 2024-09-18 Trouble Report Id: OTP-17848, OTP-19032, OTP-19097, OTP-19098, OTP-19101, OTP-19102, OTP-19103, OTP-19104, OTP-19105, OTP-19110, OTP-19112, OTP-19113, OTP-19114, OTP-19119, OTP-19122, OTP-19126, OTP-19128, OTP-19129, OTP-19130, OTP-19132, OTP-19133, OTP-19134, OTP-19136, OTP-19138, OTP-19139, OTP-19143, OTP-19145, OTP-19146, OTP-19148, OTP-19153, OTP-19154, OTP-19157, OTP-19163, OTP-19164, OTP-19166, OTP-19167, OTP-19168, OTP-19169, OTP-19170, OTP-19171, OTP-19172, OTP-19173, OTP-19175, OTP-19176, OTP-19178, OTP-19179, OTP-19181, OTP-19182, OTP-19183, OTP-19186, OTP-19187, OTP-19188, OTP-19189, OTP-19190, OTP-19191, OTP-19192, OTP-19193, OTP-19197, OTP-19199, OTP-19200, OTP-19201, OTP-19202, OTP-19203, OTP-19205, OTP-19206, OTP-19208, OTP-19209, OTP-19210, OTP-19211, OTP-19212, OTP-19214, OTP-19215, OTP-19216, OTP-19217, OTP-19218, OTP-19219, OTP-19220, OTP-19222 Seq num: #​8399, ERIERL-1102, ERIERL-1104, ERIERL-870, GH-4362, GH-7621, GH-7746, GH-8378, GH-8454, GH-8472, GH-8477, GH-8486, GH-8498, GH-8561, GH-8562, GH-8568, GH-8604, GH-8605, GH-8613, GH-8630, GH-8656, GH-8657, GH-8661, GH-8690, GH-8715, GH-8738, GH-8748, GH-8779, GH-8785, OTP-18671, OTP-18835, OTP-19101, OTP-19175, PR-7226, PR-7419, PR-7919, PR-8261, PR-8310, PR-8472, PR-8478, PR-8499, PR-8503, PR-8515, PR-8516, PR-8518, PR-8521, PR-8528, PR-8539, PR-8541, PR-8543, PR-8555, PR-8560, PR-8575, PR-8578, PR-8583, PR-8584, PR-8596, PR-8611, PR-8623, PR-8627, PR-8636, PR-8638, PR-8655, PR-8672, PR-8683, PR-8686, PR-8690, PR-8692, PR-8702, PR-8703, PR-8707, PR-8709, PR-8731, PR-8739, PR-8740, PR-8741, PR-8742, PR-8751, PR-8757, PR-8765, PR-8774, PR-8777, PR-8781 System: OTP Release: 27 Application: asn1-5.3.1, common_test-1.27.1, compiler-8.5.2, crypto-5.5.1, dialyzer-5.2.1, diameter-2.4.1, edoc-1.3.2, erts-15.1, ftp-1.2.3, inets-9.3, kernel-10.1, odbc-2.15, public_key-1.16.2, runtime_tools-2.1.1, snmp-5.17, ssh-5.2.2, ssl-11.2.2, stdlib-6.1, syntax_tools-3.2.1, tftp-1.2.1, tools-4.1, wx-2.4.3, xmerl-2.1 Predecessor: OTP 27.0.1 Check out the git tag OTP-27.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 - The [`zip`][zip] module has been updated with support for: - zip64 archives - Archives larger than 4GB or with more than 2^32 entries. - extended timestamps - Higher resolution and in UTC. - UID/GID - Save and extract the original UID/GID. - Fixes so that permission mode attributes are correctly read and set for files in archives. - `zip:list_dir/2` now also returns directories, not only files. (You can disable this behaviour by using the option `skip_directories`). Various bugs in the original implementation have also been fixed, such as: - Correctly encode and decode the DOS timestamps for entries within an archive (that is the non-extended timestamp). - Fix DOS timestamps to be set to localtime instead of UTC (use extended timestamps for UTC timestamps). - Use the unix file attributes read from disk when creating archives instead of setting everything to 644. Own Id: OTP-19214\ Application(s): erts, stdlib\ Related Id(s): [PR-8765] ### POTENTIAL INCOMPATIBILITIES - Progress reports for a dynamically started supervisor will now be logged at debug level. Own Id: OTP-19202\ Application(s): stdlib\ Related Id(s): [GH-8715], [PR-8261], [PR-8741] ### OTP-27.1 #### Fixed Bugs and Malfunctions - The description of the pre-defined macros has been clarified. In particular, it is now made clear that the release returned by `?OTP_RELEASE` is the release under which the compiler is run. Own Id: OTP-19103\ Related Id(s): [GH-8486], [PR-8518] - `ex_doc` now runs using an explicit escript instance instead of `/usr/bin/env` so that package tools such as `nix` can build the documentation. Own Id: OTP-19145\ Related Id(s): [GH-8378], [PR-8596] - The `otp_patch_apply` script, used for patching OTP applications, has been fixed. It was not possible (and still is not possible) to apply applications from the OTP 27.0.1 patch package onto an OTP 27.0 installation. Own Id: OTP-19182 - `./otp_build download_ex_doc` was using `sha1sum` and `sha256sum` which work on various Unix systems. macOS does not have these applications installed by default, so we added a new dependency to the build process, `shasum`, which is installed by default on macOS and allows us to check the integrity of `ex_doc`. Own Id: OTP-19193\ Related Id(s): [GH-8656], [PR-8707] - On documentation web pages using Mermaid JS scripts for figures, the scripts are now loaded asynchronously so that the rest of pages can be shown while the scripts are still downloading. Own Id: OTP-19197\ Related Id(s): [PR-8731] #### Improvements and New Features - The obsolete documentation for OAM Principles has been removed. Own Id: OTP-19110\ Related Id(s): [PR-8528] ### asn1-5.3.1 The asn1-5.3.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Fixed a cosmetic but harmless issue with the ASN.1 compiler passing on the `undec_rest` option to the Erlang compiler. Own Id: OTP-19218\ Related Id(s): [GH-8779], [PR-8781] > #### Full runtime dependencies of asn1-5.3.1 > > erts-14.0, kernel-9.0, stdlib-5.0 ### common_test-1.27.1 The common_test-1.27.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Groups with empty list specifying groups and test cases no longer crash execution. Own Id: OTP-19032\ Related Id(s): [GH-4362], [PR-7919] - The Common_Test documentation and type specs have been polished. Own Id: OTP-19148\ Related Id(s): [PR-8516] - Man pages are now available for `erl`, `erlc`, `dialyzer`, and all other programs that are included in Erlang/OTP. Own Id: OTP-19201\ Related Id(s): [PR-8740] > #### Full runtime dependencies of common_test-1.27.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.5.2 The compiler-8.5.2 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Fixed a crash in an optimization pass relating to appending binaries. Own Id: OTP-19168\ Related Id(s): [GH-8630] - Fixed a bug in the compiler's alias analysis pass that could make it emit unsafe code. Own Id: OTP-19178\ Related Id(s): [PR-8686] > #### Full runtime dependencies of compiler-8.5.2 > > crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0 ### crypto-5.5.1 The crypto-5.5.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - crypto built with `--enable-fips` will now accept an OpenSSL 3 lib without fips provider as long as fips mode is not enabled. Own Id: OTP-19212\ Related Id(s): [GH-8562] #### Improvements and New Features - Added a warning in the documentation to avoid calling `crypto:start/0` as it does not work for FIPS mode. Use `application:start(crypto)` instead. Own Id: OTP-19143 - Deprecation of RSA encryption functions has been reverted, as there still exists legitimate use cases with other padding modes than PKCS-1. While use PCKS-1 padding with some versions of cryptolib could be considered secure, we still recommend using other algorithms that are less sensitive to oracle attacks. Own Id: OTP-19163 - Compiler warnings for some removed functions have been corrected to point out the correct replacement functions. Own Id: OTP-19186\ Related Id(s): [PR-8709] > #### Full runtime dependencies of crypto-5.5.1 > > erts-9.0, kernel-5.3, stdlib-3.9 ### dialyzer-5.2.1 The dialyzer-5.2.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Man pages are now available for `erl`, `erlc`, `dialyzer`, and all other programs that are included in Erlang/OTP. Own Id: OTP-19201\ Related Id(s): [PR-8740] > #### Full runtime dependencies of dialyzer-5.2.1 > > compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0 ### diameter-2.4.1 The diameter-2.4.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Function specs for the main API module has been updated. Own Id: OTP-19126\ Related Id(s): [#​8399] - Man pages are now available for `erl`, `erlc`, `dialyzer`, and all other programs that are included in Erlang/OTP. Own Id: OTP-19201\ Related Id(s): [PR-8740] - `diameter:stop_service/1` has been made more synchronous. Own Id: OTP-19206\ Related Id(s): ERIERL-1102 > #### Full runtime dependencies of diameter-2.4.1 > > erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0 ### edoc-1.3.2 The edoc-1.3.2 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Broken links in release notes have been mended. Own Id: OTP-19139\ Related Id(s): [PR-8584] > #### Full runtime dependencies of edoc-1.3.2 > > erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7 ### erts-15.1 The erts-15.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - The `erl -man example` has been corrected to not consider values set in `ERL_ZFLAGS` and stop parsing arguments when a `--` is encountered. Own Id: OTP-19098\ Related Id(s): [GH-8477], [PR-8478] - Compiler warnings for Windows I/O back-end have been silenced. Own Id: OTP-19113 - Bugs related to `return_to` trace have been fixed. It did not work for more than once trace session and it did sometimes not trigger for exceptions. Own Id: OTP-19122 - Potential deadlocks while writing a crash dump have been eliminated. Own Id: OTP-19133\ Related Id(s): [GH-8498], [PR-8521] - When loading a damaged or too old BEAM file, the runtime system could crash. Own Id: OTP-19153\ Related Id(s): [PR-8623] - A scheduler thread could get stuck when deleting a memory allocator carrier when adjacent carriers were deleted and/or inserted simultaneously by other schedulers. This in turn could cause the other schedulers to get stuck as well. Own Id: OTP-19154\ Related Id(s): [GH-8613], [PR-8627] - Statistics for number of carriers in a shared pool after calling `instrument:allocations` or `instrument:carriers` are now correct. Also, a potential bug in carrier block scanning was eliminated. Own Id: OTP-19166\ Related Id(s): [PR-8636] - A race in the kTLS flavour of SSL distribution has been fixed so that `inet_drv.c` doesn't read ahead too much data, which could cause the kTLS encryption to be activated too late when some encrypted data had already been read into the `inet_drv.c` buffer as unencrypted. Own Id: OTP-19175\ Related Id(s): [GH-8561], [PR-8690] - Fixed an emulator crash relating to compressed ETS tables. Own Id: OTP-19176\ Related Id(s): [PR-8683] - A function (encode_sockaddr) was called with superfluous argument, on Windows, in the net nif. Own Id: OTP-19181 - Fixed a crash that could happen on reallocation failure. Own Id: OTP-19192 - Man pages are now available for `erl`, `erlc`, `dialyzer`, and all other programs that are included in Erlang/OTP. Own Id: OTP-19201\ Related Id(s): [PR-8740] - A previous correction in the Erlang/OTP 27.0.1 emergency patch had the unfortunate side effect of sometimes causing an unnecessary fullsweep (major) garbage collection instead of a generation (minor) garbage collection. This has been corrected. Own Id: OTP-19209\ Related Id(s): [PR-8539], [PR-8751] - Fixed trace matchspec functions `trace` and `enable_trace` to use the session tracer when enabling trace flags on untraced processes. Own Id: OTP-19211\ Related Id(s): [GH-8657] - Fixed a typo in the type spec for `erlang:garbage_collection_defaults/0`. Own Id: OTP-19215\ Related Id(s): [PR-8757] - Corrected socket:ioctl for genaddr (SIOCGENADDR). Own Id: OTP-19216 - The support for Transparent Huge Pages has been disabled on non-amd64 Linux systems. Own Id: OTP-19219\ Related Id(s): [PR-8702] - Fixed a race condition on Windows when upgrading from `-noshell` to a shell that would cause Erlang to crash with the error: {'GetOverlappedResult', 'The I/O operation has been aborted because of either a thread exit or an application request.'}. Own Id: OTP-19220\ Related Id(s): [GH-7621], [PR-8774] #### Improvements and New Features - Added functions `getservbyname` and `getservbyport` to the `net` module. Own Id: OTP-19101\ Related Id(s): OTP-18835 - Introduced enet | esock variants of [`inet`][inet] functions, either when called with sockets, with explicit inet_backend config or with the e inet_backend kernel config option. Own Id: OTP-19132\ Related Id(s): OTP-19101 - Optimize process and port creation when such tracing is not enabled by any trace session. Own Id: OTP-19167\ Related Id(s): [PR-8655] - Compiler warnings for some removed functions have been corrected to point out the correct replacement functions. Own Id: OTP-19186\ Related Id(s): [PR-8709] - A boolean option `read_ahead` has been implemented for `gen_tcp`, default `true`, to facilitate not reading past (caching data) the end of a packet. In particular, for kTLS, caching data could read in data that was supposed to be decrypted by the platform's network stack, before crypto parameters could be activated. Own Id: OTP-19199\ Related Id(s): [GH-8561], [GH-8690], [GH-8785], OTP-19175 - The [`zip`][zip] module has been updated with support for: - zip64 archives - Archives larger than 4GB or with more than 2^32 entries. - extended timestamps - Higher resolution and in UTC. - UID/GID - Save and extract the original UID/GID. - Fixes so that permission mode attributes are correctly read and set for files in archives. - `zip:list_dir/2` now also returns directories, not only files. (You can disable this behaviour by using the option `skip_directories`). Various bugs in the original implementation have also been fixed, such as: - Correctly encode and decode the DOS timestamps for entries within an archive (that is the non-extended timestamp). - Fix DOS timestamps to be set to localtime instead of UTC (use extended timestamps for UTC timestamps). - Use the unix file attributes read from disk when creating archives instead of setting everything to 644. Own Id: OTP-19214\ Related Id(s): [PR-8765] \*\*\* HIGHLIGHT \*\*\* > #### Full runtime dependencies of erts-15.1 > > kernel-9.0, sasl-3.3, stdlib-4.1 ### ftp-1.2.3 The ftp-1.2.3 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Eliminated a race condition that sometimes resulted in `ftp:recv_bin/2` returning `ok` instead of `{ok, Data}`. Own Id: OTP-19119\ Related Id(s): [GH-8454], [PR-8543] > #### Full runtime dependencies of ftp-1.2.3 > > erts-7.0, kernel-6.0, runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 ### inets-9.3 The inets-9.3 application can be applied independently of other applications on a full OTP 27 installation. #### Improvements and New Features - The documentation for the [`httpd`][httpd] module has been improved, along with correction of headings and types. Own Id: OTP-19171\ Related Id(s): [PR-8578] - Userinfo is now properly percent-decoded before usage in headers. Own Id: OTP-19172\ Related Id(s): [PR-8575] > #### Full runtime dependencies of inets-9.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, stdlib-6.0 ### kernel-10.1 Note! The kernel-10.1 application *cannot* be applied independently of other applications on an arbitrary OTP 27 installation. On a full OTP 27 installation, also the following runtime dependency has to be satisfied: -- erts-15.1 (first satisfied in OTP 27.1) #### Fixed Bugs and Malfunctions - A faulty assertion was corrected in the `prim_tty` module. This assertion could trigger when invalid UTF-8 was read from stdin just as the mode was changed from unicode to latin1. Own Id: OTP-19097\ Related Id(s): [PR-8503] - Opening a `disk_log` file and combining `head_func` with `rotate` options did not work. Own Id: OTP-19104\ Related Id(s): ERIERL-870 - Fixed an error info printout for `erlang:is_process_alive/1` on non-local pids. Own Id: OTP-19134\ Related Id(s): [PR-8560] - A race in the kTLS flavour of SSL distribution has been fixed so that `inet_drv.c` doesn't read ahead too much data, which could cause the kTLS encryption to be activated too late when some encrypted data had already been read into the `inet_drv.c` buffer as unencrypted. Own Id: OTP-19175\ Related Id(s): [GH-8561], [PR-8690] - Fixed a deadlock when an application crashes during startup and log messages were sent to standard out. Logger would fail to print the messages to standard out and instead print them to standard error. Own Id: OTP-19205 - The `-proto_dist` init parameter will no longer be ignored when specified multiple times. It will now log a warning and use the first specified value. Own Id: OTP-19208\ Related Id(s): [PR-8672] - Corrected socket:ioctl for genaddr (SIOCGENADDR). Own Id: OTP-19216 #### Improvements and New Features - Added functions `getservbyname` and `getservbyport` to the `net` module. Own Id: OTP-19101\ Related Id(s): OTP-18835 - Introduced enet | esock variants of [`inet`][inet] functions, either when called with sockets, with explicit inet_backend config or with the e inet_backend kernel config option. Own Id: OTP-19132\ Related Id(s): OTP-19101 - The function `socket:i/0` now uses the [`net`][net] module (instead of the [`inet`][inet] module) for service translation. Own Id: OTP-19138\ Related Id(s): OTP-19101 - A boolean option `read_ahead` has been implemented for `gen_tcp`, default `true`, to facilitate not reading past (caching data) the end of a packet. In particular, for kTLS, caching data could read in data that was supposed to be decrypted by the platform's network stack, before crypto parameters could be activated. Own Id: OTP-19199\ Related Id(s): [GH-8561], [GH-8690], [GH-8785], OTP-19175 > #### Full runtime dependencies of kernel-10.1 > > crypto-5.0, erts-15.1, sasl-3.0, stdlib-6.0 ### odbc-2.15 The odbc-2.15 application can be applied independently of other applications on a full OTP 27 installation. #### Improvements and New Features - Figures in the documentation have been improved. Own Id: OTP-19130\ Related Id(s): [PR-7226] > #### Full runtime dependencies of odbc-2.15 > > erts-6.0, kernel-3.0, stdlib-2.0 ### public_key-1.16.2 The public_key-1.16.2 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - For completeness handle rsa_pss implicit default value, although this will probably not be commonly used as it provides very weak security. Own Id: OTP-19179 - The `public_key:cacerts_load()` function could in some error cases return `undefined` instead of `{error, Reason}`. Own Id: OTP-19183\ Related Id(s): [GH-8604] - Added support for DragonFly. Own Id: OTP-19191\ Related Id(s): [PR-8703] #### Improvements and New Features - Deprecation of RSA encryption functions has been reverted, as there still exists legitimate use cases with other padding modes than PKCS-1. While use PCKS-1 padding with some versions of cryptolib could be considered secure, we still recommend using other algorithms that are less sensitive to oracle attacks. Own Id: OTP-19163 - It is now possible to use a verification fun of arity 4, giving the user fun access to both encoded and decoded versions of the certificate. This is desirable as a workaround for encoding errors preventing re-encoding from being reliable. This also saves some work load if the encoded version is needed. Note that calling `public_key:pkix_path_validation/3` with only decoded certs is not recommended, due to the decoding workarounds, although it will work as long as the workarounds are not needed. If the decoded version is needed before thecall to [`public_key`][public_key] it is recommend to use the combined_cert- type to avoid double decoding. Note that the path validation algorithm itself always needs both the encoded and decoded versions of the certs. The ssl implementation will now benefit from using this function instead of emulating the verify_fun/4. Own Id: OTP-19169 > #### Full runtime dependencies of public_key-1.16.2 > > asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 ### runtime_tools-2.1.1 The runtime_tools-2.1.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Fixed a bug where dbg sessions on remote nodes were terminated prematurely. Own Id: OTP-19188\ Related Id(s): [PR-8692] > #### Full runtime dependencies of runtime_tools-2.1.1 > > erts-15.0, kernel-10.0, mnesia-4.12, stdlib-6.0 ### snmp-5.17 The snmp-5.17 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Man pages are now available for `erl`, `erlc`, `dialyzer`, and all other programs that are included in Erlang/OTP. Own Id: OTP-19201\ Related Id(s): [PR-8740] #### Improvements and New Features - Figures in the documentation have been improved. Own Id: OTP-19130\ Related Id(s): [PR-7226] > #### Full runtime dependencies of snmp-5.17 > > crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, > stdlib-5.0 ### ssh-5.2.2 The ssh-5.2.2 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - The SSh daemon started with a TCP port number argument will now re-try obtaining a listen socket before returning an error to the user. Own Id: OTP-19170\ Related Id(s): [GH-7746] - Robustness has been improved by monitoring the connection handler process before casting the socket control notification. Own Id: OTP-19173\ Related Id(s): [PR-8310] > #### Full runtime dependencies of ssh-5.2.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.2 Note! The ssl-11.2.2 application *cannot* be applied independently of other applications on an arbitrary OTP 27 installation. On a full OTP 27 installation, also the following runtime dependency has to be satisfied: -- public_key-1.16.2 (first satisfied in OTP 27.1) #### Fixed Bugs and Malfunctions - A race in the kTLS flavour of SSL distribution has been fixed so that `inet_drv.c` doesn't read ahead too much data, which could cause the kTLS encryption to be activated too late when some encrypted data had already been read into the `inet_drv.c` buffer as unencrypted. Own Id: OTP-19175\ Related Id(s): [GH-8561], [PR-8690] #### Improvements and New Features - All TLS-1.3 terminations are now graceful (previous TLS version terminations already were). Own Id: OTP-17848 - It is now possible to use a verification fun of arity 4, giving the user fun access to both encoded and decoded versions of the certificate. This is desirable as a workaround for encoding errors preventing re-encoding from being reliable. This also saves some work load if the encoded version is needed. Note that calling `public_key:pkix_path_validation/3` with only decoded certs is not recommended, due to the decoding workarounds, although it will work as long as the workarounds are not needed. If the decoded version is needed before thecall to [`public_key`][public_key] it is recommend to use the combined_cert- type to avoid double decoding. Note that the path validation algorithm itself always needs both the encoded and decoded versions of the certs. The ssl implementation will now benefit from using this function instead of emulating the verify_fun/4. Own Id: OTP-19169 - Compiler warnings for some removed functions have been corrected to point out the correct replacement functions. Own Id: OTP-19186\ Related Id(s): [PR-8709] - Include more information in logging of SNI (Server Name Indication) mismatch error. Own Id: OTP-19187 > #### Full runtime dependencies of ssl-11.2.2 > > crypto-5.0, erts-15.0, inets-5.10.7, kernel-9.0, public_key-1.16.2, > runtime_tools-1.15.1, stdlib-6.0 ### stdlib-6.1 The stdlib-6.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - The help printout for incorrect `io:format/0` strings now handles the `k` modifier correctly. Own Id: OTP-19146\ Related Id(s): [GH-8568], [PR-8611] - Fixed a bug that caused the shell completion to crash when keyword and tuple appeared on the same line. Own Id: OTP-19157\ Related Id(s): [PR-8638] - Due to PR-7419/OTP-18671, the cached internal value of the `callback_mode` started leaking out to `logger` reports, which could cause `logger` handlers to crash. This has now been fixed to show the value that was set, as before caching. Own Id: OTP-19164\ Related Id(s): [GH-8605], [PR-7419], OTP-18671 - Fixed an emulator crash relating to compressed ETS tables. Own Id: OTP-19176\ Related Id(s): [PR-8683] - The error description for `maps:update/3` will no longer insist that the third argument is not a map when a key could not be found Own Id: OTP-19189 - Multiple issues have been corrected in the markdown parser that creates documentation for the shell. The parser was incorrectly parsing formatted markdown (either bold or italics) within parenthesis. This used to not be shown correctly in the shell documentation `(_Option._)`, which was displayed verbatim. This fix makes `Option.` to appear in italics. The markdown parser is also used in the creation of other documentation formats, so this was a bug that affected other generated documentation formats. Own Id: OTP-19200\ Related Id(s): [GH-8738], [PR-8739] - Fixed category for some codepoint ranges in `unicode_util`. Own Id: OTP-19210\ Related Id(s): [GH-8748] - Fixed [`argparse`][argparse] to print sub-commands help when available. Own Id: OTP-19222\ Related Id(s): [PR-8777] #### Improvements and New Features - Class annotation to HTML from fenced blocks have been added. Own Id: OTP-19105\ Related Id(s): [PR-8499] - Added JSON formatting functions for indented output. Own Id: OTP-19112 - Improved illegal pattern error for accidental map associations. Own Id: OTP-19128\ Related Id(s): [PR-8555] - Progress reports for a dynamically started supervisor will now be logged at debug level. Own Id: OTP-19202\ Related Id(s): [GH-8715], [PR-8261], [PR-8741] \*\*\* POTENTIAL INCOMPATIBILITY \*\*\* - The [`zip`][zip] module has been updated with support for: - zip64 archives - Archives larger than 4GB or with more than 2^32 entries. - extended timestamps - Higher resolution and in UTC. - UID/GID - Save and extract the original UID/GID. - Fixes so that permission mode attributes are correctly read and set for files in archives. - `zip:list_dir/2` now also returns directories, not only files. (You can disable this behaviour by using the option `skip_directories`). Various bugs in the original implementation have also been fixed, such as: - Correctly encode and decode the DOS timestamps for entries within an archive (that is the non-extended timestamp). - Fix DOS timestamps to be set to localtime instead of UTC (use extended timestamps for UTC timestamps). - Use the unix file attributes read from disk when creating archives instead of setting everything to 644. Own Id: OTP-19214\ Related Id(s): [PR-8765] \*\*\* HIGHLIGHT \*\*\* > #### Full runtime dependencies of stdlib-6.1 > > compiler-5.0, crypto-4.5, erts-15.0, kernel-10.0, sasl-3.0 ### syntax_tools-3.2.1 The syntax_tools-3.2.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - The documentation for `syntax_tools` has been polished after the migration to the new documentation system. Own Id: OTP-19102\ Related Id(s): [PR-8515] > #### Full runtime dependencies of syntax_tools-3.2.1 > > compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0 ### tftp-1.2.1 The tftp-1.2.1 application can be applied independently of other applications on a full OTP 27 installation. #### Improvements and New Features - The legacy dependency to [`error_logger`][error_logger] has been removed. [`logger`][logger] is now used. Own Id: OTP-19114 > #### Full runtime dependencies of tftp-1.2.1 > > erts-6.0, kernel-6.0, stdlib-5.0 ### tools-4.1 The tools-4.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - `m:tprof` no longer crashes when using pause/restart/continue when profiling all modules. Own Id: OTP-19136\ Related Id(s): [GH-8472], [PR-8472], [PR-8541] - On systems supporting native coverage, calls to [`cover`][cover] could hang or crash if cover-compiled module had been reloaded from outside `cover`. This has been corrected so that `cover` now recovers from the error and and sends a report to the logger about the failure to retrieve coverage information. Own Id: OTP-19203\ Related Id(s): [GH-8661], [PR-8742] #### Improvements and New Features - Figures in the documentation have been improved. Own Id: OTP-19130\ Related Id(s): [PR-7226] > #### Full runtime dependencies of tools-4.1 > > compiler-8.5, erts-15.0, erts-15.0, kernel-10.0, runtime_tools-2.1, stdlib-6.0 ### wx-2.4.3 The wx-2.4.3 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Documentation has been improved. Own Id: OTP-19190 > #### Full runtime dependencies of wx-2.4.3 > > erts-12.0, kernel-8.0, stdlib-5.0 ### xmerl-2.1 The xmerl-2.1 application can be applied independently of other applications on a full OTP 27 installation. #### Fixed Bugs and Malfunctions - Corrected export functions from internal structure to XML so xmlText items of type cdata are handled correctly. They were just exported as normal text instead of output in a CDATA section. Own Id: OTP-19217\ Related Id(s): ERIERL-1104 #### Improvements and New Features - The type spec for `xmerl_sax_parser:file/2` has been corrected to indicate that it can return an `{error, _}` tuple. Own Id: OTP-19129\ Related Id(s): [PR-8583] > #### Full runtime dependencies of xmerl-2.1 > > erts-6.0, kernel-3.0, stdlib-2.5 ### Thanks to Aaron Renner, Anders Ågren Thuné, Andrea Leopardi, Anupama Singh, Cesar Guzman, Dániel Szoboszlay, Douglas Vought, Frej Drejhammar, jakob svenningsson, Jan Uhlig, Janusz Woźniak, Johannes Christ, Jonatan Kłosko, José Valim, Kian-Meng Ang, lexprfuncall, Loïc Hoguin, Louis Pilfold, Marcelino Alberdi Pereira, Maria Scott, Michael Neumann, Michał Muskała, nixxquality, Peter Lemenkov, Roger Lipscombe, Siim Liiser, Svilen Ivanov, Urban Koistinen, Wojtek Mach [#​8399]: https://redirect.github.com/erlang/otp/issues/8399 [GH-4362]: https://redirect.github.com/erlang/otp/issues/4362 [GH-7621]: https://redirect.github.com/erlang/otp/issues/7621 [GH-7746]: https://redirect.github.com/erlang/otp/issues/7746 [GH-8378]: https://redirect.github.com/erlang/otp/issues/8378 [GH-8454]: https://redirect.github.com/erlang/otp/issues/8454 [GH-8472]: https://redirect.github.com/erlang/otp/issues/8472 [GH-8477]: https://redirect.github.com/erlang/otp/issues/8477 [GH-8486]: https://redirect.github.com/erlang/otp/issues/8486 [GH-8498]: https://redirect.github.com/erlang/otp/issues/8498 [GH-8561]: https://redirect.github.com/erlang/otp/issues/8561 [GH-8562]: https://redirect.github.com/erlang/otp/issues/8562 [GH-8568]: https://redirect.github.com/erlang/otp/issues/8568 [GH-8604]: https://redirect.github.com/erlang/otp/issues/8604 [GH-8605]: https://redirect.github.com/erlang/otp/issues/8605 [GH-8613]: https://redirect.github.com/erlang/otp/issues/8613 [GH-8630]: https://redirect.github.com/erlang/otp/issues/8630 [GH-8656]: https://redirect.github.com/erlang/otp/issues/8656 [GH-8657]: https://redirect.github.com/erlang/otp/issues/8657 [GH-8661]: https://redirect.github.com/erlang/otp/issues/8661 [GH-8690]: https://redirect.github.com/erlang/otp/issues/8690 [GH-8715]: https://redirect.github.com/erlang/otp/issues/8715 [GH-8738]: https://redirect.github.com/erlang/otp/issues/8738 [GH-8748]: https://redirect.github.com/erlang/otp/issues/8748 [GH-8779]: https://redirect.github.com/erlang/otp/issues/8779 [GH-8785]: https://redirect.github.com/erlang/otp/issues/8785 [PR-7226]: https://redirect.github.com/erlang/otp/pull/7226 [PR-7419]: https://redirect.github.com/erlang/otp/pull/7419 [PR-7919]: https://redirect.github.com/erlang/otp/pull/7919 [PR-8261]: https://redirect.github.com/erlang/otp/pull/8261 [PR-8310]: https://redirect.github.com/erlang/otp/pull/8310 [PR-8472]: https://redirect.github.com/erlang/otp/pull/8472 [PR-8478]: https://redirect.github.com/erlang/otp/pull/8478 [PR-8499]: https://redirect.github.com/erlang/otp/pull/8499 [PR-8503]: https://redirect.github.com/erlang/otp/pull/8503 [PR-8515]: https://redirect.github.com/erlang/otp/pull/8515 [PR-8516]: https://redirect.github.com/erlang/otp/pull/8516 [PR-8518]: https://redirect.github.com/erlang/otp/pull/8518 [PR-8521]: https://redirect.github.com/erlang/otp/pull/8521 [PR-8528]: https://redirect.github.com/erlang/otp/pull/8528 [PR-8539]: https://redirect.github.com/erlang/otp/pull/8539 [PR-8541]: https://redirect.github.com/erlang/otp/pull/8541 [PR-8543]: https://redirect.github.com/erlang/otp/pull/8543 [PR-8555]: https://redirect.github.com/erlang/otp/pull/8555 [PR-8560]: https://redirect.github.com/erlang/otp/pull/8560 [PR-8575]: https://redirect.github.com/erlang/otp/pull/8575 [PR-8578]: https://redirect.github.com/erlang/otp/pull/8578 [PR-8583]: https://redirect.github.com/erlang/otp/pull/8583 [PR-8584]: https://redirect.github.com/erlang/otp/pull/8584 [PR-8596]: https://redirect.github.com/erlang/otp/pull/8596 [PR-8611]: https://redirect.github.com/erlang/otp/pull/8611 [PR-8623]: https://redirect.github.com/erlang/otp/pull/8623 [PR-8627]: https://redirect.github.com/erlang/otp/pull/8627 [PR-8636]: https://redirect.github.com/erlang/otp/pull/8636 [PR-8638]: https://redirect.github.com/erlang/otp/pull/8638 [PR-8655]: https://redirect.github.com/erlang/otp/pull/8655 [PR-8672]: https://redirect.github.com/erlang/otp/pull/8672 [PR-8683]: https://redirect.github.com/erlang/otp/pull/8683 [PR-8686]: https://redirect.github.com/erlang/otp/pull/8686 [PR-8690]: https://redirect.github.com/erlang/otp/pull/8690 [PR-8692]: https://redirect.github.com/erlang/otp/pull/8692 [PR-8702]: https://redirect.github.com/erlang/otp/pull/8702 [PR-8703]: https://redirect.github.com/erlang/otp/pull/8703 [PR-8707]: https://redirect.github.com/erlang/otp/pull/8707 [PR-8709]: https://redirect.github.com/erlang/otp/pull/8709 [PR-8731]: https://redirect.github.com/erlang/otp/pull/8731 [PR-8739]: https://redirect.github.com/erlang/otp/pull/8739 [PR-8740]: https://redirect.github.com/erlang/otp/pull/8740 [PR-8741]: https://redirect.github.com/erlang/otp/pull/8741 [PR-8742]: https://redirect.github.com/erlang/otp/pull/8742 [PR-8751]: https://redirect.github.com/erlang/otp/pull/8751 [PR-8757]: https://redirect.github.com/erlang/otp/pull/8757 [PR-8765]: https://redirect.github.com/erlang/otp/pull/8765 [PR-8774]: https://redirect.github.com/erlang/otp/pull/8774 [PR-8777]: https://redirect.github.com/erlang/otp/pull/8777 [PR-8781]: https://redirect.github.com/erlang/otp/pull/8781 [`argparse`]: https://erlang.org/doc/man/argparse [`cover`]: https://erlang.org/doc/man/cover [`error_logger`]: https://erlang.org/doc/man/error_logger [`httpd`]: https://erlang.org/doc/man/httpd [`inet`]: https://erlang.org/doc/man/inet [`logger`]: https://erlang.org/doc/man/logger [`net`]: https://erlang.org/doc/man/net [`public_key`]: https://erlang.org/doc/man/public_key [`zip`]: https://erlang.org/doc/man/zip ### [`v27.0.1`](https://redirect.github.com/erlang/otp/releases/tag/OTP-27.0.1): OTP 27.0.1 [Compare Source](https://redirect.github.com/erlang/otp/compare/OTP-27.0...OTP-27.0.1) Patch Package: OTP 27.0.1 Git Tag: OTP-27.0.1 Date: 2024-07-10 Trouble Report Id: OTP-19091, OTP-19092, OTP-19094, OTP-19095, OTP-19099, OTP-19100, OTP-19106, OTP-19107, OTP-19108, OTP-19109, OTP-19116, OTP-19118, OTP-19121, OTP-19123, OTP-19131, OTP-19137, OTP-19140, OTP-19142, OTP-19147, OTP-19151, OTP-19152 Seq num: ERIERL-1043, ERIERL-1106, GH-8376, GH-8482, GH-8484, GH-8489, GH-8574, GH-8579, GH-8580, GH-8588, GH-8614, PR-8345, PR-8507, PR-8508, PR-8519, PR-8534, PR-8539, PR-8542, PR-8546, PR-8567, PR-8581, PR-8585, PR-8616, PR-8619 System: OTP Release: 27 Application: compiler-8.5.1, edoc-1.3.1, erts-15.0.1, kernel-10.0.1, public_key-1.16.1, ssh-5.2.1, ssl-11.2.1, stdlib-6.0.1 Predecessor: OTP 27.0 Check out the git tag OTP-27.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. ##### OTP-27.0.1 ##### Improvements and New Features - Bump ex_doc version to v0.34.1 and fix copyright in published docs to have correct year. Own Id: OTP-19095\ Related Id(s): [PR-8507] ##### compiler-8.5.1 The compiler-8.5.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - One of the compiler's optimization passes would get very slow when compiling certain modules. The compiler will now automatically disable that pass for input that would trigger the slowdown. Own Id: OTP-19131\ Related Id(s): [PR-8567] - Fix `+deterministic` to work properly with documentation attributes. Own Id: OTP-19142\ Related Id(s): [GH-8579], [PR-8585] > #### Full runtime dependencies of compiler-8.5.1 > > crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0 ##### edoc-1.3.1 The edoc-1.3.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - Fix broken makefile dependency when building HTML documentation. Own Id: OTP-19116\ Related Id(s): [PR-8534] > #### Full runtime dependencies of edoc-1.3.1 > > erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7 ##### erts-15.0.1 The erts-15.0.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - In rare circumstances the JIT could do an unsafe in-place update of a tuple. Own Id: OTP-19108\ Related Id(s): [PR-8539] - When a port command crashed in the inet driver during `gen_tcp:send/2`, a monitor `'DOWN'` message could be left lingering in the caller's mailbox. This has now been fixed. Own Id: OTP-19121\ Related Id(s): [GH-8484] - `'DOWN'` messages originating from a monitored port, contained the atom `process` instead of the atom `port` as the third element when the exit reason was not an immediate term. Own Id: OTP-19123\ Related Id(s): [GH-8484], [PR-8546] - Fix so that the options to enable Transparent Huge Page alignment of the Erlang VM executable are only applied to the Erlang VM and not other native programs such as `erlc` and `dialyzer`. This bug was introduced in Erlang/OTP 27.0. Own Id: OTP-19137\ Related Id(s): [GH-8574] - When [*no time warp mode*][no time warp mode] was enabled, a smaller Erlang monotonic time could be read than a previously read time, i.e., breaking the monotonic property. The runtime system will abort when detecting an issue like this since OTP 24.3.4.17 and OTP 25.0. Up until OTP 25 *no time warp mode* is the default. As of OTP 26 [*multi time warp mode*][multi time warp mode] is the default. Own Id: OTP-19147\ Related Id(s): ERIERL-1043, ERIERL-1106, [PR-8619] - When calling `trace:function(Session, _, true, [meta])` the meta tracer was incorrectly set to be the calling process. Now it's set to the session tracer as expected. Own Id: OTP-19151\ Related Id(s): [GH-8614], [PR-8616] > #### Full runtime dependencies of erts-15.0.1 > > kernel-9.0, sasl-3.3, stdlib-4.1 ##### kernel-10.0.1 The kernel-10.0.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Improvements and New Features - Polish the [`logger`][logger] documentation. Own Id: OTP-19118\ Related Id(s): [PR-8534] > #### Full runtime dependencies of kernel-10.0.1 > > crypto-5.0, erts-15.0, sasl-3.0, stdlib-6.0 ##### public_key-1.16.1 The public_key-1.16.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - Fix bug in dnsName constraint check, could cause valid cert to be considered bad during path validation. Own Id: OTP-19100\ Related Id(s): [GH-8482], [PR-8508] > #### Full runtime dependencies of public_key-1.16.1 > > asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5 ##### ssh-5.2.1 The ssh-5.2.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - With this change, race condition between connection closing and automatic window adjustment is fixed. Own Id: OTP-19109\ Related Id(s): [PR-8345] > #### Full runtime dependencies of ssh-5.2.1 > > 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.1 The ssl-11.2.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - Check for TLS-1.3 support should check minimum requirements. Own Id: OTP-19094\ Related Id(s): [GH-8489] - If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2 negotiated convert TLS-1.3 ECDSA schemes to TLS-1.2 hash and signature pairs for increased interoperability. Own Id: OTP-19107\ Related Id(s): [GH-8376] - TLS-1.3 negotiation now uses SNI based options correctly instead of ignoring them. Own Id: OTP-19140 ##### Improvements and New Features - Make it easier to distinguish between a invalid signature and unsupported signature. Own Id: OTP-19091 - Enhance ALERT logs to help understand what causes the alert. Own Id: OTP-19092\ Related Id(s): [GH-8482] - When the default value for signature_algs is used, default the signature_algs_cert to the default value + rsa_pkcs1\_sha1 to allow this algorithms for certificates but not for the TLS protocol. This is for better interoperability. If signature_algs is set explicitly signature_algs_cert must also be set explicitly if they should be different. Own Id: OTP-19152\ Related Id(s): [GH-8588] > #### Full runtime dependencies of ssl-11.2.1 > > crypto-5.0, erts-15.0, inets-5.10.7, kernel-9.0, public_key-1.15, > runtime_tools-1.15.1, stdlib-6.0 ##### stdlib-6.0.1 The stdlib-6.0.1 application can be applied independently of other applications on a full OTP 27 installation. ##### Fixed Bugs and Malfunctions - Fix so that missing `-doc({file, File})` files only result in a warning and not an error. Own Id: OTP-19099\ Related Id(s): [PR-8542] - Fixed [`json`][json] bugs, `json:encode_key_value_list/2` did not generate arrays and `json:decode/3` did not invoke the user callback for `0`. Own Id: OTP-19106\ Related Id(s): [GH-8580], [PR-8519], [PR-8581] > #### Full runtime dependencies of stdlib-6.0.1 > > compiler-5.0, crypto-4.5, erts-15.0, kernel-10.0, sasl-3.0 ##### Thanks to Frej Drejhammar, Igor Goryachev, Michał Muskała [*multi time warp mode*]: time_correction.md#multi-time-warp-mode [*no time warp mode*]: time_correction.md#no-time-warp-mode [GH-8376]: https://redirect.github.com/erlang/otp/issues/8376 [GH-8482]: https://redirect.github.com/erlang/otp/issues/8482 [GH-8484]: https://redirect.github.com/erlang/otp/issues/8484 [GH-8489]: https://redirect.github.com/erlang/otp/issues/8489 [GH-8574]: https://redirect.github.com/erlang/otp/issues/8574 [GH-8579]: https://redirect.github.com/erlang/otp/issues/8579 [GH-8580]: https://redirect.github.com/erlang/otp/issues/8580 [GH-8588]: https://redirect.github.com/erlang/otp/issues/8588 [GH-8614]: https://redirect.github.com/erlang/otp/issues/8614 [PR-8345]: https://redirect.github.com/erlang/otp/pull/8345 [PR-8507]: https://redirect.github.com/erlang/otp/pull/8507 [PR-8508]: https://redirect.github.com/erlang/otp/pull/8508 [PR-8519]: https://redirect.github.com/erlang/otp/pull/8519 [PR-8534]: https://redirect.github.com/erlang/otp/pull/8534 [PR-8539]: https://redirect.github.com/erlang/otp/pull/8539 [PR-8542]: https://redirect.github.com/erlang/otp/pull/8542 [PR-8546]: https://redirect.github.com/erlang/otp/pull/8546 [PR-8567]: https://redirect.github.com/erlang/otp/pull/8567 [PR-8581]: https://redirect.github.com/erlang/otp/pull/8581 [PR-8585]: https://redirect.github.com/erlang/otp/pull/8585 [PR-8616]: https://redirect.github.com/erlang/otp/pull/8616 [PR-8619]: https://redirect.github.com/erlang/otp/pull/8619 [`json`]: https://erlang.org/doc/man/json [`logger`]: https://erlang.org/doc/man/logger ### [`v27.0`](https://redirect.github.com/erlang/otp/releases/tag/OTP-27.0): OTP 27.0 [Compare Source](https://redirect.github.com/erlang/otp/compare/OTP-26.2.5...OTP-27.0) ##### Erlang/OTP 27 Released All artifacts for the release can be downloaded from the [Erlang/OTP Github](https://redirect.github.com/erlang/otp/releases/tag/OTP-27.0) release and you can view the new documentation at . You can also install the latest release using [kerl](https://redirect.github.com/kerl/kerl) like this: kerl build 27.0 27.0 The new Erlang/OTP 27 release contains new features, improvements as well as a few incompatibilities. Some of the new features are highlighted below. Many thanks to all contributors! ##### Documentation [EEP-59](https://www.erlang.org/eeps/eep-0059) has been implemented. Documentation attributes in source files can now be used to document functions, types, callbacks, and modules. The entire Erlang/OTP documentation is now using the new documentation system. ##### New language features - Triple-Quoted Strings has been implemented as per [EEP 64](https://www.erlang.org/eeps/eep-0064) to allow a string to encompass a complete paragraph. - Adjacent string literals without intervening white space is now a syntax error, to avoid possible confusion with triple-quoted strings. - Sigils on string literals (both ordinary and triple-quoted) have been implemented as per [EEP 66](https://www.erlang.org/eeps/eep-0066). For example, `~"Björn"` or `~b"Björn"` are now equivalent to `<<"Björn"/utf8>>`. ##### Compiler and JIT improvements - The compiler will now merge consecutive updates of the same record. - 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. - The `maybe` expression is now enabled by default, eliminating the need for enabling the `maybe_expr` feature. - 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. - The compiler will now raise a warning when updating record/map literals to catch a common mistake. For example, the compiler will now emit a warning for `#r{a=1}#r{b=2}`. - 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. ##### ERTS - The `erl` command now supports the `-S` flag, which is similar to the `-run` flag, but with some of the rough edges filed off. - By default, escripts will now be compiled instead of interpreted. That means that the `compiler` application must be installed. - 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`. - The default process limit has been raised to `1048576` processes. - The `erlang:system_monitor/2` functionality is now able to monitor long message queues in the system. - 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. - The `pid` field has been removed from `erlang:fun_info/1,2`. - Multiple trace sessions are now supported. - `configure` now automatically enables support for year-2038-safe timestamps. 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.' ##### STDLIB - There is a new module [json](https://erlang.org/doc/man/json.html) for encoding and decoding [JSON](https://en.wikipedia.org/wiki/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. The new `json` module is used by the `jer` (JSON Encoding Rules) for ASN.1 for encoding and decoding JSON. Thus, there is no longer any need to supply an external JSON library. - Several new functions that accept funs have been added to module `timer`. - The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the modules `sets`, `ordsets`, and `gb_sets`. - There are new efficient `ets` traversal functions with guaranteed atomicity. For example, `ets:next/2` followed by `ets:lookup/2` can now be replaced with `ets:next_lookup/1`. - 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. - `binary:replace/3,4` now supports using a fun for supplying the replacement binary. - 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` and `observer`, and it will be included in crash reports produced by processes using `gen_server`, `gen_statem`, `gen_event`, and `gen_fsm`. - 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. ##### common_test - Calls to `ct:capture_start/0` and `ct:capture_stop/0` are now synchronous to ensure that all output is captured. - The default CSS will now include a basic dark mode handling if it is preferred by the browser. ##### crypto - The functions `crypto_dyn_iv_init/3` and `crypto_dyn_iv_update/3` that were marked as deprecated in Erlang/OTP 25 have been removed. ##### dialyzer - The `--gui` option for Dialyzer has been removed. ##### ssl - The `ssl` client can negotiate and handle certificate status request (OCSP stapling support on the client side). ##### tools - There is a new tool `tprof`, which combines the functionality of `eprof` and `cprof` under one interface. It also adds heap profiling. ##### xmerl - As an alternative to `xmerl_xml`, a new export module `xmerl_xml_indent` that provides out-of-the box indented output has been added. For more details about new features and potential incompatibilities see the [README](https://erlang.org/download/otp_src\_27.0.readme). ### [`v26.2.5`](https://redirect.github.com/erlang/otp/releases/tag/OTP-26.2.5): OTP 26.2.5 [Compare Source](https://redirect.github.com/erlang/otp/compare/OTP-26.2.4...OTP-26.2.5) Patch Package: OTP 26.2.5 Git Tag: OTP-26.2.5 Date: 2024-05-02 Trouble Report Id: OTP-19061, OTP-19062, OTP-19065, OTP-19067, OTP-19068, OTP-19069, OTP-19070, OTP-19071, OTP-19072, OTP-19076, OTP-19078 Seq num: ERIERL-1073, GH-8356, GH-8383, GH-8385, OTP-18999, PR-8367, PR-8379, PR-8380, PR-8391, PR-8422 System: OTP Release: 26 Application: dialyzer-5.1.3, erts-14.2.5, kernel-9.2.4, mnesia-4.23.1, ssl-11.1.4, stdlib-5.2.3 Predecessor: OTP 26.2.4 Check out the git tag OTP-26.2.5, a

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR was generated by Mend Renovate. View the repository job log.