Skip to content

Releases: erlang/otp

OTP 26.2.5.1

25 Jun 08:59
Compare
Choose a tag to compare
Patch Package:           OTP 26.2.5.1
Git Tag:                 OTP-26.2.5.1
Date:                    2024-06-25
Trouble Report Id:       OTP-19057, OTP-19063, OTP-19090, OTP-19091,
                         OTP-19092, OTP-19094, OTP-19100, OTP-19104,
                         OTP-19107, OTP-19109, OTP-19121, OTP-19123,
                         OTP-19140
Seq num:                 ERIERL-870, GH-7483, GH-8376, GH-8482,
                         GH-8484, GH-8489, OTP-18835, PR-8345,
                         PR-8399, PR-8508, PR-8546
System:                  OTP
Release:                 26
Application:             diameter-2.3.2.1, erts-14.2.5.1,
                         kernel-9.2.4.1, public_key-1.15.1.1,
                         ssh-5.1.4.1, ssl-11.1.4.1
Predecessor:             OTP 26.2.5

 Check out the git tag OTP-26.2.5.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.

 ---------------------------------------------------------------------
 --- diameter-2.3.2.1 ------------------------------------------------
 ---------------------------------------------------------------------

 The diameter-2.3.2.1 application can be applied independently of
 other applications on a full OTP 26 installation.

 --- Improvements and New Features ---

  OTP-19090    Application(s): diameter
               Related Id(s): PR-8399

               Pick peer can now also handle request of type
               #diameter_packet{}.


 Full runtime dependencies of diameter-2.3.2.1: erts-10.0, kernel-3.2,
 ssl-9.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- erts-14.2.5.1 ---------------------------------------------------
 ---------------------------------------------------------------------

 The erts-14.2.5.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19063    Application(s): erts, kernel
               Related Id(s): OTP-18835

               A call to socket:[recv|recvfrom|recvmsg]/* with Timeout
               = 0 on Windows could cause a (case clause) crash if
               data is immediately available.


  OTP-19121    Application(s): erts
               Related Id(s): GH-8484

               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.


  OTP-19123    Application(s): erts
               Related Id(s): GH-8484, PR-8546

               '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.


 Full runtime dependencies of erts-14.2.5.1: kernel-9.0, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- kernel-9.2.4.1 --------------------------------------------------
 ---------------------------------------------------------------------

 The kernel-9.2.4.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19063    Application(s): erts, kernel
               Related Id(s): OTP-18835

               A call to socket:[recv|recvfrom|recvmsg]/* with Timeout
               = 0 on Windows could cause a (case clause) crash if
               data is immediately available.


  OTP-19104    Application(s): kernel
               Related Id(s): ERIERL-870

               Open a disk_log file and combining head_func with
               rotate options did not work.


 Full runtime dependencies of kernel-9.2.4.1: crypto-5.0, erts-14.0,
 sasl-3.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- public_key-1.15.1.1 ---------------------------------------------
 ---------------------------------------------------------------------

 The public_key-1.15.1.1 application can be applied independently of
 other applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19100    Application(s): public_key
               Related Id(s): GH-8482, PR-8508

               Fix bug in dnsName constraint check, could cause valid
               cert to be considered bad during path validation.


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


 ---------------------------------------------------------------------
 --- ssh-5.1.4.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The ssh-5.1.4.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19057    Application(s): ssh
               Related Id(s): GH-7483, PR-8345

               With this change, ssh client will automatically adjust
               transfer window size for commands executed remotely
               over SSH.


  OTP-19109    Application(s): ssh
               Related Id(s): PR-8345

               With this change, race condition between connection
               closing and automatic window adjustment is fixed.


 Full runtime dependencies of ssh-5.1.4.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.4.1 ----------------------------------------------------
 ---------------------------------------------------------------------

 The ssl-11.1.4.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19094    Application(s): ssl
               Related Id(s): GH-8489

               Check for TLS-1.3 support should check minimum
               requirements.


  OTP-19107    Application(s): ssl
               Related Id(s): GH-8376

               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.


  OTP-19140    Application(s): ssl

               TLS-1.3 negotiation now uses SNI based options
               correctly instead of ignoring them.


 --- Improvements and New Features ---

  OTP-19091    Application(s): ssl

               Make it easier to distinguish between a invalid
               signature and unsupported signature.


  OTP-19092    Application(s): ssl
               Related Id(s): GH-8482

               Enhance ALERT logs to help understand what causes the
               alert.


 Full runtime dependencies of ssl-11.1.4.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


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

 Anupama Singh


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

OTP 27.0

20 May 09:52
Compare
Choose a tag to compare

Erlang/OTP 27 Released

All artifacts for the release can be downloaded from the Erlang/OTP Github release and you can view the new documentation at https://erlang.org/doc.

You can also install the latest release using 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 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 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. 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:

    -compile([nowarn_missing_spec]).

    and the compiler is invoked like so:

    % 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 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.

    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.

OTP 26.2.5

02 May 15:42
Compare
Choose a tag to compare
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, 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-19069    Application(s): erts

               Added a warning to open_port/2 regarding the BadBatBut
               attack affecting Windows.


 ---------------------------------------------------------------------
 --- dialyzer-5.1.3 --------------------------------------------------
 ---------------------------------------------------------------------

 The dialyzer-5.1.3 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19068    Application(s): dialyzer
               Related Id(s): GH-8383

               Fixed an issue with bitstring type inference on
               segments following UTF-8/16/32 segments.


 Full runtime dependencies of dialyzer-5.1.3: compiler-8.0, erts-12.0,
 kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0


 ---------------------------------------------------------------------
 --- erts-14.2.5 -----------------------------------------------------
 ---------------------------------------------------------------------

 The erts-14.2.5 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19061    Application(s): erts

               gen_sctp:send/3,4 now waits for the send to complete
               instead of returning an OS result such as
               {error, ewouldblock}.


  OTP-19070    Application(s): erts
               Related Id(s): GH-8385

               ETS functions did not properly handle keys containing
               maps, sometimes matching too many or too few objects.


  OTP-19071    Application(s): erts
               Related Id(s): PR-8380, OTP-18999

               Fix CPU quota determination for cgroups.

               The bug was introduced through OTP-18999.


 --- Improvements and New Features ---

  OTP-19069    Application(s): erts

               *** HIGHLIGHT ***

               Added a warning to open_port/2 regarding the BadBatBut
               attack affecting Windows.


 Full runtime dependencies of erts-14.2.5: kernel-9.0, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- kernel-9.2.4 ----------------------------------------------------
 ---------------------------------------------------------------------

 The kernel-9.2.4 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19072    Application(s): kernel, stdlib
               Related Id(s): PR-8391

               Fix the shell Job Control Mode to not crash when typing
               TAB or CTRL+R.


  OTP-19078    Application(s): kernel
               Related Id(s): PR-8422

               Fix calls to blocking application APIs to throw an
               exception with reason terminating if called when the
               system is terminating.

               This is done in order to avoid deadlocks during
               shutdown or restart.


 Full runtime dependencies of kernel-9.2.4: crypto-5.0, erts-14.0,
 sasl-3.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- mnesia-4.23.1 ---------------------------------------------------
 ---------------------------------------------------------------------

 The mnesia-4.23.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19076    Application(s): mnesia
               Related Id(s): ERIERL-1073

               Mnesia could crash during startup if del_table_copy/2
               and add_table_copy/3 was invoked when the table was
               loading.


 Full runtime dependencies of mnesia-4.23.1: erts-9.0, kernel-5.3,
 stdlib-5.0


 ---------------------------------------------------------------------
 --- ssl-11.1.4 ------------------------------------------------------
 ---------------------------------------------------------------------

 The ssl-11.1.4 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19065    Application(s): ssl
               Related Id(s): GH-8356, PR-8367

               Fix certificate authorities check so that CA closest to
               peer is not lost. It could manifest itself in a failed
               connection as the client failed to realize it had a
               valid certificate chain to send to the server.


  OTP-19067    Application(s): ssl
               Related Id(s): PR-8379

               ssl:signature_algs/2 did not list some legacy algorithm
               schemes correctly when listing all algorithms
               available.


 Full runtime dependencies of ssl-11.1.4: 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.3 ----------------------------------------------------
 ---------------------------------------------------------------------

 The stdlib-5.2.3 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19062    Application(s): stdlib

               Fix shell expansion of -type a() :: $a. in the erlang
               shell.


  OTP-19072    Application(s): kernel, stdlib
               Related Id(s): PR-8391

               Fix the shell Job Control Mode to not crash when typing
               TAB or CTRL+R.


 Full runtime dependencies of stdlib-5.2.3: compiler-5.0, crypto-4.5,
 erts-13.1, kernel-9.0, sasl-3.0


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

OTP 25.3.2.12

02 May 14:06
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.12
Git Tag:                 OTP-25.3.2.12
Date:                    2024-05-02
Trouble Report Id:       OTP-19065, OTP-19070, OTP-19071, OTP-19076
Seq num:                 ERIERL-1073, GH-8356, GH-8385, OTP-18999,
                         PR-8367, PR-8380
System:                  OTP
Release:                 25
Application:             erts-13.2.2.9, mnesia-4.21.4.3, ssl-10.9.1.4
Predecessor:             OTP 25.3.2.11

 Check out the git tag OTP-25.3.2.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.

 ---------------------------------------------------------------------
 --- erts-13.2.2.9 ---------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-13.2.2.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
       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-19070    Application(s): erts
               Related Id(s): GH-8385

               ETS functions did not properly handle keys containing
               maps, sometimes matching too many or too few objects.


  OTP-19071    Application(s): erts
               Related Id(s): PR-8380, OTP-18999

               Fix CPU quota determination for cgroups.

               The bug was introduced through OTP-18999.


 Full runtime dependencies of erts-13.2.2.9: kernel-8.5, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- mnesia-4.21.4.3 -------------------------------------------------
 ---------------------------------------------------------------------

 The mnesia-4.21.4.3 application can be applied independently of other
 applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19076    Application(s): mnesia
               Related Id(s): ERIERL-1073

               Mnesia could crash during startup if del_table_copy/2
               and add_table_copy/3 was invoked when the table was
               loading.


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


 ---------------------------------------------------------------------
 --- ssl-10.9.1.4 ----------------------------------------------------
 ---------------------------------------------------------------------

 Note! The ssl-10.9.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
       dependency has to be satisfied:
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-19065    Application(s): ssl
               Related Id(s): GH-8356, PR-8367

               Fix certificate authorities check so that CA closest to
               peer is not lost. It could manifest itself in a failed
               connection as the client failed to realize it had a
               valid certificate chain to send to the server.


 Full runtime dependencies of ssl-10.9.1.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


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

OTP 27.0-rc3

18 Apr 07:07
Compare
Choose a tag to compare
OTP 27.0-rc3 Pre-release
Pre-release

OTP 27.0-rc3

Erlang/OTP 27.0-rc3 is the third and final release candidate before the OTP 27.0 release.

The intention with this release is to get feedback from our users. All feedback is welcome, even if it is only to say that it works for you.
We encourage users to try it out and give us feedback either by creating an issue at https://github.com/erlang/otp/issues or by posting to Erlang Forums.

All artifacts for the release can be downloaded from the Erlang/OTP Github release and you can view the new documentation at https://erlang.org/documentation/doc-15.0-rc3/doc.

You can also install the latest release using kerl like this:

kerl build 27.0-rc3 27.0-rc3.

Erlang/OTP 27 is a new major release with new features, improvements as well as a few incompatibilities. Some of the new features are highlighted below.

Many thanks to all contributors!

Notable changes in RC3

  • The support for multiple trace sessions is now documented and ready for use.

Highlights for RC2

  • 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.

    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.

Other notable changes in RC2

  • 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 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:

    -compile([nowarn_missing_spec]).

    and the compiler is invoked like so:

    % erlc +warn_missing_spec some_module.erl
    

    no warnings will be issued for functions that do not have any specs.

  • 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.'

Highlights for RC1

Documentation

EEP-59 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 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. 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}.

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

STDLIB

  • 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.

OTP 26.2.4

12 Apr 12:42
Compare
Choose a tag to compare
Patch Package:           OTP 26.2.4
Git Tag:                 OTP-26.2.4
Date:                    2024-04-12
Trouble Report Id:       OTP-18958, OTP-18960, OTP-18999, OTP-19013,
                         OTP-19014, OTP-19015, OTP-19019, OTP-19021,
                         OTP-19031, OTP-19034, OTP-19035, OTP-19036,
                         OTP-19037, OTP-19038, OTP-19039, OTP-19040,
                         OTP-19041, OTP-19043, OTP-19044, OTP-19045,
                         OTP-19048, OTP-19049, OTP-19056, OTP-19058,
                         OTP-19059, OTP-19060
Seq num:                 #8176, ERIERL-1043, ERIERL-1060, ERIERL-682,
                         GH-7897, GH-7928, GH-7951, GH-7955, GH-8120,
                         GH-8186, GH-8238, GH-8268, GH-8271, GH-8280,
                         GH-8291, GH-8316, GH-8338, OTP-17323,
                         PR-8220, PR-8248, PR-8275, PR-8277, PR-8284,
                         PR-8297, PR-8312, PR-8342, PR-8343
System:                  OTP
Release:                 26
Application:             asn1-5.2.2, common_test-1.26.2,
                         compiler-8.4.3, crypto-5.4.2, debugger-5.3.4,
                         diameter-2.3.2, erts-14.2.4, kernel-9.2.3,
                         ssh-5.1.4, ssl-11.1.3, stdlib-5.2.2
Predecessor:             OTP 26.2.3

 Check out the git tag OTP-26.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.

 ---------------------------------------------------------------------
 --- asn1-5.2.2 ------------------------------------------------------
 ---------------------------------------------------------------------

 The asn1-5.2.2 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19039    Application(s): asn1
               Related Id(s): GH-8291, PR-8297

               An ASN.1 module that contains named BIT STRING values
               would fail to compiled if both the BER and JER
               back-ends were enabled.


 Full runtime dependencies of asn1-5.2.2: erts-11.0, kernel-7.0,
 stdlib-3.13


 ---------------------------------------------------------------------
 --- common_test-1.26.2 ----------------------------------------------
 ---------------------------------------------------------------------

 The common_test-1.26.2 application can be applied independently of
 other applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18960    Application(s): common_test

               With this change, the last column in common_test
               testcase log file is modified to now show the total sum
               of each time in the table rows, and Elapsed Time which
               is a clock time spent to run above functions. The
               Elapsed Time is the same time that was previously a
               total.


 Full runtime dependencies of common_test-1.26.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.4.3 --------------------------------------------------
 ---------------------------------------------------------------------

 The compiler-8.4.3 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19019    Application(s): compiler

               In rare circumstances, the compiler code generate
               unsafe code for a bit syntax match.


  OTP-19035    Application(s): compiler
               Related Id(s): GH-8280, PR-8284

               In rare circumstances, binary matches that were
               supposed to succeed failed.


  OTP-19045    Application(s): compiler
               Related Id(s): GH-8316

               Fixed a bug where a fun's environment could be
               overridden by an argument if all of the following
               conditions were met:

               -- The fun was declared in the module that called it.

               -- The fun's target was statically known.

               -- The fun was called with a number of extra arguments
               equal to the number of environment variables.


 Full runtime dependencies of compiler-8.4.3: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-5.0


 ---------------------------------------------------------------------
 --- crypto-5.4.2 ----------------------------------------------------
 ---------------------------------------------------------------------

 The crypto-5.4.2 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19038    Application(s): crypto
               Related Id(s): GH-8271, PR-8277

               Fix building with --enable-fips with OpenSSL 3 on
               MacOS.


 Full runtime dependencies of crypto-5.4.2: erts-9.0, kernel-5.3,
 stdlib-3.9


 ---------------------------------------------------------------------
 --- debugger-5.3.4 --------------------------------------------------
 ---------------------------------------------------------------------

 The debugger-5.3.4 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18958    Application(s): debugger
               Related Id(s): GH-8120, PR-8275

               Guards with nested record expression could wrongly
               evaluate to false.


 Full runtime dependencies of debugger-5.3.4: compiler-8.0, erts-12.0,
 kernel-8.0, stdlib-3.15, wx-2.0


 ---------------------------------------------------------------------
 --- diameter-2.3.2 --------------------------------------------------
 ---------------------------------------------------------------------

 The diameter-2.3.2 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19040    Application(s): diameter
               Related Id(s): ERIERL-1060

               Reduce the impact of calling service_info by not
               counting the binaries (on the heap) info, This is done
               by introducing an option, bins_info, which controls
               this.


 Full runtime dependencies of diameter-2.3.2: erts-10.0, kernel-3.2,
 ssl-9.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- erts-14.2.4 -----------------------------------------------------
 ---------------------------------------------------------------------

 The erts-14.2.4 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18999    Application(s): erts
               Related Id(s): GH-7928

               Fixed CPU quota determination for cgroup version 2


  OTP-19014    Application(s): erts

               Fix faulty reduction counting in exiting process which
               could cause it to do unnecessary yielding.


  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.


  OTP-19021    Application(s): erts
               Related Id(s): GH-8238, PR-8248

               On AArch64 (ARM64), Erlang code using bit syntax
               construction compiled using Erlang/OTP 24 could crash
               the runtime system when run in Erlang/OTP 26.2.3.


  OTP-19034    Application(s): erts

               Calling erlang:trace/3 with first argument one of
               ports, processes, existing_ports, existing_processes,
               existing or all, could cause emulator crash if a dirty
               scheduler was executing a simultaneous trace action.


  OTP-19036    Application(s): erts
               Related Id(s): GH-8186

               Fixed an integer overflow when the monotonic time unit
               reported by the operating system was greater than 10
               and lower than 100 microseconds.


  OTP-19041    Application(s): erts

               Fix option reuseaddr for FreeBSD 14


  OTP-19043    Application(s): erts
               Related Id(s): PR-8342

               When a traced process executing on a dirty scheduler
               received an exit signal, the dirty scheduler could use
               the wrong thread specific data which could lead to a
               crash.


  OTP-19048    Application(s): erts
               Related Id(s): PR-8343

               Fixed a more or less harmless bug that caused time
               correction of Erlang monotonic time to become slightly
               off on Windows platforms when QueryPerformanceCounter()
               was used as OS monotonic time source.

               erlang:system_info(os_monotonic_time_source) now also
               returns information about used resolution which not
               always corresponds to the resolution of the OS
               monotonic time source.


  OTP-19049    Application(s): erts, kernel
               Related Id(s): #8176

               When using IPv6, classic gen_udp failed to add (group)
               membership (drop was used instead).


  OTP-19060    A...
Read more

OTP 25.3.2.11

12 Apr 15:11
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.11
Git Tag:                 OTP-25.3.2.11
Date:                    2024-04-12
Trouble Report Id:       OTP-18958, OTP-18960, OTP-18999, OTP-19013,
                         OTP-19014, OTP-19031, OTP-19034, OTP-19036,
                         OTP-19038, OTP-19040, OTP-19043, OTP-19044,
                         OTP-19048, OTP-19050, OTP-19058, OTP-19064
Seq num:                 ERIERL-1043, ERIERL-1060, GH-7897, GH-7928,
                         GH-8120, GH-8186, GH-8268, GH-8271,
                         OTP-18990, PR-8220, PR-8275, PR-8277,
                         PR-8342, PR-8343
System:                  OTP
Release:                 25
Application:             common_test-1.24.0.3, crypto-5.1.4.3,
                         debugger-5.3.1.3, diameter-2.2.7.1,
                         erts-13.2.2.8, inets-8.3.1.3, kernel-8.5.4.3,
                         observer-2.14.0.1, os_mon-2.8.2.1,
                         reltool-0.9.1.1, ssh-4.15.3.4, stdlib-4.3.1.4
Predecessor:             OTP 25.3.2.10

 Check out the git tag OTP-25.3.2.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.

 ---------------------------------------------------------------------
 --- common_test-1.24.0.3 --------------------------------------------
 ---------------------------------------------------------------------

 The common_test-1.24.0.3 application can be applied independently of
 other applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18960    Application(s): common_test

               With this change, the last column in common_test
               testcase log file is modified to now show the total sum
               of each time in the table rows, and Elapsed Time which
               is a clock time spent to run above functions. The
               Elapsed Time is the same time that was previously a
               total.


 Full runtime dependencies of common_test-1.24.0.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


 ---------------------------------------------------------------------
 --- crypto-5.1.4.3 --------------------------------------------------
 ---------------------------------------------------------------------

 The crypto-5.1.4.3 application can be applied independently of other
 applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19038    Application(s): crypto
               Related Id(s): GH-8271, PR-8277

               Fix building with --enable-fips with OpenSSL 3 on
               MacOS.


 Full runtime dependencies of crypto-5.1.4.3: erts-9.0, kernel-5.3,
 stdlib-3.9


 ---------------------------------------------------------------------
 --- debugger-5.3.1.3 ------------------------------------------------
 ---------------------------------------------------------------------

 The debugger-5.3.1.3 application can be applied independently of
 other applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18958    Application(s): debugger
               Related Id(s): GH-8120, PR-8275

               Guards with nested record expression could wrongly
               evaluate to false.


 Full runtime dependencies of debugger-5.3.1.3: compiler-8.0,
 erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0


 ---------------------------------------------------------------------
 --- diameter-2.2.7.1 ------------------------------------------------
 ---------------------------------------------------------------------

 The diameter-2.2.7.1 application can be applied independently of
 other applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19040    Application(s): diameter
               Related Id(s): ERIERL-1060

               Reduce the impact of calling service_info by not
               counting the binaries (on the heap) info, This is done
               by introducing an option, bins_info, which controls
               this.


 Full runtime dependencies of diameter-2.2.7.1: erts-10.0, kernel-3.2,
 ssl-9.0, stdlib-3.0


 ---------------------------------------------------------------------
 --- erts-13.2.2.8 ---------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-13.2.2.8 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-18999    Application(s): erts
               Related Id(s): GH-7928

               Fixed CPU quota determination for cgroup version 2


  OTP-19014    Application(s): erts

               Fix faulty reduction counting in exiting process which
               could cause it to do unnecessary yielding.


  OTP-19034    Application(s): erts

               Calling erlang:trace/3 with first argument one of
               ports, processes, existing_ports, existing_processes,
               existing or all, could cause emulator crash if a dirty
               scheduler was executing a simultaneous trace action.


  OTP-19036    Application(s): erts
               Related Id(s): GH-8186

               Fixed an integer overflow when the monotonic time unit
               reported by the operating system was greater than 10
               and lower than 100 microseconds.


  OTP-19043    Application(s): erts
               Related Id(s): PR-8342

               When a traced process executing on a dirty scheduler
               received an exit signal, the dirty scheduler could use
               the wrong thread specific data which could lead to a
               crash.


  OTP-19048    Application(s): erts
               Related Id(s): PR-8343

               Fixed a more or less harmless bug that caused time
               correction of Erlang monotonic time to become slightly
               off on Windows platforms when QueryPerformanceCounter()
               was used as OS monotonic time source.

               erlang:system_info(os_monotonic_time_source) now also
               returns information about used resolution which not
               always corresponds to the resolution of the OS
               monotonic time source.


 --- Improvements and New Features ---

  OTP-19044    Application(s): erts
               Related Id(s): ERIERL-1043, PR-8342

               Checks for monotonicity of monotonic time have been
               improved so that Erlang and OS monotonic time are
               checked separately.

               A new configure argument
               --enable-ensure-os-monotonic-time has also been added.
               It enables functionality ensuring the monotonicity of
               monotonic timestamps delivered by the OS. When a
               non-monotonic timestamp is detected, it will be
               replaced by the last delivered monotonic timestamp
               before being used by Erlang's time functionality. Note
               that you do not want to enable this unless the OS
               monotonic time source on the system fails to produce
               monotonic timestamps. This since ensuring the
               monotonicity of OS monotonic timestamps will hurt
               scalability and performance of the system.


  OTP-19058    Application(s): erts

               For severe errors, when the `socket` module terminates
               the Erlang VM, now an erl_crash.dump is produced, to
               facilitate post mortem debugging.


 Full runtime dependencies of erts-13.2.2.8: kernel-8.5, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- inets-8.3.1.3 ---------------------------------------------------
 ---------------------------------------------------------------------

 The inets-8.3.1.3 application can be applied independently of other
 applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19064    Application(s): inets, observer, os_mon, reltool

               Fixed runtime dependencies.


 Full runtime dependencies of inets-8.3.1.3: erts-13.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.3 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The kernel-8.5.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.3 (first satisfied in OTP 25.2)
       -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-19050    Application(s): kernel
               Related Id(s): OTP-18990

               Fixed gen_udp:open/2 type spec to include already
               supported module socket address types.


 Full runtime dependencies of kernel-8.5.4.3: crypto-5.0, erts-13.1.3,
 sasl-3.0, stdlib-4.1.1


 ---------------------------------------------------------------------
 --- observer-2.14.0.1 -----------------------------------------------
 ---------------------------------------------------------------------

 The observer-2.14.0.1 application can be applied independently of
...
Read more

OTP 24.3.4.17

09 Apr 14:12
Compare
Choose a tag to compare

Warning

Until the 10th of May the Erlang/OTP 24.3.4.17 patch had an incorrect prebuilt archive on github (the otp_src_24.3.4.17.tar.gz artifact), which meant that if used it would install OTP 24.3.4.15 and not the intended patch.

Tools such as kerl and by extension asdf use the prebuilt archive, so if you used those to install 24.3.4.17 you will need to rebuild your system to get the correct Erlang version. In order to get the proper version in kerl you need to do kerl cleanup 24.3.4.17 and then re-install it.

The official docker images are unaffected as they build from the git tag.

Patch Package:           OTP 24.3.4.17
Git Tag:                 OTP-24.3.4.17
Date:                    2024-04-09
Trouble Report Id:       OTP-18960, OTP-18986, OTP-18996, OTP-19002,
                         OTP-19003, OTP-19006, OTP-19013, OTP-19015,
                         OTP-19019, OTP-19034, OTP-19036, OTP-19043,
                         OTP-19044, OTP-19048
Seq num:                 ERIERL-1041, ERIERL-1043, ERIERL-682,
                         GH-7897, GH-8186, GH-8187, PR-8173, PR-8174,
                         PR-8189, PR-8220, PR-8342, PR-8343
System:                  OTP
Release:                 24
Application:             common_test-1.22.1.3, compiler-8.1.1.6,
                         crypto-5.0.6.5, erts-12.3.2.17, ssh-4.13.2.6
Predecessor:             OTP 24.3.4.16

 Check out the git tag OTP-24.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.

 ---------------------------------------------------------------------
 --- common_test-1.22.1.3 --------------------------------------------
 ---------------------------------------------------------------------

 The common_test-1.22.1.3 application can be applied independently of
 other applications on a full OTP 24 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18960    Application(s): common_test

               With this change, the last column in common_test
               testcase log file is modified to now show the total sum
               of each time in the table rows, and Elapsed Time which
               is a clock time spent to run above functions. The
               Elapsed Time is the same time that was previously a
               total.


 Full runtime dependencies of common_test-1.22.1.3: compiler-6.0,
 crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0,
 observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
 stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8


 ---------------------------------------------------------------------
 --- compiler-8.1.1.6 ------------------------------------------------
 ---------------------------------------------------------------------

 The compiler-8.1.1.6 application can be applied independently of
 other applications on a full OTP 24 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.1.1.6: crypto-3.6, erts-11.0,
 kernel-7.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- crypto-5.0.6.5 --------------------------------------------------
 ---------------------------------------------------------------------

 The crypto-5.0.6.5 application can be applied independently of other
 applications on a full OTP 24 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.0.6.5: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- erts-12.3.2.17 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-12.3.2.17 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-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-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.


  OTP-19034    Application(s): erts

               Calling erlang:trace/3 with first argument one of
               ports, processes, existing_ports, existing_processes,
               existing or all, could cause emulator crash if a dirty
               scheduler was executing a simultaneous trace action.


  OTP-19036    Application(s): erts
               Related Id(s): GH-8186

               Fixed an integer overflow when the monotonic time unit
               reported by the operating system was greater than 10
               and lower than 100 microseconds.


  OTP-19043    Application(s): erts
               Related Id(s): PR-8342

               When a traced process executing on a dirty scheduler
               received an exit signal, the dirty scheduler could use
               the wrong thread specific data which could lead to a
               crash.


  OTP-19048    Application(s): erts
               Related Id(s): PR-8343

               Fixed a more or less harmless bug that caused time
               correction of Erlang monotonic time to become slightly
               off on Windows platforms when QueryPerformanceCounter()
               was used as OS monotonic time source.

               erlang:system_info(os_monotonic_time_source) now also
               returns information about used resolution which not
               always corresponds to the resolution of the OS
               monotonic time source.


 --- Improvements and New Features ---

  OTP-19044    Application(s): erts
               Related Id(s): ERIERL-1043, PR-8342

               Checks for monotonicity of monotonic time have been
               improved so that Erlang and OS monotonic time are
               checked separately.

               A new configure argument
               --enable-ensure-os-monotonic-time has also been added.
               It enables functionality ensuring the monotonicity of
               monotonic timestamps delivered by the OS. When a
               non-monotonic timestamp is detected, it will be
               replaced by the last delivered monotonic timestamp
               before being used by Erlang's time functionality. Note
               that you do not want to enable this unless the OS
               monotonic time source on the system fails to produce
               monotonic timestamps. This since ensuring the
               monotonicity of OS monotonic timestamps will hurt
               scalability and performance of the system.


 Full runtime dependencies of erts-12.3.2.17: kernel-8.3, sasl-3.3,
 stdlib-3.13


 ---------------------------------------------------------------------
 --- ssh-4.13.2.6 ----------------------------------------------------
 ---------------------------------------------------------------------

 The ssh-4.13.2.6 application can be applied independently of other
 applications on a full OTP 24 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.


  OTP-19013    Application(s): ssh
               Related Id(s): GH-7897, PR-8220

               With this change, owner and group file attributes
               decoding is fixed and results with value of integer
               type.


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


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

OTP-27.0-rc2

21 Mar 07:46
Compare
Choose a tag to compare
OTP-27.0-rc2 Pre-release
Pre-release

Erlang/OTP 27.0-rc2 is the second release candidate of three before the OTP 27.0 release.

The intention with this release is to get feedback from our users.
All feedback is welcome, even if it is only to say that it works for you.
We encourage users to try it out and give us feedback either by creating an issue at
https://github.com/erlang/otp/issues or by posting to Erlang Forums.

All artifacts for the release can be downloaded from the Erlang/OTP Github release
and you can view the new documentation at https://erlang.org/documentation/doc-15.0-rc2/doc.
You can also install the latest release using kerl like this:

kerl build 27.0-rc2 27.0-rc2.

Erlang/OTP 27 is a new major release with new features, improvements
as well as a few incompatibilities. Some of the new features are
highlighted below.

Many thanks to all contributors!

Highlights for RC2

  • 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.

    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.

Other notable changes in RC2

  • 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 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:

    -compile([nowarn_missing_spec]).

    and the compiler is invoked like so:

    % erlc +warn_missing_spec some_module.erl
    

    no warnings will be issued for functions that do not have any specs.

  • 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.

Highlights for RC1

Documentation

EEP-59 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 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. 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}.

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

STDLIB

  • 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.

OTP 22.3.4.27

18 Mar 17:05
Compare
Choose a tag to compare
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


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