Skip to content

Releases: erlang/otp

OTP 26.0.2

29 Jun 08:55
Compare
Choose a tag to compare
Patch Package:           OTP 26.0.2
Git Tag:                 OTP-26.0.2
Date:                    2023-06-29
Trouble Report Id:       OTP-18580, OTP-18618, OTP-18624, OTP-18625,
                         OTP-18626, OTP-18630, OTP-18634, OTP-18635,
                         OTP-18636, OTP-18637, OTP-18640, OTP-18643,
                         OTP-18646, OTP-18649, OTP-18650, OTP-18651,
                         OTP-18652, OTP-18653, OTP-18656, OTP-18657,
                         OTP-18659, OTP-18663
Seq num:                 ERIERL-932, GH-6881, GH-7029, GH-7230,
                         GH-7261, GH-7286, GH-7296, GH-7308, GH-7324,
                         GH-7354, GH-7356, GH-7368, GH-7370, GH-7390,
                         GH-7433
System:                  OTP
Release:                 26
Application:             compiler-8.3.2, erts-14.0.2, kernel-9.0.2,
                         ssh-5.0.1, ssl-11.0.2, stdlib-5.0.2
Predecessor:             OTP 26.0.1

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

 ---------------------------------------------------------------------
 --- compiler-8.3.2 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18625    Application(s): compiler
               Related Id(s): GH-7354

               Fixed a type handling bug that would cause an internal
               consistence failure for correct code.


  OTP-18626    Application(s): compiler
               Related Id(s): GH-7356

               Fixed a bug that could cause the stack trace of throw
               exceptions to be erroneously optimized out.


  OTP-18634    Application(s): compiler
               Related Id(s): GH-7370

               Complex guard expression using 'or' were not always
               fully evaluated, making guards that were supposed to
               fail succeed.


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


 ---------------------------------------------------------------------
 --- erts-14.0.2 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18630    Application(s): erts
               Related Id(s): GH-7029, PR-7275

               Fix using the IME (Input Method Editor) to enter text
               in cmd.exe and powershell.exe on Windows.


  OTP-18635    Application(s): erts, kernel
               Related Id(s): #7328

               Multiple socket:accept calls issue. When making
               multiple accept calls, only the last call is active.


  OTP-18636    Application(s): erts, kernel
               Related Id(s): GH-7308, PR-7352

               Fix the shell to ignore terminal delay when the
               terminal capabilities report that they should be used.


  OTP-18637    Application(s): erts, kernel
               Related Id(s): GH-7324, PR-7359

               Fix "oldshell" to echo characters while typing on
               Windows.


  OTP-18646    Application(s): erts, kernel

               On Windows, a call to the function socket:close, when
               there are waiting active calls to read, write or accept
               functions, could hang.


  OTP-18649    Application(s): erts, kernel
               Related Id(s): GH-7261, PR-7400

               Fix issues when reading or configuring standard_io on
               Windows when erl.exe is started using -noshell flag.


  OTP-18659    Application(s): erts, stdlib
               Related Id(s): PR-7426

               The following functions are now much faster when given
               a long list or binary:

               -- erlang:list_to_integer/1

               -- erlang:binary_to_integer/1

               -- erlang:binary_to_integer/2

               -- erlang:list_to_integer/2

               -- string:to_integer/1


  OTP-18663    Application(s): erts
               Related Id(s): GH-7433, PR-7437

               On AArch64 (ARM64), equality and non-equality tests
               with literal bitstrings could succeed when they should
               fail and vice versa.


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


 ---------------------------------------------------------------------
 --- kernel-9.0.2 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18580    Application(s): kernel, stdlib
               Related Id(s): PR-7242

               Fix bug where when you entered Alt+Enter in the
               terminal, the cursor would move to the last line,
               instead of moving to the next line.


  OTP-18624    Application(s): kernel
               Related Id(s): GH-7296

               Fix so that the shell does not crash on startup when
               termcap is not available.


  OTP-18635    Application(s): erts, kernel
               Related Id(s): #7328

               Multiple socket:accept calls issue. When making
               multiple accept calls, only the last call is active.


  OTP-18636    Application(s): erts, kernel
               Related Id(s): GH-7308, PR-7352

               Fix the shell to ignore terminal delay when the
               terminal capabilities report that they should be used.


  OTP-18637    Application(s): erts, kernel
               Related Id(s): GH-7324, PR-7359

               Fix "oldshell" to echo characters while typing on
               Windows.


  OTP-18640    Application(s): kernel, stdlib
               Related Id(s): GH-6881, GH-7286, GH-7368, PR-7384

               Fix eof handling when reading from stdin when erlang is
               started using -noshell.


  OTP-18646    Application(s): erts, kernel

               On Windows, a call to the function socket:close, when
               there are waiting active calls to read, write or accept
               functions, could hang.


  OTP-18649    Application(s): erts, kernel
               Related Id(s): GH-7261, PR-7400

               Fix issues when reading or configuring standard_io on
               Windows when erl.exe is started using -noshell flag.


  OTP-18650    Application(s): kernel

               gen_udp:connect with inet_backend = socket fails when
               the Address is a hostname (string or atom).


  OTP-18651    Application(s): kernel
               Related Id(s): PR-7242

               Fixed problem which would cause shell to crash if
               particular escape sequence was written to stdout.


  OTP-18652    Application(s): kernel, stdlib
               Related Id(s): PR-7242

               Fixed problem where output would disappear if it was
               received after a prompt was written in the shell.


  OTP-18656    Application(s): kernel
               Related Id(s): GH-7390, PR-7404

               Fix a crash where the location of erts could not be
               found in rebar3 dev builds.


  OTP-18657    Application(s): kernel
               Related Id(s): GH-7230, PR-7384

               Introduce the KERNEL application parameter
               standard_io_encoding that can be used to set the
               default encoding for standard_io. This option needs to
               be set to latin1 if the application wants to treat all
               input data as bytes rather than utf-8 encoded
               characters.


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


 ---------------------------------------------------------------------
 --- ssh-5.0.1 -------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18653    Application(s): ssh
               Related Id(s): PR-7242

               Added multiline editing support to ssh clients
               connected through OTP ssh daemon.


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


 ---------------------------------------------------------------------
 --- ssl-11.0.2 ------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18643    Application(s): ssl
               Related Id(s): ERIERL-932

               Added keylog information to all protocol versions in
               ssl:connection_information/2.


 --- Improvements and New Features ---

  OTP-18618    Application(s): ssl
               Related Id(s): ERIERL-932

               Add RFC-6083 considerations for DTLS to enable gen_sctp
               based callbac...
Read more

OTP 25.3.2.3

29 Jun 10:17
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.3
Git Tag:                 OTP-25.3.2.3
Date:                    2023-06-29
Trouble Report Id:       OTP-18618, OTP-18626, OTP-18635, OTP-18643,
                         OTP-18644, OTP-18650, OTP-18659
Seq num:                 ERIERL-932, GH-7336, GH-7356
System:                  OTP
Release:                 25
Application:             compiler-8.2.6.3, debugger-5.3.1.1,
                         erts-13.2.2.2, kernel-8.5.4.1, ssl-10.9.1.1,
                         stdlib-4.3.1.2
Predecessor:             OTP 25.3.2.2

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

 ---------------------------------------------------------------------
 --- compiler-8.2.6.3 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18626    Application(s): compiler
               Related Id(s): GH-7356

               Fixed a bug that could cause the stack trace of throw
               exceptions to be erroneously optimized out.


 Full runtime dependencies of compiler-8.2.6.3: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-4.0


 ---------------------------------------------------------------------
 --- debugger-5.3.1.1 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18644    Application(s): debugger
               Related Id(s): GH-7336

               The call int:no_break(Module) did not remove any
               breakpoints.


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


 ---------------------------------------------------------------------
 --- erts-13.2.2.2 ---------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-8.5 (first satisfied in OTP 25.1)
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-18635    Application(s): erts, kernel
               Related Id(s): #7328

               Multiple socket:accept calls issue. When making
               multiple accept calls, only the last call is active.


  OTP-18659    Application(s): erts, stdlib
               Related Id(s): PR-7426

               The following functions are now much faster when given
               a long list or binary:

               -- erlang:list_to_integer/1

               -- erlang:binary_to_integer/1

               -- erlang:binary_to_integer/2

               -- erlang:list_to_integer/2

               -- string:to_integer/1


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


 ---------------------------------------------------------------------
 --- kernel-8.5.4.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- erts-13.1.3 (first satisfied in OTP 25.2)
       -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-18635    Application(s): erts, kernel
               Related Id(s): #7328

               Multiple socket:accept calls issue. When making
               multiple accept calls, only the last call is active.


  OTP-18650    Application(s): kernel

               gen_udp:connect with inet_backend = socket fails when
               the Address is a hostname (string or atom).


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


 ---------------------------------------------------------------------
 --- ssl-10.9.1.1 ----------------------------------------------------
 ---------------------------------------------------------------------

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

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


 --- Fixed Bugs and Malfunctions ---

  OTP-18643    Application(s): ssl
               Related Id(s): ERIERL-932

               Added keylog information to all protocol versions in
               ssl:connection_information/2.


 --- Improvements and New Features ---

  OTP-18618    Application(s): ssl
               Related Id(s): ERIERL-932

               Add RFC-6083 considerations for DTLS to enable gen_sctp
               based callback for the transport.


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


 ---------------------------------------------------------------------
 --- stdlib-4.3.1.2 --------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- erts-13.1 (first satisfied in OTP 25.1)
       -- kernel-8.5.1 (first satisfied in OTP 25.1.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-18659    Application(s): erts, stdlib
               Related Id(s): PR-7426

               The following functions are now much faster when given
               a long list or binary:

               -- erlang:list_to_integer/1

               -- erlang:binary_to_integer/1

               -- erlang:binary_to_integer/2

               -- erlang:list_to_integer/2

               -- string:to_integer/1


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


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

OTP 24.3.4.13

29 Jun 11:29
Compare
Choose a tag to compare
Patch Package:           OTP 24.3.4.13
Git Tag:                 OTP-24.3.4.13
Date:                    2023-06-29
Trouble Report Id:       OTP-18617, OTP-18618, OTP-18620, OTP-18643,
                         OTP-18644, OTP-18659
Seq num:                 ERIERL-932, GH-7336, GH-7338
System:                  OTP
Release:                 24
Application:             compiler-8.1.1.5, debugger-5.2.1.1,
                         erts-12.3.2.13, ssh-4.13.2.3, ssl-10.7.3.8,
                         stdlib-3.17.2.4
Predecessor:             OTP 24.3.4.12

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

 ---------------------------------------------------------------------
 --- compiler-8.1.1.5 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18617    Application(s): compiler
               Related Id(s): GH-7338

               The compiler could be very slow when compiling guards
               with multiple guard tests separated with 'or' or ';'.


 Full runtime dependencies of compiler-8.1.1.5: crypto-3.6, erts-11.0,
 kernel-7.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- debugger-5.2.1.1 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18644    Application(s): debugger
               Related Id(s): GH-7336

               The call int:no_break(Module) did not remove any
               breakpoints.


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


 ---------------------------------------------------------------------
 --- erts-12.3.2.13 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-12.3.2.13 application *cannot* be applied
       independently of other applications on an arbitrary OTP 24
       installation.

       On a full OTP 24 installation, also the following runtime
       dependency has to be satisfied:
       -- kernel-8.3 (first satisfied in OTP 24.3)


 --- Fixed Bugs and Malfunctions ---

  OTP-18659    Application(s): erts, stdlib
               Related Id(s): PR-7426

               The following functions are now much faster when given
               a long list or binary:

               -- erlang:list_to_integer/1

               -- erlang:binary_to_integer/1

               -- erlang:binary_to_integer/2

               -- erlang:list_to_integer/2

               -- string:to_integer/1


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


 ---------------------------------------------------------------------
 --- ssh-4.13.2.3 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18620    Application(s): ssh
               Related Id(s): OTP-18386, PR-6611

               With this change, error logging related crashes in
               ssh_connection_handler module are fixed.


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


 ---------------------------------------------------------------------
 --- ssl-10.7.3.8 ----------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 24 installation, also the following runtime
       dependencies have to be satisfied:
       -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
       -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)


 --- Fixed Bugs and Malfunctions ---

  OTP-18643    Application(s): ssl
               Related Id(s): ERIERL-932

               Added keylog information to all protocol versions in
               ssl:connection_information/2.


 --- Improvements and New Features ---

  OTP-18618    Application(s): ssl
               Related Id(s): ERIERL-932

               Add RFC-6083 considerations for DTLS to enable gen_sctp
               based callback for the transport.


 Full runtime dependencies of ssl-10.7.3.8: crypto-5.0, erts-10.0,
 inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
 stdlib-3.17.2.1


 ---------------------------------------------------------------------
 --- stdlib-3.17.2.4 -------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18659    Application(s): erts, stdlib
               Related Id(s): PR-7426

               The following functions are now much faster when given
               a long list or binary:

               -- erlang:list_to_integer/1

               -- erlang:binary_to_integer/1

               -- erlang:binary_to_integer/2

               -- erlang:list_to_integer/2

               -- string:to_integer/1


 Full runtime dependencies of stdlib-3.17.2.4: compiler-5.0,
 crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0


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

OTP 26.0.1

08 Jun 14:56
Compare
Choose a tag to compare
Patch Package:           OTP 26.0.1
Git Tag:                 OTP-26.0.1
Date:                    2023-06-08
Trouble Report Id:       OTP-18576, OTP-18578, OTP-18581, OTP-18583,
                         OTP-18584, OTP-18585, OTP-18587, OTP-18588,
                         OTP-18593, OTP-18595, OTP-18596, OTP-18597,
                         OTP-18600, OTP-18601, OTP-18602, OTP-18603,
                         OTP-18604, OTP-18617, OTP-18619, OTP-18621,
                         OTP-18632
Seq num:                 ERIERL-944, GH-7213, GH-7247, GH-7248,
                         GH-7251, GH-7252, GH-7259, GH-7264, GH-7282,
                         GH-7288, GH-7297, GH-7301, GH-7303, GH-7338,
                         GH-7339
System:                  OTP
Release:                 26
Application:             compiler-8.3.1, erts-14.0.1, inets-9.0.1,
                         kernel-9.0.1, ssl-11.0.1, stdlib-5.0.1,
                         xmerl-1.3.32
Predecessor:             OTP 26.0

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

 ---------------------------------------------------------------------
 --- compiler-8.3.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18576    Application(s): compiler

               Fixed a bug where a failing bsl expression in a guard
               threw an exception instead of causing the guard to
               fail.


  OTP-18581    Application(s): compiler
               Related Id(s): GH-7251

               Fixed a bug that would case the validator to reject
               legal code.


  OTP-18583    Application(s): compiler
               Related Id(s): GH-7259

               The compiler could re-order clauses matching binaries
               so that the incorrect clause would match. That could
               only happen for code that used the option
               {error_location,line} or for code without line or
               column number information (e.g. generated by a parse
               transform).


  OTP-18593    Application(s): compiler
               Related Id(s): GH-7252

               Complex guard expression using the or operator and
               guard BIFs that can fail could sometimes be miscompiled
               so that the guard would succeed even if a call to a
               guard BIF failed.


  OTP-18600    Application(s): compiler
               Related Id(s): GH-7248

               With optimizations disabled, a try/catch construct
               could return an incorrect value.


  OTP-18601    Application(s): compiler

               In rare circumstance, a combination of binary
               construction and binary_part/3 would cause the compiler
               to generate unsafe code that would crash the runtime
               system.


  OTP-18617    Application(s): compiler
               Related Id(s): GH-7338

               The compiler could be very slow when compiling guards
               with multiple guard tests separated with 'or' or ';'.


  OTP-18619    Application(s): compiler
               Related Id(s): GH-7339

               Complex guard expressions using 'or' and map updates
               could succeed even if the map update failed.


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


 ---------------------------------------------------------------------
 --- erts-14.0.1 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18585    Application(s): erts
               Related Id(s): OTP-18029

               Build of the socket nif failed on Solaris 11.


  OTP-18587    Application(s): erts

               Fixed two reduction-counting bugs relating to binaries.


  OTP-18597    Application(s): erts

               Constructing a binary segment not aligned with a byte
               boundary, with a size not fitting in 31 bits, and with
               a value not fitting in a 64-bit word could crash the
               runtime system.


  OTP-18602    Application(s): erts
               Related Id(s): GH-7282

               When a binary construction failed because of bad size
               for a segment, the error information was not always
               correct.


  OTP-18621    Application(s): erts
               Related Id(s): GH-7288

               Fixed a crash when calling a fun that was defined in a
               module that had been upgraded.


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


 ---------------------------------------------------------------------
 --- inets-9.0.1 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18604    Application(s): inets
               Related Id(s): GH-7303, PR-7306

               Do not make the default ssl options by calling
               httpc:ssl_verify_host_options(true) if ssl options are
               supplied by the user.


 Full runtime dependencies of inets-9.0.1: erts-14.0, kernel-9.0,
 mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
 stdlib-5.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- kernel-9.0.1 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18578    Application(s): kernel, stdlib
               Related Id(s): GH-7213

               The POSIX error exdev was sometimes incorrectly
               described as "cross domain link" in some error
               messages.


  OTP-18584    Application(s): kernel
               Related Id(s): #7238

               Corrected the socket send function description (send
               with Timeout = nowait). The send function(s) could not
               return {ok, {RestData, SelectInfo}}


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


 ---------------------------------------------------------------------
 --- ssl-11.0.1 ------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18588    Application(s): ssl
               Related Id(s): GH-7264, PR-7277

               Make sure that selection of client certificates handle
               both TLS-1.3 and TLS-1.2 names correctly. Could cause
               valid client certificate to not be selected, and an
               empty client certificate message to be sent to server.


  OTP-18596    Application(s): ssl
               Related Id(s): GH-7247

               Improved ssl:format_error/1 to handle more error
               tuples.


  OTP-18603    Application(s): ssl
               Related Id(s): GH-7297

               Fixed hanging ssl:connect when ssl application is not
               started.


  OTP-18632    Application(s): ssl
               Related Id(s): GH-7301, PR-7300

               Correct handling of retransmission timers, current
               behavior could cause unwanted delays.


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


 ---------------------------------------------------------------------
 --- stdlib-5.0.1 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18578    Application(s): kernel, stdlib
               Related Id(s): GH-7213

               The POSIX error exdev was sometimes incorrectly
               described as "cross domain link" in some error
               messages.


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


 ---------------------------------------------------------------------
 --- xmerl-1.3.32 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18595    Application(s): xmerl
               Related Id(s): ERIERL-944

               New options to xmerl_scan and xmerl_sax_parser so one
               can limit the behaviour of the parsers to avoid some
               XML security issues.

               xmerl_scan gets one new option:

               -- {allow_entities, Boolean} -- Gives the possibility
               to disallow entities by setting this option to false
               (true is default)

               xmerl_sax_parser gets the following options:

               -- disallow_entities -- Don't allow entities in
             ...
Read more

OTP 23.3.4.19

08 Jun 14:24
Compare
Choose a tag to compare
Patch Package:           OTP 23.3.4.19
Git Tag:                 OTP-23.3.4.19
Date:                    2023-06-08
Trouble Report Id:       OTP-18321, OTP-18325, OTP-18365, OTP-18388,
                         OTP-18421, OTP-18463, OTP-18470, OTP-18525,
                         OTP-18570, OTP-18595
Seq num:                 ERIERL-944, GH-6465, GH-6466, GH-6873
System:                  OTP
Release:                 23
Application:             compiler-7.6.9.3, erts-11.2.2.18,
                         stdlib-3.14.2.3, xmerl-1.3.27.1
Predecessor:             OTP 23.3.4.18

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

 ---------------------------------------------------------------------
 --- compiler-7.6.9.3 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18325    Application(s): compiler, stdlib
               Related Id(s): GH-6465, GH-6466

               It is not allowed to call functions from guards. The
               compiler failed to reject a call in a guard when done
               by constructing a record with a default initialization
               expression that called a function.


  OTP-18365    Application(s): compiler

               Fixed a bug that could cause legal code to fail
               validation.


  OTP-18470    Application(s): compiler
               Related Id(s): GH-6873, PR-6877

               The compiler would generate incorrect code for the
               following type of expression:

               Pattern = BoundVar1 = . . . = BoundVarN = Expression

               An exception should be raised if any of the bound
               variables have different values than Expression. The
               compiler would generate code that would cause the bound
               variables to be bound to the value of Expressionwhether
               the value matched or not.


 Full runtime dependencies of compiler-7.6.9.3: crypto-3.6, erts-11.0,
 hipe-3.12, kernel-7.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- erts-11.2.2.18 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-11.2.2.18 application *cannot* be applied
       independently of other applications on an arbitrary OTP 23
       installation.

       On a full OTP 23 installation, also the following runtime
       dependency has to be satisfied:
       -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)


 --- Fixed Bugs and Malfunctions ---

  OTP-18321    Application(s): erts

               Fix list_to_atom/1 for negative code points. Could
               either return with a positive code point or fail with
               an incorrect exception.


  OTP-18388    Application(s): erts
               Related Id(s): OTP-17462, PR-6662

               A race condition which was very rarely triggered could
               cause the signal queue of a process to become
               inconsistent causing the runtime system to crash.


  OTP-18421    Application(s): erts
               Related Id(s): PR-6806

               process_info(Pid, status) when Pid /= self() could
               return an erroneous result.


  OTP-18463    Application(s): erts
               Related Id(s): PR-6858

               In rare circumstances, when a process exceeded its
               allowed heap size set by option max_heap_size, it would
               not be killed as it should be, but instead enter a kind
               of zombie state it would never get out of.


  OTP-18525    Application(s): erts
               Related Id(s): PR-7049

               Implementations of the call() driver callback that
               returned a faulty encoded result could cause a memory
               leak and could cause invalid data on the heap of the
               processes calling erlang:port_call/3.


  OTP-18570    Application(s): erts
               Related Id(s): PR-7190

               If a runtime system which was starting the distribution
               already had existing pids, ports, or references
               referring to a node with the same nodename/creation
               pair that the runtime system was about to use, these
               already existing pids, ports, or references would not
               work as expected in various situations after the node
               had gone alive. This could only occur if the runtime
               system was communicated such pids, ports, or references
               prior to the distribution was started. That is, it was
               extremely unlikely to happen unless the distribution
               was started dynamically and was even then very unlikely
               to happen. The runtime system now checks for already
               existing pids, ports, and references with the same
               nodename/creation pair that it is about to use. If such
               are found another creation will be chosen in order to
               avoid these issues.


 Full runtime dependencies of erts-11.2.2.18: kernel-7.3.1.5,
 sasl-3.3, stdlib-3.13


 ---------------------------------------------------------------------
 --- stdlib-3.14.2.3 -------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18325    Application(s): compiler, stdlib
               Related Id(s): GH-6465, GH-6466

               It is not allowed to call functions from guards. The
               compiler failed to reject a call in a guard when done
               by constructing a record with a default initialization
               expression that called a function.


 Full runtime dependencies of stdlib-3.14.2.3: compiler-5.0,
 crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0


 ---------------------------------------------------------------------
 --- xmerl-1.3.27.1 --------------------------------------------------
 ---------------------------------------------------------------------

 The xmerl-1.3.27.1 application can be applied independently of other
 applications on a full OTP 23 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18595    Application(s): xmerl
               Related Id(s): ERIERL-944

               New options to xmerl_scan and xmerl_sax_parser so one
               can limit the behaviour of the parsers to avoid some
               XML security issues.

               xmerl_scan gets one new option:

               -- {allow_entities, Boolean} -- Gives the possibility
               to disallow entities by setting this option to false
               (true is default)

               xmerl_sax_parser gets the following options:

               -- disallow_entities -- Don't allow entities in
               document

               -- {entity_recurse_limit, N} -- Set a limit on entity
               recursion depth (default is 3)

               -- {external_entities, AllowedType} -- Specify which
               types of external entities that are allowed, this also
               affect external DTD's. The types are all(default), file
               and none

               -- {fail_undeclared_ref, Boolean} -- Sets the behavior
               for undeclared references due to an external file is
               not parsed (true is default)

               The old option skip_external_dtd is still valid and the
               same as {external_entities, none} and
               {fail_undeclared_ref, false} but just affects DTD's and
               not other external references.


 Full runtime dependencies of xmerl-1.3.27.1: erts-6.0, kernel-3.0,
 stdlib-2.5


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

OTP 25.3.2.2

07 Jun 05:12
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.2
Git Tag:                 OTP-25.3.2.2
Date:                    2023-06-07
Trouble Report Id:       OTP-18617
Seq num:                 GH-7338
System:                  OTP
Release:                 25
Application:             compiler-8.2.6.2
Predecessor:             OTP 25.3.2.1

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

 ---------------------------------------------------------------------
 --- compiler-8.2.6.2 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18617    Application(s): compiler
               Related Id(s): GH-7338

               The compiler could be very slow when compiling guards
               with multiple guard tests separated with 'or' or ';'.


 Full runtime dependencies of compiler-8.2.6.2: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-4.0


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

OTP 25.3.2.1

30 May 14:11
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2.1
Git Tag:                 OTP-25.3.2.1
Date:                    2023-05-30
Trouble Report Id:       OTP-18556, OTP-18561, OTP-18569, OTP-18576,
                         OTP-18593, OTP-18595, OTP-18597
Seq num:                 ERIERL-944, GH-7252
System:                  OTP
Release:                 25
Application:             compiler-8.2.6.1, erts-13.2.2.1,
                         stdlib-4.3.1.1, xmerl-1.3.31.1
Predecessor:             OTP 25.3.2

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

 ---------------------------------------------------------------------
 --- compiler-8.2.6.1 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18576    Application(s): compiler

               Fixed a bug where a failing bsl expression in a guard
               threw an exception instead of causing the guard to
               fail.


  OTP-18593    Application(s): compiler
               Related Id(s): GH-7252

               Complex guard expression using the or operator and
               guard BIFs that can fail could sometimes be miscompiled
               so that the guard would succeed even if a call to a
               guard BIF failed.


 Full runtime dependencies of compiler-8.2.6.1: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-4.0


 ---------------------------------------------------------------------
 --- erts-13.2.2.1 ---------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-8.5 (first satisfied in OTP 25.1)
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-18561    Application(s): erts

               Fixed a crash during tracing on certain platforms that
               cannot use the machine stack for Erlang code (mainly
               OpenBSD and Linux with musl).


  OTP-18597    Application(s): erts

               Constructing a binary segment not aligned with a byte
               boundary, with a size not fitting in 31 bits, and with
               a value not fitting in a 64-bit word could crash the
               runtime system.


 --- Improvements and New Features ---

  OTP-18569    Application(s): erts

               Further robustify implementation of large maps (> 32
               keys). Keys that happen to have same internal 32-bit
               hash values are now put in collision nodes which are
               traversed with linear search. This removes the demand
               for the internal hash function when salted to
               eventually produce different hashes for all possible
               pairs of unequal terms.


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


 ---------------------------------------------------------------------
 --- stdlib-4.3.1.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- erts-13.1 (first satisfied in OTP 25.1)
       -- kernel-8.5.1 (first satisfied in OTP 25.1.1)


 --- Improvements and New Features ---

  OTP-18556    Application(s): stdlib

               Static supervisors are very idle processes after they
               have started so they will now be hibernated after start
               to improve resource management.


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


 ---------------------------------------------------------------------
 --- xmerl-1.3.31.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18595    Application(s): xmerl
               Related Id(s): ERIERL-944

               New options to xmerl_scan and xmerl_sax_parser so one
               can limit the behaviour of the parsers to avoid some
               XML security issues.

               xmerl_scan gets one new option:

               -- {allow_entities, Boolean} -- Gives the possibility
               to disallow entities by setting this option to false
               (true is default)

               xmerl_sax_parser gets the following options:

               -- disallow_entities -- Don't allow entities in
               document

               -- {entity_recurse_limit, N} -- Set a limit on entity
               recursion depth (default is 3)

               -- {external_entities, AllowedType} -- Specify which
               types of external entities that are allowed, this also
               affect external DTD's. The types are all(default), file
               and none

               -- {fail_undeclared_ref, Boolean} -- Sets the behavior
               for undeclared references due to an external file is
               not parsed (true is default)

               The old option skip_external_dtd is still valid and the
               same as {external_entities, none} and
               {fail_undeclared_ref, false} but just affects DTD's and
               not other external references.


 Full runtime dependencies of xmerl-1.3.31.1: erts-6.0, kernel-3.0,
 stdlib-2.5


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

OTP 24.3.4.12

30 May 13:16
Compare
Choose a tag to compare
Patch Package:           OTP 24.3.4.12
Git Tag:                 OTP-24.3.4.12
Date:                    2023-05-30
Trouble Report Id:       OTP-18556, OTP-18560, OTP-18569, OTP-18570,
                         OTP-18593, OTP-18595, OTP-18597
Seq num:                 ERIERL-944, GH-7252
System:                  OTP
Release:                 24
Application:             compiler-8.1.1.4, erts-12.3.2.12,
                         stdlib-3.17.2.3, xmerl-1.3.28.1
Predecessor:             OTP 24.3.4.11

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

 ---------------------------------------------------------------------
 --- compiler-8.1.1.4 ------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18593    Application(s): compiler
               Related Id(s): GH-7252

               Complex guard expression using the or operator and
               guard BIFs that can fail could sometimes be miscompiled
               so that the guard would succeed even if a call to a
               guard BIF failed.


 Full runtime dependencies of compiler-8.1.1.4: crypto-3.6, erts-11.0,
 kernel-7.0, stdlib-3.13


 ---------------------------------------------------------------------
 --- erts-12.3.2.12 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-12.3.2.12 application *cannot* be applied
       independently of other applications on an arbitrary OTP 24
       installation.

       On a full OTP 24 installation, also the following runtime
       dependency has to be satisfied:
       -- kernel-8.3 (first satisfied in OTP 24.3)


 --- Fixed Bugs and Malfunctions ---

  OTP-18560    Application(s): erts

               In rare circumstances, bit syntax matching of an
               invalid code point for a utf32 would crash the runtime
               system.


  OTP-18570    Application(s): erts
               Related Id(s): PR-7190

               If a runtime system which was starting the distribution
               already had existing pids, ports, or references
               referring to a node with the same nodename/creation
               pair that the runtime system was about to use, these
               already existing pids, ports, or references would not
               work as expected in various situations after the node
               had gone alive. This could only occur if the runtime
               system was communicated such pids, ports, or references
               prior to the distribution was started. That is, it was
               extremely unlikely to happen unless the distribution
               was started dynamically and was even then very unlikely
               to happen. The runtime system now checks for already
               existing pids, ports, and references with the same
               nodename/creation pair that it is about to use. If such
               are found another creation will be chosen in order to
               avoid these issues.


  OTP-18597    Application(s): erts

               Constructing a binary segment not aligned with a byte
               boundary, with a size not fitting in 31 bits, and with
               a value not fitting in a 64-bit word could crash the
               runtime system.


 --- Improvements and New Features ---

  OTP-18569    Application(s): erts

               Further robustify implementation of large maps (> 32
               keys). Keys that happen to have same internal 32-bit
               hash values are now put in collision nodes which are
               traversed with linear search. This removes the demand
               for the internal hash function when salted to
               eventually produce different hashes for all possible
               pairs of unequal terms.


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


 ---------------------------------------------------------------------
 --- stdlib-3.17.2.3 -------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-18556    Application(s): stdlib

               Static supervisors are very idle processes after they
               have started so they will now be hibernated after start
               to improve resource management.


 Full runtime dependencies of stdlib-3.17.2.3: compiler-5.0,
 crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0


 ---------------------------------------------------------------------
 --- xmerl-1.3.28.1 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18595    Application(s): xmerl
               Related Id(s): ERIERL-944

               New options to xmerl_scan and xmerl_sax_parser so one
               can limit the behaviour of the parsers to avoid some
               XML security issues.

               xmerl_scan gets one new option:

               -- {allow_entities, Boolean} -- Gives the possibility
               to disallow entities by setting this option to false
               (true is default)

               xmerl_sax_parser gets the following options:

               -- disallow_entities -- Don't allow entities in
               document

               -- {entity_recurse_limit, N} -- Set a limit on entity
               recursion depth (default is 3)

               -- {external_entities, AllowedType} -- Specify which
               types of external entities that are allowed, this also
               affect external DTD's. The types are all(default), file
               and none

               -- {fail_undeclared_ref, Boolean} -- Sets the behavior
               for undeclared references due to an external file is
               not parsed (true is default)

               The old option skip_external_dtd is still valid and the
               same as {external_entities, none} and
               {fail_undeclared_ref, false} but just affects DTD's and
               not other external references.


 Full runtime dependencies of xmerl-1.3.28.1: erts-6.0, kernel-3.0,
 stdlib-2.5


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

OTP 26.0

16 May 08:49
Compare
Choose a tag to compare

Erlang/OTP 26.0 is a new major release with new features, improvements as well as a few incompatibilities.

Below are some of the highlights of the release:

There is also a Blogpost about the highlights.

Highlights

Parsetools

  • Leex has been extended with optional column number support.

Stdlib

  • The family of enumeration functions in module lists has been extended with enumerate/3 that allows a step value to be supplied.
  • Update Unicode to version 15.0.0.
  • proc_lib:start*/* has become synchronous when the started process fails. This requires that a failing process use a new function proc_lib:init_fail/2,3, or exits, to indicate failure. All OTP behaviours have been fixed to do this.

The Shell

There are a lot of new features and improvements in the Erlang shell:

  • auto-complete of variables, record names, record fields names, map keys, function parameter types and filenames.
  • Open external editor in the shell to edit the current expression.
  • defining records (with types), functions, specs and types in the shell.

New terminal

  • The TTY/terminal subsystem has been rewritten. Windows users will notice that erl.exe has the same functionality as a normal Unix shell and that werl.exe is just a symlink to erl.exe. This makes the Windows Erlang terminal experience identical to that of Unix.

Compiler and JIT optimizations:

  • Creation and matching of binaries with segments of fixed sizes have been optimized.

  • Creation and matching of UTF-8 segments have been optimized.

  • Appending to binaries has been optimized.

  • The compiler and JIT now generate better code for creation of small maps where all keys are literals known at compile time.

  • Thanks to the optimizations above the performance of the base64 module has been significantly improved. For example, on an x86_64 system with the JIT both encode and decode are almost three times faster than in Erlang/OTP 25.

Maps

  • Map comprehensions as suggested in EEP 58 has now been implemented.

  • Some map operations have been optimized by changing the internal sort order of atom keys.
    This changes the (undocumented) order of how atom keys in small maps are printed and returned by maps:to_list/1 and maps:next/1. The new order is unpredictable and may change between different invocations of the Erlang VM.

  • Introducing the new function maps:iterator/2 for creating an interator that return the map elements in a deterministic order.
    There are also new modifiers k and K for the format string in io:format() to support printing map elements ordered.

Dialyzer

  • Added the new built-in type dynamic() introduced in EEP 61, PR introducing EEP 61 improving support for gradual type checkers.

  • Dialyzer has a new incremental mode that be invoked by giving the --incremental option when running Dialyzer.
    This new incremental mode is likely to become the default in a future release.

Misc ERTS, Stdlib, Kernel, Compiler

  • Multi time warp mode is now enabled by default.
    This assumes that all code executing on the system is time warp safe.

  • Support for UTF-8 atoms and strings in the NIF
    interface including new functions enif_make_new_atom, enif_make_new_atom_len and enif_get_string_length.

  • The BIFs min/2 and max/2 are now allowed to be used in guards and match specs.

  • Improved the selective receive optimization, which can now be enabled for references returned from other
    functions. This greatly improves the performance of gen_server:send_request/3, gen_server:wait_response/2, and similar functions.

  • New trace feature call_memory. Similar to call_time tracing, but instead of measure accumulated time in traced functions it measures accumulated heap space consumed by traced functions. It can be used to compare how much different functions are contributing to garbage collection being triggered.

  • It is no longer necessary to enable a feature in the runtime system in order to load modules that are using it.
    It is sufficient to enable the feature in the compiler when compiling it.

  • inet:setopts/2 has got 3 new options: reuseport, reuseport_lb and exclusiveaddruse.

  • Fix so that -fno-omit-frame-pointer is applied to all of the Erlang VM when using the JIT so that tools, such as perf, can crawl the process stacks.

  • In the lists module, the zip family of functions now takes options to allow handling lists of different lengths.

  • Added the zip:zip_get_crc32/2 function to retrieve the CRC32 checksum from an opened ZIP archive.
    gen_server optimized by caching callback functions

  • The modules Erlang DNS resolver inet_res and helper modules have been updated for RFC6891; to handle OPT RR with DNSSEC OK (DO) bit.

  • Introduced application:get_supervisor/1.

  • Cache OTP boot code paths, to limit how many folders that are being accessed during a module lookup. Can be disabled with -cache_boot_path false.

SSL

  • Change the client default verify option to verify_peer.
    Note that this makes it mandatory to also supply trusted CA certificates or explicitly set verify to verify_none. This also applies when using the so called anonymous test cipher suites defined in TLS versions pre TLS-1.3.

  • Support for Kernel TLS (kTLS), has been added to the SSL application, for TLS distribution (-proto_dist inet_tls), the SSL option {ktls, true}.

  • Improved error checking and handling of ssl options.

  • Mitigate memory usage from large certificate chains by lowering the maximum handshake size. This should not effect the common cases, if needed it can be configured to a higher value.

  • For security reasons the SHA1 and DSA algorithms are no longer among the default values.

  • Add encoding and decoding of use_srtp hello extension to facilitate for DTLS users to implement SRTP functionality.

For more details about new features and potential incompatibilities see the readme

Many thanks to all contributors!

OTP 25.3.2

05 May 11:05
Compare
Choose a tag to compare
Patch Package:           OTP 25.3.2
Git Tag:                 OTP-25.3.2
Date:                    2023-05-05
Trouble Report Id:       OTP-18559, OTP-18565, OTP-18570
Seq num:                 ERIERL-942, GH-7147
System:                  OTP
Release:                 25
Application:             compiler-8.2.6, erts-13.2.2, os_mon-2.8.2
Predecessor:             OTP 25.3.1

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

 ---------------------------------------------------------------------
 --- compiler-8.2.6 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18565    Application(s): compiler
               Related Id(s): GH-7147

               Fixed type handling bugs that could cause an internal
               error in the compiler for correct code.


 Full runtime dependencies of compiler-8.2.6: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-4.0


 ---------------------------------------------------------------------
 --- erts-13.2.2 -----------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-8.5 (first satisfied in OTP 25.1)
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-18570    Application(s): erts
               Related Id(s): PR-7190

               If a runtime system which was starting the distribution
               already had existing pids, ports, or references
               referring to a node with the same nodename/creation
               pair that the runtime system was about to use, these
               already existing pids, ports, or references would not
               work as expected in various situations after the node
               had gone alive. This could only occur if the runtime
               system was communicated such pids, ports, or references
               prior to the distribution was started. That is, it was
               extremely unlikely to happen unless the distribution
               was started dynamically and was even then very unlikely
               to happen. The runtime system now checks for already
               existing pids, ports, and references with the same
               nodename/creation pair that it is about to use. If such
               are found another creation will be chosen in order to
               avoid these issues.


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


 ---------------------------------------------------------------------
 --- os_mon-2.8.2 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-18559    Application(s): os_mon
               Related Id(s): ERIERL-942

               Avoid error report from failing erlang:port_close at
               shutdown of cpu_sup and memsup. Bug exists since OTP
               25.3 (os_mon-2.8.1).


 Full runtime dependencies of os_mon-2.8.2: erts-6.0, kernel-3.0,
 sasl-2.4, stdlib-3.4


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