Skip to content

Releases: erlang/otp

OTP 26.2.5.3

05 Sep 08:15
Compare
Choose a tag to compare
Patch Package:           OTP 26.2.5.3
Git Tag:                 OTP-26.2.5.3
Date:                    2024-09-05
Trouble Report Id:       OTP-17848, OTP-19119, OTP-19168, OTP-19170,
                         OTP-19173, OTP-19175, OTP-19178, OTP-19179,
                         OTP-19187, OTP-19205, OTP-19206, OTP-19213
Seq num:                 ERIERL-1102, ERIERL-1108, GH-7746, GH-8454,
                         GH-8561, GH-8630, PR-8310, PR-8543, PR-8686,
                         PR-8690, PR-8763
System:                  OTP
Release:                 26
Application:             compiler-8.4.3.1, diameter-2.3.2.2,
                         erts-14.2.5.3, ftp-1.2.1.1, kernel-9.2.4.2,
                         public_key-1.15.1.2, ssh-5.1.4.2,
                         ssl-11.1.4.3
Predecessor:             OTP 26.2.5.2

 Check out the git tag OTP-26.2.5.3, and build a full OTP system
 including documentation. Apply one or more applications from this
 build as patches to your installation using the 'otp_patch_apply'
 tool. For information on install requirements, see descriptions for
 each application version below.

 ---------------------------------------------------------------------
 --- compiler-8.4.3.1 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19168    Application(s): compiler
               Related Id(s): GH-8630

               Fixed a crash in an optimization pass relating to
               appending binaries.


  OTP-19178    Application(s): compiler
               Related Id(s): PR-8686

               Fixed a bug in the compiler's alias analysis pass that
               could make it emit unsafe code.


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


 ---------------------------------------------------------------------
 --- diameter-2.3.2.2 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19206    Application(s): diameter
               Related Id(s): ERIERL-1102

               Stop service has been made more synchronous.


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


 ---------------------------------------------------------------------
 --- erts-14.2.5.3 ---------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19175    Application(s): erts, kernel, ssl
               Related Id(s): GH-8561, PR-8690

               A race in the kTLS flavour of SSL distribution has been
               fixed so 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.


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


 ---------------------------------------------------------------------
 --- ftp-1.2.1.1 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19119    Application(s): ftp
               Related Id(s): GH-8454, PR-8543

               Fix race condition that sometimes resulted in
               ftp:recv_bin/2 returning ok instead of {ok, Data}.


 Full runtime dependencies of ftp-1.2.1.1: erts-7.0, kernel-6.0,
 runtime_tools-1.15.1, ssl-10.2, stdlib-3.5


 ---------------------------------------------------------------------
 --- kernel-9.2.4.2 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19175    Application(s): erts, kernel, ssl
               Related Id(s): GH-8561, PR-8690

               A race in the kTLS flavour of SSL distribution has been
               fixed so 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.


  OTP-19205    Application(s): kernel

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


  OTP-19213    Application(s): kernel
               Related Id(s): ERIERL-1108, PR-8763

               Add the stdlib application parameters
               shell_redraw_prompt_on_output which when set to false
               disables redrawing of the shell prompt if any other
               output is done.


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


 ---------------------------------------------------------------------
 --- public_key-1.15.1.2 ---------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19179    Application(s): public_key

               For completeness handle rsa_pss implicit default value,
               although this will probably not be commonly used as it
               provides very weak security.


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


 ---------------------------------------------------------------------
 --- ssh-5.1.4.2 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19170    Application(s): ssh
               Related Id(s): GH-7746

               With this change, ssh daemon started with TCP port
               number argument will re-try to obtain listen socket
               before returning error to user.


  OTP-19173    Application(s): ssh
               Related Id(s): PR-8310

               With this change, robustness is improved by monitoring
               connection handler process before casting socket
               control notification.


 Full runtime dependencies of ssh-5.1.4.2: crypto-5.0, erts-14.0,
 kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
 stdlib-5.0


 ---------------------------------------------------------------------
 --- ssl-11.1.4.3 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19175    Application(s): erts, kernel, ssl
               Related Id(s): GH-8561, PR-8690

               A race in the kTLS flavour of SSL distribution has been
               fixed so 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.


 --- Improvements and New Features ---

  OTP-17848    Application(s): ssl

               Make sure all TLS-1.3 terminations are graceful
               (previous TLS version terminations already are).


  OTP-19187    Application(s): ssl

               Include more information in logging of SNI (Server Name
               Indication) mismatch error.


 Full runtime dependencies of ssl-11.1.4.3: crypto-5.0, erts-14.0,
 inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
 stdlib-4.1


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

 Frej Drejhammar, jakob svenningsson


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

OTP 27.0.1

10 Jul 13:52
Compare
Choose a tag to compare
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 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
    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 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 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

OTP 26.2.5.2

10 Jul 10:11
Compare
Choose a tag to compare
Patch Package:           OTP 26.2.5.2
Git Tag:                 OTP-26.2.5.2
Date:                    2024-07-10
Trouble Report Id:       OTP-19143, OTP-19147, OTP-19152, OTP-19154,
                         OTP-19157
Seq num:                 ERIERL-1043, ERIERL-1106, GH-8588, GH-8613,
                         PR-8619, PR-8627, PR-8638
System:                  OTP
Release:                 26
Application:             crypto-5.4.2.1, erts-14.2.5.2, ssl-11.1.4.2,
                         stdlib-5.2.3.1
Predecessor:             OTP 26.2.5.1

 Check out the git tag OTP-26.2.5.2, and build a full OTP system
 including documentation. Apply one or more applications from this
 build as patches to your installation using the 'otp_patch_apply'
 tool. For information on install requirements, see descriptions for
 each application version below.

 ---------------------------------------------------------------------
 --- crypto-5.4.2.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-19143    Application(s): crypto

               Add warning in documentation to avoid crypto:start/0 as
               it does not work for FIPS mode. Use
               application:start(crypto) instead.


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


 ---------------------------------------------------------------------
 --- erts-14.2.5.2 ---------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19147    Application(s): erts
               Related Id(s): ERIERL-1043, ERIERL-1106, PR-8619

               When 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 is the default.


  OTP-19154    Application(s): erts
               Related Id(s): GH-8613, PR-8627

               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.


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


 ---------------------------------------------------------------------
 --- ssl-11.1.4.2 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-19152    Application(s): ssl
               Related Id(s): GH-8588

               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.


 Full runtime dependencies of ssl-11.1.4.2: crypto-5.0, erts-14.0,
 inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- stdlib-5.2.3.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-19157    Application(s): stdlib
               Related Id(s): PR-8638

               Fixed a bug that caused the shell completion to crash
               when keyword and tuple appeared on the same line.


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


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

OTP 25.3.2.13

08 Jul 07:05
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.13
Git Tag:                 OTP-25.3.2.13
Date:                    2024-07-08
Trouble Report Id:       OTP-19057, OTP-19109, OTP-19123, OTP-19140,
                         OTP-19147, OTP-19154
Seq num:                 ERIERL-1043, ERIERL-1106, GH-7483, GH-8484,
                         GH-8613, PR-8345, PR-8546, PR-8619, PR-8627
System:                  OTP
Release:                 25
Application:             erts-13.2.2.10, ssh-4.15.3.5, ssl-10.9.1.5
Predecessor:             OTP 25.3.2.12

 Check out the git tag OTP-25.3.2.13, and build a full OTP system
 including documentation. Apply one or more applications from this
 build as patches to your installation using the 'otp_patch_apply'
 tool. For information on install requirements, see descriptions for
 each application version below.

 ---------------------------------------------------------------------
 --- erts-13.2.2.10 --------------------------------------------------
 ---------------------------------------------------------------------

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


  OTP-19147    Application(s): erts
               Related Id(s): ERIERL-1043, ERIERL-1106, PR-8619

               When 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 is the default.


  OTP-19154    Application(s): erts
               Related Id(s): GH-8613, PR-8627

               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.


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


 ---------------------------------------------------------------------
 --- ssh-4.15.3.5 ----------------------------------------------------
 ---------------------------------------------------------------------

 The ssh-4.15.3.5 application can be applied independently of other
 applications on a full OTP 25 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-4.15.3.5: crypto-5.0, erts-11.0,
 kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15


 ---------------------------------------------------------------------
 --- ssl-10.9.1.5 ----------------------------------------------------
 ---------------------------------------------------------------------

 Note! The ssl-10.9.1.5 application *cannot* be applied independently
       of other applications on an arbitrary OTP 25 installation.

       On a full OTP 25 installation, also the following runtime
       dependency has to be satisfied:
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-19140    Application(s): ssl

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


 Full runtime dependencies of ssl-10.9.1.5: crypto-5.0, erts-10.0,
 inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
 stdlib-4.1


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

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