Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

erlang-diameter-src-25.2-1.1 RPM for s390x

From OpenSuSE Ports Tumbleweed for s390x

Name: erlang-diameter-src Distribution: openSUSE:Factory:zSystems
Version: 25.2 Vendor: openSUSE
Release: 1.1 Build date: Mon Dec 26 23:35:10 2022
Group: Unspecified Build host: s390zp29
Size: 945440 Source RPM: erlang-25.2-1.1.src.rpm
Packager: https://bugs.opensuse.org
Url: https://www.erlang.org
Summary: Erlang/OTP Diameter application sources
Erlang sources for the Diameter application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.

Provides

Requires

License

Apache-2.0

Changelog

* Sun Dec 18 2022 matwey.kornilov@gmail.com
  - Changes for 25.2:
    * erts: Fix perf/gdb JIT symbols to not contain CodeInfoPrologue
      for the JIT internal module erts_beamasm.
    * erts: Fixed minor memory leaks.
    * erts: Fix bugs in ets:insert and ets:insert_new when called
      with a list of tuples to insert while a concurrent process
      either deletes or renames the table. The table deletion could
      be done with ets:delete/1 or be caused by termination of the
      table owning process. Symptoms are either VM crash or strange
      incorrect behavior from the insert operation. The risk of
      triggering the bugs increases with the length of the list of
      tuple to insert. Bugs exist since OTP 23.0.
    * erts: Boost execution of scheduled thread progress jobs. This
      to prevent memory exhaustion in extremely rapid
      allocation/deallocation scenarios, such as repeated ETS table
      creations/deletions.
    * erts: Fix segv crash during crash dumping an ETS table doing
      ets:delete_all_objects.
    * erts: Spec for function net:if_names/0 incorrect
    * erts: Fix bug in binary_to_term decoding a binary term 2Gbyte
      or larger.
    * erts: Documentation of erlang:module_loaded/1 has been
      adjusted:
    * erts: Fix list_to_atom/1 for negative code points. Could either
      return with a positive code point or fail with an incorrect
      exception.
    * erts: Fix rare bug causing VM crash when sending to a pid of a
      spawning process returned from erlang:processes/0. Only seen
      when provoked by system process literal_area_collector,
      triggered by a module purge operation, on a VM started with
      +Meamin (no customized allocators).
    * erts: gen_udp:open/2 with option(s) add_membership or
      drop_membership would drop earlier options.
    * erts: The inet:setopts/2 {reuseaddr, true} option will now be
      ignored on Windows unless the socket is an UDP socket. For more
      information see the documentation of the reuseaddr option part
      of the documentation of inet:setopts/2. Prior to OTP 25 the
      {reuseaddr, true} option was ignored for all sockets on
      Windows, but as of OTP 25.0 this was changed so that it was not
      ignored for any sockets. *** POTENTIAL INCOMPATIBILITY ***
    * erts: Fix bug in binary_to_term decoding a list of length 1G or
      longer.
    * erts: Fix bug in binary_to_term (and distributed receive) when
      decoding a large map (>32 keys) with unsorted small maps (<=
      32) as keys of the large map. This was only a problem if the
      term was encoded by erl_interface, jinterface or otherwise, as
      the VM itself always encodes small maps with sorted keys. The
      "binary_to_term" would appear as successful but the created
      large map was internally inconsistent. The smaller key-maps
      could not be found with maps:get and friends. Other operations
      such as map compare and merge could probably also give
      incorrect results.
    * erts: Fix Windows bug in open_port({spawn, Command}, ..) when
      Command is found via the OS search PATH and that directory path
      contains white spaces. The port program would start but the
      command line arguments to it could be incorrect.
    * ftp: fix unexpected result ok when calling ftp:nlist repeatedly
    * inets: This change allows body requests to httpc:request/5 be
      an iolist()
    * inets: addition of type specs in httpc.erl
    * inets: httpc: Add support for HTTP 308 status code
    * dialyzer: Dialyzer would crash when attempting to analyze a bit
      syntax segment size having an literal non-integer size such as
      [].
    * dialyzer: Dialyzer could crash when trying to analyze a
      convoluted nested expression involving funs,
    * kernel: Fixed shutdown crash in gen_tcp socket backend, when
      the other end closed the socket.
    * kernel: erl_tar can now read gzip-compressed tar files that are
      padded. There is a new option compressed_one for file:open/2
      that will read a single member from a gzip file,
    * kernel: Fix os:cmd to not translate all exceptions thrown to
      badarg. For example emfile from erlang:open_port was translated
      to badarg. This bug has existed since Erlang/OTP 24.
    * kernel: Spec for function net:if_names/0 incorrect
    * kernel: Missing ctrl option name transation for TOS and TTL (on
      FreeBSD) when using gen_udp with the 'socket' inet_backend.
    * kernel: gen_udp:open/2 with option(s) add_membership or
      drop_membership would drop earlier options.
    * kernel: The inet:setopts/2 {reuseaddr, true} option will now be
      ignored on Windows unless the socket is an UDP socket. For more
      information see the documentation of the reuseaddr option part
      of the documentation of inet:setopts/2. Prior to OTP 25 the
      {reuseaddr, true} option was ignored for all sockets on
      Windows, but as of OTP 25.0 this was changed so that it was not
      ignored for any sockets. *** POTENTIAL INCOMPATIBILITY ***
    * kernel: The distribution socket option handling in
      inet_tcp_dist has been cleaned up to clarify which were
      mandatory and which just had default values.
    * kernel: Improve warning message format for gen_tcp_socket.
    * snmp: Explicitly close the socket(s) when terminating
      (default-) net-if process.
    * stdlib: erl_tar can now read gzip-compressed tar files that are
      padded. There is a new option compressed_one for file:open/2
      that will read a single member from a gzip file,
    * stdlib: A concurrent call to ets:rename could cause
      ets:delete_all_objects to fail halfway through with badarg.
    * stdlib: 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.
    * stdlib: The compiler could crash when using a record with
      complex field initialization expression as a filter in a list
      comprehension.
    * stdlib: unicode:characters_to_binary() could build
      unnecessarily large call stack.
    * stdlib: Improve error message for ets:new/2 name clash. Say
      "name already exists" instead of less specific "invalid
      options".
    * mnesia: Fixed crash which could happen during startup if too
      many decisions where sent from remote nodes.
    * os_mon: The disk_space_check_interval configuration parameter
      of disksup can now be set to values smaller than a minute.
    * ssh: graceful shutdown of ssh_conection_handler when connection
      is closed by peer
    * common_test: Fix starting of peer nodes on old releases when
      the compile server was active and the current Erlang
      installation contained non-latin1 characters in its path.
    * public_key: Disregard LDAP URIs when HTTP URIs are expected.
    * ssl: With this change, tls_sender process is hibernated after
      sufficient inactivity.
    * ssl: Correct handling of legacy schemes so that ECDSA certs
      using sha1 may be used for some TLS-1.3 configurations.
    * ssl: With this change, tls_sender does not cause logger crash
      upon key update.
    * ssl: Enhance warning message
    * ssl: Provide server option to make certificate_authorities
      extension in the TLS-1.3 servers certificate request optional.
      This will allow clients to send incomplete chains that may be
      reconstructable and thereby verifiable by the server, but that
      would not adhere to the certificate_authorities extension.
    * ssl: If the verify_fun handles four arguments the DER cert will
      be supplied as one of the arguments.
    * megaco: A very minor improvement to the measurement tool.
    * observer: A WX event race could causes a crash in when handling
      socket or port info.
    * observer: Improve the nodes menu to include more nodes.
    * compiler: Line number in compiler messages would be truncated
      to 4 digits for line numbers greater than 9999.
    * compiler: In rare circumstance, matching a binary as part of a
      receive clause could cause the compiler to terminate because of
      an internal consistency check failure.
    * compiler: Compiling a function with complex bit syntax matching
      such as f(<<X:0, _:X>>, <<Y:0, _:Y>>) -> ok. could crash the
      compiler.
    * compiler: 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.
    * compiler: The compiler could crash when using a record with
      complex field initialization expression as a filter in a list
      comprehension.
    * wx: Added environment variable WX_MACOS_NON_GUI_APP to allow
      user to override OSXIsGUIApplication behavior.
* Thu Nov 24 2022 matwey.kornilov@gmail.com
  - Changes for 25.1.2:
    * mnesia: Don't fill the logs if mnesia can't connect to all
      nodes, due to partitioned network.
    * erts: Add abandon carrier free utilization limit (+Muacful)
      option to erts_alloc. This option allows the user to mark
      unused segments in a memory carrier as re-useable by the OS if
      needed. This functionality was a non-configurable default
      before Erlang/OTP 25, but removed due to performance issues.
* Thu Oct 13 2022 opensuse-packaging@opensuse.org
  - Changes for 25.1.1:
    * dialyzer: Dialyzer could crash when analyzing Elixir code that
      used intricate macros.
    * dialyzer: The --input_list_file option has been added.
    * ssl: Fixes handling of symlinks in cacertfile option.
    * eunit: With this change, eunit exact_execution option works
      with application primitive.
    * stdlib: peer nodes failed to halt when the process supervising
      the control connection crashed. When an alternative control
      connection was used, this supervision process also quite
      frequently crashed when the peer node was stopped by the node
      that started it which caused the peer node to linger without
      ever halting.
    * asn1: For the per and uper ASN.1 encoding rules, encoding and
      decoding the SEQUENCE OF and SET OF constructs with 16384 items
      or more is now supported.
    * erts: Listen sockets created with the socket module, leaked
      (erlang-) monitors.
    * erts: Notifications about available distribution data sent to
      distribution controller processes could be lost. Distribution
      controller processes can be used when implementing an
      alternative distribution carrier. The default distribution over
      tcp was not effected and the bug was also not present on
      x86/x86_64 platforms.
    * kernel: Listen sockets created with the socket module, leaked
      (erlang-) monitors.
    * kernel: peer nodes failed to halt when the process supervising
      the control connection crashed. When an alternative control
      connection was used, this supervision process also quite
      frequently crashed when the peer node was stopped by the node
      that started it which caused the peer node to linger without
      ever halting.
  - Changes for 25.1:
    * dialyzer: Two bugs have been fixed in Dialyzer's checking of
      behaviors: When a mandatory callback function is present but
      not exported, Dialyzer would not complain about a missing
      callback. When an optional callback function was not exported
      and had incompatible arguments and/or the return values were
      incompatible, Dialyzer would complain. This has been changed to
      suppress the warning, because the function might not be
      intended to be a callback function, for instance if a release
      added a new optional callback function (such as format_status/1
      for the gen_server behaviour added in OTP 25).
    * dialyzer: The no_extra_return and no_missing_return warnings
      can now be suppressed through -dialyzer directives in source
      code.
    * jinterface: Fix javadoc build error by adding option -encoding
      UTF-8.
    * diameter: There is a new configure option, --enable-
      deterministic-build, which will apply the deterministic
      compiler option when building Erlang/OTP. The deterministic
      option has been improved to eliminate more sources of non-
      determinism in several applications.
    * crypto: Fix configure with --with-ssl and --disable-dynamic-
      ssl-lib on Windows.
    * crypto: Remove all references correctly in the garbage
      collection if an engine handle was not explicit unloaded.
    * crypto: Changed the behaviour of the engine load/unload
      functions The engine load/unload functions have got changed
      semantics to get a more consistent behaviour and work correct
      when variables are garbage collected. The load functions now
      don't register the methods for the engine to replace. That will
      now be handled with the new functions
      engine_register/engine_unregister if needed. Some functions are
      removed from the documentation and therefor the API, but they
      are left in the code for compatibility. *** POTENTIAL
      INCOMPATIBILITY ***
    * crypto: Fixed a naming bug for AES-CFB and Blowfish-CFB/OFB
      when linked with OpenSSL 3.0 cryptolib.
    * crypto: Sign/verify does now behave as in OTP-24 and earlier
      for eddsa.
    * crypto: Pass elliptic curve names from crypto.erl to crypto's
      nif.
    * crypto: The configure option --disable-deprecated-warnings is
      removed. It was used for some releases when the support for
      OpenSSL 3.0 was not completed. It is not needed in OTP 25.
    * crypto: Crypto is now considered to be usable with the OpenSSL
      3.0 cryptolib for production code. ENGINE and FIPS are not yet
      fully functional.
    * crypto: Do not exit if the legacy provider is missing in
      libcrypto 3.0.
    * ssl: Reject unexpected application data in all relevant places
      for all TLS versions. Also, handle TLS-1.3 middlebox
      compatibility with more care. This will make malicious
      connections fail early and further, mitigate possible DoS
      attacks, that would be caught by the handshake timeout. Thanks
      to Aina Toky Rasoamanana and Olivier Levillain from Télécom
      SudParis for alerting us of the issues in our implementation.
    * ssl: With this change, value of cacertfile option will be
      adjusted before loading certs from the file. Adjustments
      include converting relative paths to absolute and converting
      symlinks to actual file path. Thanks to Marcus Johansson
    * ssl: In TLS-1.3, if chain certs are missing (so server auth
      domain adherence can not be determined) send peer cert and hope
      the server is able to recreate a chain in its auth domain.
    * ssl: Make sure periodical refresh of CA certificate files
      repopulates cache properly.
    * ssl: Correct internal CRL cache functions to use internal
      format consistently.
    * ssl: Incorrect handling of client middlebox negotiation for
      TLS-1.3 could result in that a TLS-1.3 server would not use
      middlebox mode although the client was expecting it too and
      failing the negotiation with unexpected message.
    * ssl: If the "User" process, the process starting the TLS
      connection, gets killed in the middle of spawning the dynamic
      connection tree make sure we do not leave any processes behind.
    * ssl: A vulnerability has been discovered and corrected. It is
      registered as CVE-2022-37026 "Client Authentication Bypass".
      Corrections have been released on the supported tracks with
      patches 23.3.4.15, 24.3.4.2, and 25.0.2. The vulnerability
      might also exist in older OTP versions. We recommend that
      impacted users upgrade to one of these versions or later on the
      respective tracks. OTP 25.1 would be an even better choice.
      Impacted are those who are running an ssl/tls/dtls server using
      the ssl application either directly or indirectly via other
      applications. For example via inets (httpd), cowboy, etc. Note
      that the vulnerability only affects servers that request client
      certification, that is sets the option {verify, verify_peer}.
    * eunit: With this change, Eunit can optionally not try to
      execute related module with "_tests" suffix. This might be used
      for avoiding duplicated executions when source and test modules
      are located in the same folder.
    * erl_docgen: Update DTD to allow XML tag em under pre.
    * inets: Add httpc:ssl_verify_host_options/1 to help setting
      default ssl options for the https client.
    * inets: This change fixes dialyzer warnings generated for
      inets/httpd examples (includes needed adjustment of spec for
      ssh_sftp module).
    * inets: Remove documentation of no longer supported callback.
    * stdlib: Fixed inconsistency bugs in global due to
      nodeup/nodedown messages not being delivered before/after
      traffic over connections. Also fixed various other
      inconsistency bugs and deadlocks in both global_group and
      global. As building blocks for these fixes, a new BIF
      erlang:nodes/2 has been introduced and
      net_kernel:monitor_nodes/2 has been extended. The -hidden and
    - connect_all command line arguments did not work if multiple
      instances were present on the command line which has been
      fixed. The new kernel parameter connect_all has also been
      introduced in order to replace the -connect_all command line
      argument.
    * stdlib: Fix the public_key:ssh* functions to be listed under
      the correct release in the Removed Functionality User's Guide.
    * stdlib: The type spec for format_status/1 in gen_statem,
      gen_server and gen_event has been corrected to state that the
      return value is of the same type as the argument (instead of
      the same value as the argument).
    * stdlib: If the timer server child spec was already present in
      kernel_sup but it was not started, the timer server would fail
      to start with an {error, already_present} error instead of
      restarting the server.
    * stdlib: When changing callback module in gen_statem the
      state_enter calls flag from the old module was used in for the
      first event in the new module, which could confuse the new
      module and cause malfunction. This bug has been corrected. With
      this change some sys debug message formats have been modified,
      which can be a problem for debug code relying on the format.
    * ** POTENTIAL INCOMPATIBILITY ***
    * stdlib: There is a new configure option, --enable-
      deterministic-build, which will apply the deterministic
      compiler option when building Erlang/OTP. The deterministic
      option has been improved to eliminate more sources of non-
      determinism in several applications.
    * stdlib: The rfc339_to_system_time/1,2 functions now allows the
      minutes part to be omitted from the time zone.
    * stdlib: The receive statement in gen_event has been optimized
      to not use selective receive (which was never needed, and could
      cause severe performance degradation under heavy load).
    * stdlib: Add new API function erl_features:configurable/0
    * parsetools: There is a new configure option, --enable-
      deterministic-build, which will apply the deterministic
      compiler option when building Erlang/OTP. The deterministic
      option has been improved to eliminate more sources of non-
      determinism in several applications.
    * public_key: Support more Linux distributions in cacerts_load/0.
    * public_key: Correct asn1 typenames available in type
      pki_asn1_type()
    * public_key: Sign/verify does now behave as in OTP-24 and
      earlier for eddsa.
    * snmp: Improved the get-bulk response max size calculation. Its
      now possible to configure 'empty pdu size', see appendix c for
      more info.
    * snmp: Fix various example dialyzer issues
    * ssh: Handling rare race condition at channel close.
    * ssh: New ssh option no_auth_needed to skip the ssh
      authentication. Use with caution!
    * ssh: This change fixes dialyzer warnings generated for
      inets/httpd examples (includes needed adjustment of spec for
      ssh_sftp module).
    * ssh: The new function ssh:daemon_replace_options/2 makes it
      possible to change the Options in a running SSH server.
      Established connections are not affected, only those created
      after the call to this new function.
    * ssh: Add a timeout as option max_initial_idle_time. It closes a
      connection that does not allocate a channel within the timeout
      time. For more information about timeouts, see the Timeouts
      section in the User's Guide Hardening chapter.
    * observer: Fixed units in gui.
    * xmerl: There is a new configure option, --enable-deterministic-
      build, which will apply the deterministic compiler option when
      building Erlang/OTP. The deterministic option has been improved
      to eliminate more sources of non-determinism in several
      applications.
    * asn1: There is a new configure option, --enable-deterministic-
      build, which will apply the deterministic compiler option when
      building Erlang/OTP. The deterministic option has been improved
      to eliminate more sources of non-determinism in several
      applications.
    * erts: Fixed inconsistency bugs in global due to nodeup/nodedown
      messages not being delivered before/after traffic over
      connections. Also fixed various other inconsistency bugs and
      deadlocks in both global_group and global. As building blocks
      for these fixes, a new BIF erlang:nodes/2 has been introduced
      and net_kernel:monitor_nodes/2 has been extended. The -hidden
      and -connect_all command line arguments did not work if
      multiple instances were present on the command line which has
      been fixed. The new kernel parameter connect_all has also been
      introduced in order to replace the -connect_all command line
      argument.
    * erts: Fixed IPv6 multicast_if and membership socket options.
    * erts: Accept funs (NEW_FUN_EXT) with incorrectly encoded size
      field. This is a workaround for a bug (OTP-18104) existing in
      OTP 23 and 24 that could cause incorrect size fields in certain
      cases. The emulator does not use the decoded size field, but
      erl_interface still does and is not helped by this workaround.
    * erts: Fixed issue with inet:getifaddrs hanging on pure IPv6
      Windows
    * erts: Fix faulty distribution encoding of terms with either The
      symptom could be failed decoding on the receiving side leading
      to aborted connection. Fix OTP-18093 is a workaround for theses
      bugs that makes the VM accepts such faulty encoded funs. The
      first encoding bug toward pending connection exists only in OTP
      23 and 24, but the second one exists also on OTP 25.
    * erts: Fixed emulator crash that could happen during crashdump
      generation of ETS tables with options ordered_set and
      {write_concurrency,true}.
    * erts: Retrieval of monotonic and system clock resolution on
      MacOS could cause a crash and/or erroneous results.
    * erts: Fix bug where the max allowed size of erl +hmax was lower
      than what was allowed by process_flag.
    * erts: On computers with ARM64 (AArch64) processors, the JIT
      could generate incorrect code when more than 4095 bits were
      skipped at the tail end of a binary match.
    * erts: In rare circumstances, an is_binary/1 guard test could
      succeed when given a large integer.
    * erts: Fix bug causing ets:info (and sometimes ets:whereis) to
      return 'undefined' for an existing table if a concurrent
      process were doing ets:insert with a long list on the same
      table.
    * erts: Fix writing and reading of more than 2 GB in a single
      read/write operation on macOS. Before this fix attempting to
      read/write more than 2GB would result in {error,einval}.
    * erts: Fix bug sometimes causing emulator crash at node shutdown
      when there are pending connections. Only seen when running duel
      distribution protocols, inet_drv and inet_tls_dist.
    * erts: Yield when adjusting large process message queues due to
      The message queue adjustment work will now be interleaved with
      all other types of work that processes have to do, even other
      message queue adjustment work.
    * erts: Add rudimentary debug feature (option) for the inet-
      driver based sockets, such as gen_tcp and gen_udp.
    * erts: Introduced the hidden and dist_listen options to
      net_kernel:start/2. Also documented the -dist_listen command
      line argument which was erroneously documented as a kernel
      parameter and not as a command line argument.
    * erts: New documentation chapter "Debugging NIFs and Port
      Drivers" under Interoperability Tutorial.
    * erts: Add new API function erl_features:configurable/0
    * kernel: Fixed inconsistency bugs in global due to
      nodeup/nodedown messages not being delivered before/after
      traffic over connections. Also fixed various other
      inconsistency bugs and deadlocks in both global_group and
      global. As building blocks for these fixes, a new BIF
      erlang:nodes/2 has been introduced and
      net_kernel:monitor_nodes/2 has been extended. The -hidden and
    - connect_all command line arguments did not work if multiple
      instances were present on the command line which has been
      fixed. The new kernel parameter connect_all has also been
      introduced in order to replace the -connect_all command line
      argument.
    * kernel: Fixed IPv6 multicast_if and membership socket options.
    * kernel: Fixed issue with inet:getifaddrs hanging on pure IPv6
      Windows
    * kernel: The type specifications for inet:getopts/2 and
      inet:setopts/2 have been corrected regarding SCTP options.
    * kernel: The type specifications for inet:parse_* have been
      tightened.
    * kernel: Fix gen_tcp:connect/3 spec to include the inet_backend
      option.
    * kernel: Fix bug where using a binary as the format when calling
      logger:log(Level, Format, Args) (or any other logging function)
      would cause a crash or incorrect logging.
    * kernel: Add rudimentary debug feature (option) for the inet-
      driver based sockets, such as gen_tcp and gen_udp.
    * kernel: Introduced the hidden and dist_listen options to
      net_kernel:start/2. Also documented the -dist_listen command
      line argument which was erroneously documented as a kernel
      parameter and not as a command line argument.
    * kernel: Scope and group monitoring have been introduced in pg.
      For more information see the documentation of
      pg:monitor_scope(), pg:monitor(), and pg:demonitor().
    * kernel: A new function global:disconnect/0 has been introduced
      with which one can cleanly disconnect a node from all other
      nodes in a cluster of global nodes.
    * compiler: The compiler will now forbid using the empty atom ''
      as module name. Also forbidden are modules names containing
      control characters, and module names containing only spaces and
      soft hyphens.
    * compiler: The bin_opt_info and recv_opt_info options would
      cause the compiler to crash when attempting to compile
      generated code without location information.
    * compiler: In rare circumstances involving floating point
      operations, the compiler could terminate with an internal
      consistency check failure.
    * compiler: In rare circumstances when doing arithmetic
      instructions on non-numbers, the compiler could crash.
    * compiler: In rare circumstances, complex boolean expressions in
      nested cases could cause the compiler to crash.
    * compiler: Expression similar to #{assoc:=V} = #key=>self()}, V
      would return the empty map instead of raising an exception.
    * compiler: Eliminated a crash in the beam_ssa_bool pass of the
      compiler when compiling a complex guard expression.
    * compiler: In rare circumstances, the compiler could crash with
      an internal consistency check failure.
    * compiler: When compiling with the option inline_list_funcs, the
      compiler could produce a nonsensical warning.
    * compiler: When given the no_ssa_opt option, the compiler could
      terminate with an internal consistency failure diagnostic when
      compiling map matching.
    * compiler: Made warnings for existing atoms being keywords in
      experimental features more precise, by not warning about quoted
      atoms.
    * compiler: There is a new configure option, --enable-
      deterministic-build, which will apply the deterministic
      compiler option when building Erlang/OTP. The deterministic
      option has been improved to eliminate more sources of non-
      determinism in several applications.
    * megaco: Fixed various dialyzer related issues in the examples
      and the application proper.
    * megaco: There is a new configure option, --enable-
      deterministic-build, which will apply the deterministic
      compiler option when building Erlang/OTP. The deterministic
      option has been improved to eliminate more sources of non-
      determinism in several applications.
    * common_test: Fix cth_surefire to handle when a suite is not
      compiled with debug_info. This bug has been present since
      Erlang/OTP 25.0.
    * common_test: Common Test now preserves stack traces for throws.
* Sat Aug 27 2022 matwey.kornilov@gmail.com
  - Changes for 25.0.4:
    * kernel: A call to net_kernel:setopts(new, Opts) at the same
      time as a connection was being set up could cause a deadlock
      between the net_kernel process and the process setting up the
      connection.
    * erts: The monitor/3 BIF did not apply options to the created
      monitor if the target process or port did not exist. That is,
      the corresponding down message would get a `DOWN` tag even if a
      custom tag had been set, and the returned reference was not an
      alias even if the alias option had been passed.
    * erts: The erlang:monotonic_time/1, erlang:system_time/1,
      erlang:time_offset/1, and os:system_time/1 BIFs erroneously
      failed when passed the argument native.
* Tue Aug 09 2022 matwey.kornilov@gmail.com
  - Changes for 25.0.3:
    * erts: Distributed exit signals could be lost under the
      following conditions:
    * erts: A race could cause process_info(Pid, message_queue_len)
      on other processes to return invalid results.
    * erts: Fixed reduction counting for handling process system
      tasks.
    * erts: Priority elevation of terminating processes did not work
      which could cause execution of such processes to be delayed.
    * erts: An unlink operation made by a process that terminated
      before the unlink operation completed, i.e., before it had
      received an unlink-ack signal from the linked process, caused
      an exit signal to erroneously be sent from the terminating
      process to the process being unlinked. This exit signal would
      most often be ignored by the receiver, but if the receiver of
      the exit signal concurrently set up a new link, it could
      receive the exit signal with the actual exit reason of the
      terminating process instead of a noproc exit reason. It is
      however very hard to detect that this has happened and has no
      obvious negative consequences, so it should be considered
      harmless. A distributed unlink-ack signal received by a
      terminating process was also not properly removed which could
      cause a minor memory leak.
    * ssl: The link to crypto:engine_load refered the function with
      wrong arity.
* Sun Jul 03 2022 matwey.kornilov@gmail.com
  - Changes for 25.0.2:
    * ssl: Improved handling of unexpected messages during the
      handshake, taking the right action for unexpected messages.
    * erts: On computers with the ARM64 (AArch64) architecture (such
      as Apple Silicon Macs) a rem expression followed by a div
      expression with the same operands could evaluate to the wrong
      result if the result of the rem expression was unused.
  - Changes for 25.0.1:
    * ssl: When a TLS-1.3 enabled client tried to talk to a TLS-1.2
      server that coalesces TLS-1.2 handshake message over one TLS
      record, the connection could fail due to some message being
      handled in the wrong state, this has been fixed.
    * ssl: Correctly handles supported protocol version change from
      default to something else by sni_fun supplied to
      ssl:handshake/[2,3] together with a TCP-socket (so called
      upgrade).
    * ssl: Also, TLS-1.3 should respond with a protocol version alert
      if previous versions, that are supported but not configured,
      are attempted.
    * kernel: The DNS resolver inet_res has been fixed to ignore
      trailing dot difference in the request domain between the sent
      request and the received response, when validating a response.
    * kernel: A bug in inet_res has been fixed where a missing
      internal {ok,_} wrapper caused inet_res:resolve/* to return a
      calculated host name instead of an `{ok,Msg} tuple, when
      resolving an IP address or a host name that is an IP address
      string.
    * kernel: The erlang:is_alive() BIF could return true before
      configured distribution service was available. This bug was
      introduced in OTP 25.0 ERTS version 13.0. The
      erlang:monitor_node() and erlang:monitor() BIFs could
      erroneously fail even though configured distribution service
      was available. This occurred if these BIFs were called after
      the distribution had been started using dynamic node name
      assignment but before the name had been assigned.
    * kernel: Added the missing mandatory address/0 callback in the
      gen_tcp_dist example.
    * erts: A spawn_reply signal from a remote node could be delayed
      and be delivered after other signals from the newly spawned
      process. When this bug triggered, the connection to the node
      where the process was spawned sometimes could be taken down due
      to the bug. The following error message would then be logged if
      this happened: Missing 'spawn_reply' signal from the node
      <RemoteNode> detected by <Pid> on the node <LocalNode>. The
      node <RemoteNode> probably suffers from the bug with ticket id
      OTP-17737. This bug only affected processes which had enabled
      off_heap message_queue_data and parallel reception of signals
      had been automatically enabled. This bug was introduced in OTP
      25.0, ERTS version 13.0.
    * erts: Fixed type spec of erlang:system_info(dist_ctrl).
    * erts: The zlib built in to the runtime system has been updated
      to version 1.2.12. (Note that on most platforms, the platform's
      own zlib is used.)
    * erts: The erlang:is_alive() BIF could return true before
      configured distribution service was available. This bug was
      introduced in OTP 25.0 ERTS version 13.0. The
      erlang:monitor_node() and erlang:monitor() BIFs could
      erroneously fail even though configured distribution service
      was available. This occurred if these BIFs were called after
      the distribution had been started using dynamic node name
      assignment but before the name had been assigned.
    * crypto: Note in the documentation that MODP (rfc3526) groups
      and OpenSSL 3.0 can give an error if a call to
      crypto:generate_key/2 specifies a key length, and that length
      is to small.
    * crypto: The cmac now uses only the 3.0 API
    * crypto: Documentation is now updated with which OpenSSL
      cryptolib versions that OTP currently is tested.
    * dialyzer: Fixed the documentation for the missing_return and
      extra_return options.
    * mnesia: Fixed add_table_copy which could leave a table lock if
      the receiving node went down during the operation.
    * ssh: Binaries can be limited in logs with the parameter
      max_log_item_len. The default value is 500 bytes.
    * stdlib: In the initial release of Erlang/OTP 25, the expression
      bound to the _ pseudo-field in a record initialization would
      always be evaluated once, even if all other fields in the
      record were explicitly initialized. That would break the use
      case of binding the expression error(...) to _ in order to get
      an exception if not all fields were initialized. The behavior
      of binding to _ has been reverted to the pre-OTP 25 behavior,
      that is, to not evaluate the expression if all fields have been
      bound to explicit values.
* Sun May 22 2022 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Version 25.0:
    - stdlib
    * New function filelib:ensure_path/1 will ensure that all
      directories for the given path exists
    * New functions groups_from_list/2 and groups_from_list/3 in
      the maps module
    * New functions uniq/1 uniq/2 in the lists module
    * New PRNG added to the rand module, for fast pseudo-random
      numers.
    - compiler, kernel, stdlib, syntax_tools:
    * Added support for selectable features as described in EEP-60.
      Features can be enabled/disabled during compilation with
      options (ordinary and +term) to erlc as well as with
      directives in the file. Similar options can be used to erl
      for enabling/disabling features allowed at runtime. The new
      maybe expression EEP-49 is fully supported as the feature
      maybe_expr.
    - erts & JIT:
    * The JIT now works for 64-bit ARM processors.
    * The JIT now does type-based optimizations based on type
      information in the BEAM files.
    * Improved the JIT’s support for external tools like perf and
      gdb, allowing them to show line numbers and even the original
      Erlang source code when that can be found.
    - erts, stdlib, kernel:
    * Users can now configure ETS tables with the
      {write_concurrency, auto} option. This option forces tables
      to automatically change the number of locks that are used at
      run-time depending on how much concurrency is detected. The
      {decentralized_counters, true} option is enabled by default
      when {write_concurrency, auto} is active.
    * Benchmark results comparing this option with the other ETS
      optimization options are available here: benchmarks.
    * To enable more optimizations, BEAM files compiled with OTP 21
      and earlier cannot be loaded in OTP 25.
    * The signal queue of a process with the process flag
      message_queue_data=off_heap has been optimized to allow
      parallel reception of signals from multiple processes. This
      can improve performance when many processes are sending in
      parallel to one process. See benchmark.
    * The Erlang installation directory is now relocatable on the
      file system given that the paths in the installation’s
      RELEASES file are paths that are relative to the
      installations root directory.
    * A new option called short has been added to the functions
      erlang:float_to_list/2 and erlang:float_to_binary/2. This
      option creates the shortest correctly rounded string
      representation of the given float that can be converted back
      to the same float again.
    * Introduction of quote/1 and unquote/1 functions in the
      uri_string module - a replacement for the deprecated
      functions http_uri:encode and http_uri:decode.
    * The new module peer supersedes the slave module. The slave
      module is now deprecated and will be removed in OTP 27.
    * global will now by default prevent overlapping partitions due
      to network issues. This is done by actively disconnecting
      from nodes that reports that they have lost connections to
      other nodes. This will cause fully connected partitions to
      form instead of leaving the network in a state with
      overlapping partitions.
    * It is possible to turn off the new behavior by setting the
      the kernel configuration parameter
      prevent_overlapping_partitions to false. Doing this will
      retain the same behavior as in OTP 24 and earlier.
    * The format_status/2 callback for gen_server, gen_statem and
      gen_event has been deprecated in favor of the new
      format_status/1 callback.
    * The new callback adds the possibility to limit and change
      many more things than the just the state.
    * The timer module has been modernized and made more efficient,
      which makes the timer server less susceptible to being
      overloaded. The timer:sleep/1 function now accepts an
      arbitrarily large integer.
    - compiler:
    * The maybe ... end construction as proposed in EEP-49 has been
      implemented. It can simplify complex code where otherwise
      deeply nested cases would have to be used.
    * To enable maybe, give the option {enable_feature,maybe_expr}
      to the compiler. The exact option to use will change in a
      coming release candidate and then it will also be possible to
      use from inside the module being compiled.
    * When a record matching or record update fails, a {badrecord,
      ExpectedRecordTag} exception used to be raised. In this
      release, the exception has been changed to {badrecord,
      ActualValue}, where ActualValue is the value that was found
      instead of the expected record.
    * Add compile attribute -nifs() to empower compiler and loader
      with information about which functions may be overridden as
      NIFs by erlang:load_nif/2.
    * Improved and more detailed error messages when binary
      construction with the binary syntax fails. This applies both
      for error messages in the shell and for
      erl_error:format_exception/3,4.
    * Change format of feature options and directives for better
      consistency. Options to erlc and the -compile(..) directive
      now has the format {feature, feature-name, enable | disable}.
      The -feature(..) now has the format -feature(feature-name,
      enable | disable).
    - crypto:
    * Add crypto:hash_equals/2 which is a constant time comparision
      of hashvalues.
    - ssl:
    * Introducing a new (still experimental) option
      {certs_keys,[cert_key_conf()]}. With this a list of a
      certificates with their associated key may be used to
      authenticate the client or the server. The certificate key
      pair that is considered best and matches negotiated
      parameters for the connection will be selected.
    - public_key:
    * Functions for retrieving OS provided CA-certs added.
    - dialyzer:
    * Optimize operations in the erl_types module. Parallelize the
      Dialyzer pass remote.
    * Added the missing_return and extra_return options to raise
      warnings when specifications differ from inferred types.
      These are similar to, but not quite as verbose as overspecs
      and underspecs.
    * Dialyzer now better understands the types for min/2, max/2,
      and erlang:raise/3. Because of that, Dialyzer can potentially
      generate new warnings. In particular, functions that use
      erlang:raise/3 could now need a spec with a no_return()
      return type to avoid an unwanted warning.
* Wed Apr 06 2022 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Fix build for Factory. Currently, any Java version
    is fine for Erlang.
* Sun Mar 27 2022 matwey.kornilov@gmail.com
  - Changes for 24.3.2:
    * erl_interface: Fix compile error regarding gethostbyaddr_r on
      Android. Error introduced in OTP 24.3.
    * kernel: Fix failed accepted connection setup after previous
      established connection from same node closed down silently.
    * kernel: Fixed a problem where typing Ctrl-R in the shell could
      hang if there were some problem with the history log file.
  - Changes for 24.3.1:
    * dialyzer: There could be spurious warnings for unknown types
      when a type was a subtype of an existing type that was a
      subtype of an unknown type.
    * ssl: Client certification could fail for TLS-1.3 servers that
      did not include the certificat_authorties extension in its
      certificate request message.
  - Changes for 24.3:
    * megaco: The compilation time is no longer recorded in BEAM
      files. There remained several undocumented functions that
      attempted to retrieve compilation times. Those have now been
      removed.
    * megaco: Update the performance and debug chapters of the megaco
      user's guide. Also some updates to the meas tools.
    * compiler: The expression <<0/native-float>>=Bin would always
      fail to match, while <<0/float-native>>=Bin would match
      (provided that Bin contained the binary representation of 0.0)
    * compiler: The compiler will now compile huge functions with
      straight-line code faster.
    * erl_interface: Add --enable-ei-dynamic-lib configure option
      that will make erl_interface also release a dynamic library
      version of libei.
    * erl_interface: The ei API for decoding/encoding terms is not
      fully 64-bit compatible since terms that have a representation
      on the external term format larger than 2 GB cannot be handled.
    * sasl: Fix bug in systools:make_script/1 documentation.
    * inets: The compilation time is no longer recorded in BEAM
      files. There remained several undocumented functions that
      attempted to retrieve compilation times. Those have now been
      removed.
    * inets: Documentation fix for inets:services_info/0, which now
      describes that Info might be a Reason term() in case when
      {error, Reason} is returned as service info.
    * crypto: The crypto app in OTP can since OTP-24.2 be compiled,
      linked and used with the new OpenSSL 3.0 cryptolib. The crypto
      app has 3.0 support has been improved, but is still *not
      recommended* for other usages than experiments and alpha
      testing. There are not yet any guaranties that it works, not
      even together with other OTP applications like for example SSL
      and SSH, although there are no known errors. Since the previous
      release, OTP-24.2, the following improvements have been done: -
      It has been tested during nearly every nightly test on the OTP
      lab - The hash algorithms md4 and ripemd160 have been enabled
      with OpenSSL 3.0. - The ciphers blowfish_cbc, blowfish_ecb,
      des_cbc, des_cfb, des_ecb, rc2_cbc and rc4 have been enabled
      with OpenSSL 3.0. Disabled or unsupported with OpenSSL 3.0 are
      still: - ENGINE support - FIPS mode - Other providers than the
      built-in ones - Compiling and linking with OpenSSL 3.0
      cryptolib in compatibility modes (for example to behave as
      1.1.1) and, the ciphers blowfish_cfb64 and blowfish_ofb64 are
      not supported and will not be either. Deprecated functions in
      the OpenSSL 3.0 cryptolib must not be disabled as OTP/crypto
      still uses some of the deprecated API functions. The gcc flag
    - Wno-deprecated-declarations is set to prevent deprecation
      warnings to be printed when compiling.
    * crypto: Crypto is adapted to LibreSSL 3.5.0 on OpenBSD.
    * crypto: New configure option ( --disable-otp-test-engine) to
      prohibit the build of the OTP test engine used in some test
      suites. The reason is that the test engine could be hard to
      compile on for instance LibreSSL 3.5.0. For that particular
      cryptolib version (or higher), this configure option is set
      automatically.
    * jinterface: Fix bug in OtpOutputStream.write_pid/4 and
      write_ref/3 causing faulty encodig. Bug exists since OTP 23.0.
    * wx: Removed the static_data option from wxImage creation
      functions, as it was broken and could lead to crashes. Now
      image data is always copied to wxWidgets as was the default
      behavior. Removed some non working wxGridEvent event types,
      which have there own events in newer wxWidgets versions, and
      added a couple of event types that where missing in wx.
    * asn1: Add support for the maps option in combination with the
      jer backend.
    * snmp: The compilation time is no longer recorded in BEAM files.
      There remained several undocumented functions that attempted to
      retrieve compilation times. Those have now been removed.
    * snmp: [agent] Remove expectation of socket being a port.
    * common_test: OTP internal test fix.
    * runtime_tools: Fixed bug in scheduler:utilization(Seconds) that
      would leave the scheduler_wall_time system flag incorrectly
      enabled.
    * runtime_tools: Add scheduler:get_sample/0 and get_sample_all/0.
      Also clarify scheduler module documentation about how it
      depends on system flag scheduler_wall_time.
    * erts: Fixed a bug in the x86 JIT that might cause floating
      point instructions to wrongly throw an exception.
    * erts: Preserve correct nodedown_reason if supervised
      distribution controller processes exit with {shutdown, Reason}.
    * erts: Handling of send_timeout for gen_tcp has been corrected
      so that the timeout is honored also when sending 0 bytes.
    * erts: By default global does not take any actions to restore a
      fully connected network when connections are lost due to
      network issues. This is problematic for all applications
      expecting a fully connected network to be provided, such as for
      example mnesia, but also for global itself. A network of
      overlapping partitions might cause the internal state of global
      to become inconsistent. Such an inconsistency can remain even
      after such partitions have been brought together to form a
      fully connected network again. The effect on other applications
      that expects that a fully connected network is maintained may
      vary, but they might misbehave in very subtle hard to detect
      ways during such a partitioning. In order to prevent such
      issues, we have introduced a prevent overlapping partitions fix
      which can be enabled using the prevent_overlapping_partitions
      kernel(6) parameter. When this fix has been enabled, global
      will actively disconnect from nodes that reports that they have
      lost connections to other nodes. This will cause fully
      connected partitions to form instead of leaving the network in
      a state with overlapping partitions. Note that this fix has to
      be enabled on all nodes in the network in order to work
      properly. Since this quite substantially changes the behavior,
      this fix is currently disabled by default. Since you might get
      hard to detect issues without this fix you are, however,
      strongly advised to enable this fix in order to avoid issues
      such as the ones described above. As of OTP 25 this fix will
      become enabled by default.
    * erts: Corrected the type specification of erlang:seq_trace/2.
    * erts: Fix memory leak when tracing on running on a process that
      only handle system tasks or non-message signals (for example
      process_info requests).
    * erts: Add support for using socket:sockaddr_in() and
      socket:sockaddr_in6() when using gen_sctp, gen_tcp and gen_udp.
      This will make it possible to use Link Local IPv6 addresses.
    * erts: Show on_load failure reasons in embedded mode.
    * erts: Compile date saved in the Erlang VM executable has been
      removed.
    * erts: Improve documentation for the dynamic node name feature.
    * ssh: Fix makefile dependency bugs.
    * ssh: Fixed faulty OpenSSH decoding of Ed25519/Ed448 keys in the
      OpenSSH format openssh_key_v1.
    * ssh: Correction of ssh_file typing, specially for the
      experimental openssh-key-v1 encoding.
    * ssh: Improper tag for private ED keys when encoding with
      ssh:encode/2. The tuple had ed_priv as first element, but
      should have had ed_pri. This is now corrected. *** POTENTIAL
      INCOMPATIBILITY ***
    * ssh: Add support for Ed25519/Ed448 SSH host keys in the RFC
      4716 format ("-----BEGIN EC PRIVATE KEY-----") generated by for
      example openssl or via Erlang functions (i.e.
      public_key:generate_key({namedCurve, ed25519})). Ed25519 SSH
      host keys generated by ssh-keygen was, and are still,
      supported.
    * kernel: Handling of send_timeout for gen_tcp has been corrected
      so that the timeout is honored also when sending 0 bytes.
    * kernel: By default global does not take any actions to restore
      a fully connected network when connections are lost due to
      network issues. This is problematic for all applications
      expecting a fully connected network to be provided, such as for
      example mnesia, but also for global itself. A network of
      overlapping partitions might cause the internal state of global
      to become inconsistent. Such an inconsistency can remain even
      after such partitions have been brought together to form a
      fully connected network again. The effect on other applications
      that expects that a fully connected network is maintained may
      vary, but they might misbehave in very subtle hard to detect
      ways during such a partitioning. In order to prevent such
      issues, we have introduced a prevent overlapping partitions fix
      which can be enabled using the prevent_overlapping_partitions
      kernel(6) parameter. When this fix has been enabled, global
      will actively disconnect from nodes that reports that they have
      lost connections to other nodes. This will cause fully
      connected partitions to form instead of leaving the network in
      a state with overlapping partitions. Note that this fix has to
      be enabled on all nodes in the network in order to work
      properly. Since this quite substantially changes the behavior,
      this fix is currently disabled by default. Since you might get
      hard to detect issues without this fix you are, however,
      strongly advised to enable this fix in order to avoid issues
      such as the ones described above. As of OTP 25 this fix will
      become enabled by default.
    * kernel: Fix bug where logger would crash when logging a report
      including improper lists.
    * kernel: Make erlang:set_cookie work for dynamic node names.
    * kernel: Add support for using socket:sockaddr_in() and
      socket:sockaddr_in6() when using gen_sctp, gen_tcp and gen_udp.
      This will make it possible to use Link Local IPv6 addresses.
    * kernel: A net_tickintensity kernel parameter has been
      introduced. It can be used to control the amount of ticks
      during a net_ticktime period. A new net_kernel:start/2 function
      has also been introduced in order to make it easier to add new
      options. The use of net_kernel:start/1 has been deprecated.
    * kernel: Improve documentation for the dynamic node name
      feature.
    * erl_docgen: Fix css for large tables and images on small
      screens
    * erl_docgen: Fix bug with codeinclude tag that caused it to not
      include the code if used in a correct, but unexpected way.
    * observer: Calculate the display width in etop, instead of hard-
      coding it to 89 characters.
    * debugger: Fix record index matching, it was broken and could
      never match.
    * ssl: Improved error handling.
    * ssl: Before this change, net_kernel used with TLS distribution
      might be leaking processes in case of connectivity issues.
    * ssl: Fix makefile dependency bugs.
    * ssl: Make sure the TLS sender process handles explicit calls to
      erlang:disconnect_node properly, avoiding potential hanging
      problems in net_kernel.
    * ssl: Add support for TLS-1.3 certificate_authorities extension.
      And process certificate_authorities field in pre-TLS-1.3
      certificate requests.
    * ssl: Support password fun for protected keyfiles in ssl:connect
      function.
    * ssl: Add in some cases earlier detection of possible DoS
      attacks by malicious clients sending unexpected TLS messages
      instead of the client hello. Note that such attacks are already
      mitigated by providing a timeout for the TLS handshake.
    * eldap: Fix eldap extensibleMatch dnAttributes option. According
      to the ldap ASN1 the dnAttributes should be a bool, instead it
      was generated as a string.
    * eldap: Implemented paged searches according to https://www.rfc-
      editor.org/rfc/rfc2696.txt
    * public_key: Support password fun for protected keyfiles in
      ssl:connect function.
    * stdlib: The compilation time is no longer recorded in BEAM
      files. There remained several undocumented functions that
      attempted to retrieve compilation times. Those have now been
      removed.
    * mnesia: Reduce the number of locks taken during table copying,
      should reduce the startup time on large systems.
    * diameter: The compilation time is no longer recorded in BEAM
      files. There remained several undocumented functions that
      attempted to retrieve compilation times. Those have now been
      removed.
* Sun Mar 06 2022 matwey.kornilov@gmail.com
  - Changes for 24.2.2:
    * inets: Avoid intermediate ungraceful shutdown of the HTTP
      server.
    * ssh: The ssh sever parallel_login option was missing in OTP-24
* Mon Feb 21 2022 matwey.kornilov@gmail.com
  - Changes for 24.2.1:
    * ssl: Improve SNI (server name indication) handling so that
      protocol version can be selected with regards to SNI. Also,
      make sure that ssl:connection_information/1 returns the correct
      SNI value.
    * ssl: Fixed cipher suite listing functions so that the listing
      of all cipher suites will be complete. Another fix for cipher
      suite handling in OTP-24.1 accidentally excludes a few cipher
      suites from the listing of all cipher suites.
    * ssl: Reenable legacy cipher suite TLS_RSA_WITH_3DES_EDE_CBC_SHA
      for explicit configuration in TLS-1.2, not supported by
      default.
    * ssl: Avoid unnecessary logs by better adjusting the tls_sender
      process to the new supervisor structure in OTP-24.2
    * erts: Fixed a memory leak in file:read_file_info/2 and
      file:read_file/1 on Windows.
    * erts: Fix GC emulator crash when spawn_request was used when
      message tracing was enabled.
* Fri Jan 21 2022 matwey.kornilov@gmail.com
  - Changes for 24.2:
    * compiler: When the compiler is invoked by Dialyzer, it will no
      longer apply an optimization of binary patterns that would turn
      the pattern <<"bar">> into <<6447474:24>>, which would be very
      confusing when printed out by Dialyzer.
    * compiler: The compiler would replace known failing calls (such
      as atom_to_list(42)) with a call to error(badarg). With the
      extended error information introduced in OTP 24 (EEP 54), those
      "optimized" calls would not have extended error information. To
      ensure that as much extended error information as possible is
      available, the compiler now keeps the original call even when
      it is known to fail.
    * sasl: Make release_handler even more resilient against exiting
      processes during upgrade. Same kind of bug fix as OTP-16744
      released in sasl-4.0.1 (OTP 23.1).
    * ssl: Allow re-connect on DTLS sockets Can happen when a
      computer reboots and connects from the same client port without
      the server noticing should be allowed according to RFC.
    * ssl: Fix tls and non-tls distribution to use
      erl_epmd:address_please to figure out if IPv4 or IPv6 addresses
      should be used when connecting to the remote node. Before this
      fix, a dns lookup of the remote node hostname determined which
      IP version was to be used which meant that the hostname had to
      resolve to a valid ip address.
    * ssl: Use supervisor significant child to manage tls connection
      process and tls sender process dependency.
    * ssl: Random generation adjustment for TLS1.3
    * ssl: Allow any {03,XX} TLS record version in the client hello
      for maximum interoperability
    * mnesia: Documentation and minor code cleanup.
    * common_test: Before this change, group handling grammar was
      ambiguous and also group paths did not support test specs.
    * common_test: Before this change, it was not possible to link to
      a particular header entry in Common Test log. Change adds right
      aligned anchor icons in HTML test logs.
    * parsetools: The default parser include file for yecc (yeccpre)
      will no longer crash when attempting to print tokens when
      reporting an error.
    * tools: Erlang-mode fixed for newer versions of xref using CL-
      Lib structures instead of EIEIO classes.
    * inets: Correct HTTP server URI handling to fully rely on
      uri_string. The server could mistreat some URI paths that in
      turn could result in incorrect responses being generated.
    * inets: Extend header values to httpc:request/5 to allow
      binary() as well. Make error detection of invalid arguments to
      httpc:request/5 be more precise so an error is returned in more
      cases instead of causing a hang or function_clause. Be more
      precise in documentation regarding the types of arguments being
      accepted.
    * crypto: Fixed the C-warning "implicit declaration of function
      'OpenSSL_version_num'" if compiling with an early LibreSSL
      version.
    * crypto: FIPS availability was not checked correctly for AEAD
      ciphers.
    * crypto: Fixed that cipher aliases (like aes_cbc etc) could be
      present even if the aliased cipher(s) (like aes_128_cbc,
      aes_256_cbc,... etc) was missing.
    * crypto: The crypto app in OTP can now be compiled, linked and
      used with the new OpenSSL 3.0 cryptolib. It has not yet been
      extensively tested and is in this release *not recommended* for
      other usages than experiments and alpha testing. There are not
      yet any guaranties that it works, not even together with other
      OTP applications like for example SSL and SSH, although there
      are no known errors. Compiling and linking with OpenSSL 3.0
      cryptolib in compatibility modes (for example to behave as
      1.1.1) are not tested. It is not tested with external
      providers. The support for FIPS mode does not yet work, and is
      disabled when compiled with OpenSSL 3.0. Deprecated functions
      in the OpenSSL 3.0 cryptolib must not be disabled as OTP/crypto
      still uses some of the deprecated API functions. The gcc flag
    - Wno-deprecated-declarations is set to prevent deprecation
      warnings to be printed when compiling. The hash algorithms md4
      and ripemd160 are disabled temporarily when compiled with
      OpenSSL 3.0. The ciphers blowfish_cbc, blowfish_cfb64,
      blowfish_ecb, blowfish_ofb64, des_cbc, des_cfb, des_ecb,
      rc2_cbc and rc4 are disabled temporarily when compiled with
      OpenSSL 3.0.
    * crypto: The error handling in crypto is partly refactored using
      the new error reporting support. Errors earlier propagated like
      exceptions are still so, but when the failing function is
      called from the terminal - for example during failure hunting -
      a more descriptive text is produced.
    * crypto: A new function crypto:info/0 which presents some data
      about the compilation and linkage of the crypto nif is added.
    * crypto: Added the pbkdf2_hmac/5 function to the crypto module.
      It calls the PKCS5_PBKDF2_HMAC function which implements PBKD2
      with HMAC in an efficient way.
    * stdlib: Fix rendering of nbsp on terminals that do not support
      unicode.
    * stdlib: Improved the erl_error printout for when re fails to
      compile a regular expression to also print hints about why the
      compilation failed.
    * stdlib: Fixed spec for supervisor_bridge:start_link().
    * stdlib: Added missing shutdown clauses in supervisor which
      could cause erroneous error reports.
    * stdlib: Add the no_auto_import_types to erl_lint to allow a
      module to define types of the same name as a predefined type.
    * erts: When matching and constructing utf16 segments in the
      binary syntax, the native flag would be ignored. That is, the
      endian would always be big endian even on a little-endian
      computer (almost all modern computers).
    * erts: Fix the help printout of +JPperf.
    * erts: Fix bug that could cause Erlang to deadlock during
      creation of an Erlang crash dump.
    * erts: Fixed C++ build errors on some aarch64 platforms.
    * erts: For macOS, the Info.plist file embedded in the runtime
      system now only contains the absolute minimum amount of
      information needed for the web view in wx to work towards
      localhost. The other fields have been removed, allowing an
      application packaged in a bundle to specify the application
      name and other parameter in its own Info.plist file.
    * erts: Fix bug in internal stacks (WSTACK and ESTACK) used by
      term_to_binary/2 to encode terms. The bug could cause a
      segfault if a very very large map was to be encoded with the
      deterministic option given.
    * erts: Improve the error printout when open_port/2 fails because
      of invalid arguments.
    * erts: Fix bug in crash dumps where the stackframe of a process
      would be printed using an incorrect format. Crash dump viewer
      has also been fixed to be able read the broken stack format.
      The bug has existed since Erlang/OTP 23.0.
    * erts: An option for enabling dirty scheduler specific allocator
      instances has been introduced. By default such allocator
      instances are disabled. For more information see the
      documentation of the +Mdai erl command line argument.
    * erts: Minor optimization of receive markers in message queues.
    * erts: All predefined types have been added to the erlang module
      together with documentation. Any reference to a predefined type
      now links to that documentation so that the user can view it.
    * erts: Suppress a code checker warning caused by debug builds of
      YCF. YCF tries to get a conservative estimate of the bottom of
      the stack by reading and returning a call stack allocated
      variable.
    * erts: Add file and product properties to erl.exe and werl.exe.
    * erts: Micro optimization in bitstring append operations.
    * erts: Responsiveness of processes executing on normal or low
      priority could suffer due to code purging or literal area
      removal on systems with a huge amount of processes. This since
      during these operations all processes on the system were
      scheduled for execution at once. This problem has been fixed by
      introducing a limit on outstanding purge and copy literal
      requests in the system. By default this limit is set to twice
      the amount of schedulers on the system. This will ensure that
      schedulers will have enough work scheduled to perform these
      operations as quickly as possible at the same time as other
      work will be interleaved to a much higher degree. Performance
      of these operations will however be somewhat degraded due to
      the overhead of enforcing this limit compared to when using a
      very large limit. This limit can be set by passing the +zosrl
      command line argument to erl, or by calling
      erlang:system_flag(outstanding_system_requests_limit,
      NewLimit).
    * kernel: socket:which_sockets( pid() ) uses wrong keyword when
      looking up socket owner ('ctrl' instead of 'owner').
    * kernel: In epmd_ntop, the #if defined(EPMD6) conditional was
      inverted and it was only including the IPv6-specific code when
      EPMD6 was undefined. This was causing IPv6 addrs to be
      interpreted as IPv4 addrs and generating nonsense IPv4
      addresses as output. Several places were incorrectly using
      'num_sockets' instead of 'i' to index into the iserv_addr array
      during error logging. This would result in a read into
      uninitialized data in the iserv_addr array. Thanks to John
      Eckersberg for providing this fix.
    * kernel: Minor fix of the erl_uds_dist distribution module
      example.
    * kernel: A bug has been fixed for the legacy TCP socket adaption
      module gen_tcp_socket where it did bind to a socket address
      when given a file descriptor, but should not.
    * kernel: Improve the error printout when open_port/2 fails
      because of invalid arguments.
    * kernel: Calling socket:monitor/1 on an already closed socket
      should succeed and result in an immediate DOWN message. This
      has now been fixed.
    * kernel: Fix the configuration option logger_metadata to work.
    * kernel: Fix tls and non-tls distribution to use
      erl_epmd:address_please to figure out if IPv4 or IPv6 addresses
      should be used when connecting to the remote node. Before this
      fix, a dns lookup of the remote node hostname determined which
      IP version was to be used which meant that the hostname had to
      resolve to a valid ip address.
    * kernel: Add logger:reconfigure/0.
    * kernel: Add socket function ioctl/2,3,4 for socket device
      control.
    * kernel: Add simple support for socknames/1 for gen_tcp_socket
      and gen_udp_socket.
    * kernel: The types for callback result types in gen_statem has
      bee augmented with arity 2 types where it is possible for a
      callback module to specify the type of the callback data, so
      the callback module can get type validation of it.
    * erl_docgen: Fix codeinclude tag to correctly respect the type
      attribute.
    * erl_docgen: The HTML documentation has been updated to collapse
      better on small screens.
    * erl_docgen: All predefined types have been added to the erlang
      module together with documentation. Any reference to a
      predefined type now links to that documentation so that the
      user can view it.
    * snmp: Handling of test config flag when starting "empty".
    * snmp: Add support for new authentication algorithms (SHA-224,
      SHA-256, SHA-384 and SHA-512), according to RFC 7860.
    * snmp: Improve debug info for (snmp) manager.
    * wx: Fix crash in cleanup code when a gui application is
      exiting. Fix errors in the OpenGL wrapper that could cause
      crashes and improve the documentation.
    * edoc: Add option link_predefined_types that is used to create
      links to erlang predefined types. This is mainly to be used by
      erl_docgen when creating the Erlang/OTP documentation.
    * dialyzer: Fixed a crash when opaque types contained certain
      unicode characters.
    * dialyzer: When the compiler is invoked by Dialyzer, it will no
      longer apply an optimization of binary patterns that would turn
      the pattern <<"bar">> into <<6447474:24>>, which would be very
      confusing when printed out by Dialyzer.
    * observer: Fix bug in crash dumps where the stackframe of a
      process would be printed using an incorrect format. Crash dump
      viewer has also been fixed to be able read the broken stack
      format. The bug has existed since Erlang/OTP 23.0.
    * ssh: The value of the connect_timeout option is now used as
      default value for the negotiation timeout.
    * ssh: Add better error handling in connect/2,3,4. Detect
      incorrect arguments and return an informative error tuple
      instead of throwing a function_clause or similar.
    * ssh: Make ssh algorithm selection better handle dynamic changes
      changes in crypto fips mode.
    * megaco: [megaco_tcp] When connect fails, include more info in
      the error reason.
  - Changes for 24.1.7:
    * ssh: Fixed a race condition in the acceptor loop: if a client
      disconnected immediately after the tcp connect, the server
      could cease handling connection on that address:port.
  - Changes for 24.1.6:
    * ssl: Correct typo of ECC curve name in signature algorithm
      handling. Will make the signature algorithm
      ecdsa_secp521r1_sha512 succeed.
    * ssl: Suppress authenticity warning when option verify_none is
      explicitly supplied.
  - Changes for 24.1.5:
    * erts: The runtime system could call select() with a too large
      timeout value when executing on MacOS. This could in turn cause
      the runtime system to crash.
    * erts: The fix for Linux's behaviour when reconnecting an UDP
      socket in PR-5120 released in OTP-24.1.2 has been refined to
      only dissolve the socket's connection before a connect if the
      socket is already connected, that is: only for a reconnect.
      This allows code to open a socket with an ephemeral port, get
      the port number and connect; without the port number changing
      (on Linux). This turned out to have at least one valid use case
      (besides test cases). Should one reconnect the socket then the
      port number may change, on Linux; it is a known quirk, which
      can be worked around by binding to a specific port number when
      opening the socket. If you can do without an ephemeral port,
      that is...
    * erts: Certain distributed signals that for various reasons must
      to be forced into the distribution buffer even when it is full
      would instead be lost if the distribution buffer was full when
      sent. The effected signals:
    * kernel: The internal, undocumented, but used, module inet_dns
      has been fixed to handle mDNS high bit usage of the Class
      field. Code that uses the previously obsolete, undocumented and
      unused record field #dns_rr.func will need to be updated since
      that field is now used as a boolean flag for the mDNS high
      Class bit. Code that uses the also undocumented record
      [#]dns_query will need to be recompiled since a boolean field
      [#]dns_query.unicast_response has been added for the mDNS high
      Class bit. *** POTENTIAL INCOMPATIBILITY ***
    * kernel: The fix for Linux's behaviour when reconnecting an UDP
      socket in PR-5120 released in OTP-24.1.2 has been refined to
      only dissolve the socket's connection before a connect if the
      socket is already connected, that is: only for a reconnect.
      This allows code to open a socket with an ephemeral port, get
      the port number and connect; without the port number changing
      (on Linux). This turned out to have at least one valid use case
      (besides test cases). Should one reconnect the socket then the
      port number may change, on Linux; it is a known quirk, which
      can be worked around by binding to a specific port number when
      opening the socket. If you can do without an ephemeral port,
      that is...
  - Changes for 24.1.4:
    * erts: Fix bug where a gen_tcp write error that happened during
      a delayed_send would cause a use after free segfault.
    * erts: Fix x86 JIT bug where a rem instruction could cause a
      segfault if given values that would cause an badarith
      exception.
  - Changes for 24.1.3:
    * ssl: Fix TLS-1.2 RSA-PSS negotiation and also fix broken
      certificate request message for pre-TLS-1.3 servers.
    * ssl: Fix CRL issuer verification that under some circumstances
      could fail with a function_clause error.
    * erts: Reduction counter was not updated before and after doing
      apply operations on the runtime system with the jit enabled.
      This caused reduction counting to get out of sync if a garbage
      collection was made as part of the apply operation.
    * erts: This fixes a bug in erts_factory_undo that caused the
      heap to not be reset correctly. The erts_factory_undo function
      is, for example, called when a binary_to_term/1 call fails to
      reset the heap to its state before the binary_to_term/1 call.
      This can cause the heap to contain invalid terms which
      potentially can cause issues (e.g., crashes) when the whole
      heap is scanned.
    * erts: When attempting to construct a binary with an segment
      having an illegal type for the size (e.g. an atom), there could
      be an unnecessary memory allocation (and subsequent
      deallocation) before the operation failed. Amended to fail
      before allocating any memory for the binary.
    * erts: Fix bug in persistent_term when a key-value pair contains
      a magic reference that is referred more than once. Magic
      references are NIF resources or returned from BIFs like
      ets:new, atomics:new. The bug could cause the memory of the
      referred resource to be prematurely deallocated. The bug also
      apply to magic references in message passing on a runtime built
      with configure option --enable-sharing-preserving. Bug exist
      for 64-bit since OTP-24.0 and for 32-bit since OTP-20.0.
    * erts: Fixed a crash when inspecting the stack trace of an
      exception raised at a very high line number. This bug was
      introduced in OTP 24.
    * erts: The following two bugs that caused erlang:demonitor() to
      behave erroneously have been fixed. The bugs were only
      triggered if the monitor that was removed by demonitor() had
      previously been created simultaneously as a monitor and as an
      alias.
* Wed Oct 20 2021 matwey.kornilov@gmail.com
  - Changes for 24.1.2:
    * kernel: The undocumented DNS encode/decode module inet_dns has
      been cleaned up to handle the difference between "symbolic" and
      "raw" records in a more consistent manner. PR-5145/OTP-17584
      introduced a change that contributed to an already existing
      confusion, which this correction should remedy.
    * erts: The python scripts that existed in
      erts/lib_src/yielding_c_fun/lib/tiny_regex_c/scripts had a
      license that was incompatible with Erlang/OTP's license. This
      ticket removes these scripts that were not used by us.
    * ssl: Before that change, TLS downgrade could occasionally fail
      when data intended for downgraded socket were delivered
      together with CLOSE_NOTIFY alert to ssl app.
    * ssl: Avoid re-encoding of decoded certificates. This could
      cause unexpected failures as some subtle encoding errors can be
      tolerated when decoding but hence creating another sequence of
      bytes if the decoded value is re-encoded.
    * ssl: Fix possible process leak when the process doing
      ssl:transport_accept dies before initiating the TLS handshake.
    * ssl: Fix dtls memory leak, the replay window code was broken.
    * public_key: Avoid re-encoding of decoded certificates. This
      could cause unexpected failures as some subtle encoding errors
      can be tolerated when decoding but hence creating another
      sequence of bytes if the decoded value is re-encoded.
    * crypto: Fixed minor memory leak at crypto module purge.
    * crypto: Fix possible inconsistency in fips mode when linking
      with some cryptolibs.
  - Changes for 24.1.1:
    * kernel: Add more info about the socket 'type' ('socket' or
      'port') for the DOWN message when monitoring sockets.
    * stdlib: Fixed a bug that could cause a child to become orphaned
      when a supervisor died between unlinking and sending the
      shutdown signal to this child. There was also a possibility for
      erratic supervisor reports caused by a race between a
      supervisor shutting down a child and that child exiting by
      itself at the same time.
    * erts: A race between an exiting port and handling of
      simultaneously received signals to that port could cause a
      runtime system crash. The effected signals are link, monitor
      and demonitor. On OTP 22 a similiar race could also cause a
      memory leak when receiving an unlink signal.
    * erts: A user defined tag on a monitor message could cause the
      runtime system to crash when the monitor message had been
      received.
    * erts: A call to erlang:demonitor(Ref) where the reference Ref
      referred to an active alias, but not an active monitor, caused
      the runtime system to crash.
    * erts: The message queue of a process entered an inconsistent
      state after a receive expression with an invalid timeout value
      was executed. If the exception raised due to the invalid
      timeout value was caught, the following receive expression
      executed by the process could fail to match messages already
      present in the message queue. On OTP 24 this could also cause
      the whole runtime system to crash.
    * erts: Sending a Port ! {PortOwner, close} signal from a process
      other than the port owner could erroneously trigger a badsig
      exit signal being sent to the port owner process even though
      the correct PortOwner had been passed in the signal.
    * snmp: Sockets are monitored, but the handling of the 'DOWN'
      message expected a new style socket ('socket'), old style
      (port) was not handled.
  - Changes for 24.1:
    * kernel: The extended error information has been corrected and
      improved for the following BIFs: binary_to_existing_atom/2,
      list_to_existing_atom/1, erlang:send_after/{3,4}, and
      erlang:start_timer/{3,4}.
    * kernel: Fixed rare bug that could cause net_kernel process to
      hang for ever. Have seen to happen with massive number of TLS
      connections while remote nodes are restarting. Bug exists since
      OTP-22.0.
    * kernel: Improve handling of closed sockets for inet:info/1.
    * kernel: This change fixes a performance problem introduced in
      pull-request #2675. Pull-request #2675 made so the system tried
      to start children of already started applications which is
      unnecessary. This change fixes this performance problem.
    * kernel: Fix code:get_doc/1 to not crash when module is located
      in an escript.
    * kernel: Parsing of the result value in the native DNS resolver
      has been made more defensive against incorrect results.
    * kernel: A bug in the option handling for the legacy socket
      adaptor, that is; when using inet_backend = socket, has been
      fixed. Now socket options are set before the bind() call so
      options regarding, for example address reuse have the desired
      effect.
    * kernel: inet:ntoa/1 has been fixed to not accept invalid
      numerical addresses.
    * kernel: Parsing of DNS records has been improved for records of
      known types to not accept and present malformed ones in raw
      format.
    * kernel: The ip_mreq() type for the {ip,add_membership} and
      {ip,drop_membership} socket options has been corrected to have
      an interface field instead of, incorrectly, an address field.
    * kernel: Add simple utility function to display existing sockets
      i the erlang shell (socket:i/0).
    * kernel: gen_udp can now be configured to use the socket inet-
      backend (in the same way as gen_tcp).
    * kernel: Functions erlang:set_cookie(Cookie) and
      erlang:get_cookie(Node) have been added for completeness and to
      facilitate configuring distributed nodes with different
      cookies. The documentation regarding distribution cookies has
      been improved to be less vague.
    * kernel: A workaround has been implemented for Linux's quirky
      behaviour to not adjust the source IP address when connecting a
      connected (reconnecing) UDP socket. The workaround is to, on
      Linux, always dissolve any connection before connecting an UDP
      socket.
    * kernel: Documented our recommendation against opening NFS-
      mounted files, FIFOs, devices, and similar using file:open/2.
    * debugger: Improve record handling, print known records with
      record syntax.
    * observer: Atoms with Unicode code points greater than 255 (for
      example Greek or Cyrillic characters) would not be displayed
      correctly by crashdump_viewer.
    * observer: Fix the crashdump_viewer to be able to parse
      monitor_node/2 monitors correctly.
    * observer: Observer now has a sectiion for new socket.
    * observer: Added a trace all button to the trace window.
    * parsetools: Fix a bug in Leex which caused the Erlang Compiler
      to generate warnings.
    * parsetools: Fix a bug in Yecc which caused the Erlang Compiler
      to generate warnings.
    * mnesia: Fixed that index keys was deleted for set tables when
      mnesia:delete_object/1 tried to delete a non-existing record.
    * mnesia: Optimized table loading and added max_transfer_size
      configuration parameter.
    * stdlib: Fix io:format with ~p to no longer interpret floats as
      printable characters.
    * stdlib: Fix specs for base64 encode/decode functions to also
      include 0.
    * stdlib: The failing call io:format("~p\n") would result in a
      warning for line number 0 instead of the correct line and
      column numbers. This has been corrected, and all warnings for
      failing calls to io:format() has been rephrased to make it
      clearer exactly what the problem is.
    * stdlib: When the options warn_missing_spec and export_all were
      given, there would only be warnings for missing specs for
      functions that had been explicitly exported using an -export
      attribute.
    * stdlib: Calling c:ls/1 with an atom whose contents is the the
      name of a file (as opposed to a directory) would crash.
    * stdlib: The MODULE and MODULE_STRING macros would always appear
      to be defined (when tested by -ifdef), even though no -module()
      declaration had been seen yet. Changed so that -ifdef ?MODULE.
      will not consider ?MODULE defined if -module() has not been
      previously seen.
    * stdlib: Fix bug with rendering of missing types and callbacks
      in shell_docs.
    * stdlib: When the deterministic option was given to the
      compiler, the ?FILE macro would be expanded to full path of the
      source file before the first include directive and to base part
      of the filename after include directive.
    * stdlib: Fixed broken win32reg:delete_key and fixed
      win32reg:value for default value.
    * stdlib: Fixed error information for the call maps:get(some_key,
      [#]{}).
    * stdlib: Most output functions in the io module now print extra
      error information when provided with invalid arguments. The
      functions are: io:format, io:fwrite, io:put_chars, io:nl and
      io:write.
    * stdlib: EEP-54 (Provide more information about errors) now
      includes two new return values for the format_error callback,
      general and reason. Multi-line error descriptions returned from
      a format_error callback are now correctly indented. The
      documentation for erl_error, error/3 and Errors and Error
      Handling in the Erlang Reference Manual have been extended.
    * stdlib: In the documentation for the lists module, it has been
      clarified that predicate funs must return a boolean.
    * stdlib: The documentation for c:c/1, c:c/2, and c:c/3 has been
      clarified.
    * tools: The cover tool would not work on modules compiled with
      the tuple_calls option.
    * common_test: Float allowed as multiply_timetraps parameter.
    * common_test: Remove usage of legacy API macro and functions.
    * erts: Atoms with Unicode code points greater than 255 (for
      example Greek or Cyrillic characters) would not be displayed
      correctly by crashdump_viewer.
    * erts: Fix rare minor memory leak related to jit code loading.
    * erts: The extended error information has been corrected and
      improved for the following BIFs: binary_to_existing_atom/2,
      list_to_existing_atom/1, erlang:send_after/{3,4}, and
      erlang:start_timer/{3,4}.
    * erts: Fix bug provoked when building with gcc 10 and link time
      optimization (-flto), causing Erlang compiler to crash. Bug
      exists since OTP-24.0.
    * erts: Corrected bugs where builds were not reducible even when
      the deterministic option was given. In particular, modules with
      map literals with more than 32 elements could cause this
      problem. As part of this fix, the term_to_binary BIF now
      accepts the option deterministic.
    * erts: After an exception has been caught in a process, the
      stack trace would be kept in the process longer than necessary.
    * erts: Fix rare race bug in memory management of distribution
      entries. Have been seen to cause VM crash when massive number
      of repeated concurrent failing connection attempts.
    * erts: The configure test for --disable-esock-socket-registry
      has been corrected so disabling now works.
    * erts: init:stop() no longer unloads loaded code before
      terminating the runtime system. On systems with slow CPUs (such
      as Raspberry PI Zero), that can significantly speed up
      termination of the runtime system.
    * erts: Fixed match specifications that use maps in either the
      guard or the body to work properly. With this fix both keys and
      values in maps can be expressions. Various other crashes and
      bugs when using maps in match specifications have also been
      fixed.
    * erts: Parsing of the result value in the native DNS resolver
      has been made more defensive against incorrect results.
    * erts: When binary_to_term/2 failed, the extended error
      information would always blame the second argument even if the
      actual error was in the first argument.
    * erts: On 32-bit computers, binary_to_term/1,2 is now more
      resilient against corrupted binaries containing maps in the
      external format.
    * erts: A call to process_info(Pid, status) could erroneously
      report the status running when it should have reported waiting.
      This occurred when the calling process was executing on a
      higher priority than the process being inspected. This bug has
      been present since OTP 21.0 (erts version 10.0).
    * erts: Optimize memory usage of erts internal processes used
      during code loading/purging by hibernating them after a long
      time of inactivity.
    * erts: Add the type erlang:stacktrace/0.
    * erts: The arity argument of error/2,3 can now be none to
      indicate that the calling functions arity should be used.
    * erts: Optimize match spec compiler for immediate (single word)
      constant terms.
    * erts: Functions erlang:set_cookie(Cookie) and
      erlang:get_cookie(Node) have been added for completeness and to
      facilitate configuring distributed nodes with different
      cookies. The documentation regarding distribution cookies has
      been improved to be less vague.
    * erts: A workaround has been implemented for Linux's quirky
      behaviour to not adjust the source IP address when connecting a
      connected (reconnecing) UDP socket. The workaround is to, on
      Linux, always dissolve any connection before connecting an UDP
      socket.
    * erts: The internal documentation for how to use Yielding C Fun
      (YCF) has been updated to contain text about best practices for
      using YCF for ERTS.
    * erts: Optimize garbage collection for processes with large
      number of binaries, funs and/or external pids/ports/refs.
    * erl_docgen: Fix codeinclude tags to work as part of reference
      manual documentation.
    * erl_docgen: Fix creation of link elements with anchors in
      EEP-48 style documentation.
    * dialyzer: Do not crash if a PLT file no longer exists.
    * dialyzer: Fix bug in erl_types related to maps.
    * dialyzer: Fix bugs in erl_types regarding improper lists.
    * dialyzer: The underspecs and overspecs options will now
      generate correct warnings for misused opaque types.
    * eunit: In an eunit test, when a test case times out, include a
      stacktrace.
    * snmp: It is now possible to configure the built-in net-if
      processes (both agent and manager) to use the new (gen_udp-)
      option 'inet_backend'.
    * asn1: A parameterized type with a SEQUENCE with extension
      ("...") made the compiler backend to crash. The previous fix
      for this in GH-4514 was not complete.
    * wx: Fix crash when closing an application.
    * wx: Some functions with overloaded color arguments could not be
      used. For example the copy constructor wxTextAttr:new(TextAttr)
      did not work.
    * wx: Added the Microsoft Edge WebView loader dll to the
      installer on windows.
    * wx: Handle specific Mac gui application events.
    * erl_interface: erl_call now prints an error when the arguments
      cannot be parsed.
    * erl_interface: The ei API for decoding/encoding terms is not
      fully 64-bit compatible since terms that have a representation
      on the external term format larger than 2 GB cannot be handled.
    * edoc: Fix broken documentation link in edoc_extract:file/4.
    * ssl: Fix Makefile dependency generation to work no matter what
      the ERL_TOP folder is called.
    * ssl: If trying to downgrade a TLS-1.3 connection to a plain TCP
      connection, possible TLS-1.3 session ticket messages will be
      ignored in the "downgrade" state while waiting for the close
      notify alert.
    * ssl: Corrected error handling to correctly generate an
      insufficient security alert when there are no suitable groups
      that can be negotiated in TLS-1.3 instead of crashing resulting
      in an internal error alert.
    * ssl: Properly handle default session data storage. When a
      client tries to reuse an expired session the default server
      storage handling would crash loosing other session data. This
      would cause a error report and possible loss of abbreviated
      handshakes.
    * ssl: Add support for RSA-PSS-PSS signatures and
      signature_algorithms_cert in TLS-1.2. This is a TLS-1.3 RFC
      requirement to backport this functionality.
    * ssl: Use inet:monitor/1 to monitor listen-sockets so that we
      are compatible with the new socket backend for gen_tcp.
    * ssl: Enhance ssl:prf/4 handling and testing
    * ssl: Enhanced cipher suite filtering functionality, making sure
      TLS-1.3 and TLS-1.2 cipher suites can be supported correctly
      together even when TLS-1.2 anonymous ciphers are included.
    * ssl: Enhance gracefulness especially in TLS-1.3
    * os_mon: On a Mac with Apple Silicon, memsup:get_os_wordsize/0
      would return 32 instead of 64.
    * ssh: Fixed that a slow start (>30s) of a client subsystem could
      cause a log entry with the password.
    * ssh: Fixed an error when running as an sftp server and a client
      requests a directory contents listing. The fix is to handle the
      error code {error, eacces} as {error, enoent} in the
      ssh_sftpd:get_attrs/5 internal function; that is, just skip it.
    * ssh: The "Key exchange failed" Info Report is now more
      informative.
    * inets: Before this change hrefs in dir listing page contained
      percentage encoded forward slashes which did not work properly
      with httpd.
    * inets: Restored HTTP headers handling in inets/mod_esi.
    * inets: inets/httpd dir listing icons and other improvements
    * inets: httpc: Improve performance by removing redundant URI
      handling
    * compiler: If a parse transform raised an exception using
      throw/1 or exit/1, the compiler would report that as an
      internal compiler error, which would be confusing. Amended to
      report that the parse transform failed.
    * compiler: The failing call io:format("~p\n") would result in a
      warning for line number 0 instead of the correct line and
      column numbers. This has been corrected, and all warnings for
      failing calls to io:format() has been rephrased to make it
      clearer exactly what the problem is.
    * compiler: When the options warn_missing_spec and export_all
      were given, there would only be warnings for missing specs for
      functions that had been explicitly exported using an -export
      attribute.
    * compiler: In rare circumstances, the compiler could emit an
      incorrect warning for a term that was constructed but never
      used.
    * compiler: Corrected bugs where builds were not reducible even
      when the deterministic option was given. In particular, modules
      with map literals with more than 32 elements could cause this
      problem. As part of this fix, the term_to_binary BIF now
      accepts the option deterministic.
    * compiler: The MODULE and MODULE_STRING macros would always
      appear to be defined (when tested by -ifdef), even though no
    - module() declaration had been seen yet. Changed so that -ifdef
      ?MODULE. will not consider ?MODULE defined if -module() has not
      been previously seen.
    * compiler: In a guard, not (X =:= true) would incorrectly
      evaluate to false for non-boolean values of X.
    * compiler: When the deterministic option was given to the
      compiler, the ?FILE macro would be expanded to full path of the
      source file before the first include directive and to base part
      of the filename after include directive.
    * public_key: public_key:pkix_sign/2 now honors the salt length
      from the provided input parameters. Earlier this could result
      in incorrect signatures if not using recommended defaults.
    * public_key: When decoding an 'ECPrivateKey' unwrap the private
      key. For more precise information see RFC 8410, section 7.
    * runtime_tools: Observer now has a sectiion for new socket.
    * runtime_tools: The dbg docs have been expanded to include the
      meaning of all the function name acronyms.
    * megaco: It is now possible to configure the built-in transports
      (megaco_tcp and megaco udp) to use the new (gen_udp- and
      gen_tcp-) option 'inet_backend'.
    * crypto: Fix bug in crypto:ensure_engine_unloaded. Also fixed
      minor memory leak related to engine unloading.
    * crypto: Fixes that FIPS enable and disable (or vice versa) on
      Windows sometimes leads to core dump at the time of process
      exit.
    * crypto: Disable fips if cryptolib < 1.0.1 and OTP/crypto is
      configured with --enable-fips If not, there could be compiling
      or loading problems with antique OpenSSL versions.
    * jinterface: Fixed rare race bug that could cause
      NullPointerException on local close of connection.
  - Changes for 24.0.6:
    * erts: A call to the process_info() BIF could end up hanging for
      ever due to a bug introduced when the new selective receive
      optimization was introduced in OTP 24.0. Note that this bug
      only effects process_info().
    * erts: Fix buffer overrun problem in the tty driver. The problem
      happens on some platforms when using the CTRL+R functionality
      of newshell with very long strings in the history.
    * erts: Fix race-condition that could cause a crash when tracing
      scheduling or garbage collections on a process that was running
      on a dirty scheduler.
    * erts: Fix rare bug where re:run would crash/return invalid
      results when given a subbinary as subject. This bug has existed
      since Erlang/OTP 20.0.
    * erts: binary_to_term/1,2 is now more resilient against
      corrupted binaries containing maps in the external format.
* Tue Sep 14 2021 Johannes Segitz <jsegitz@suse.com>
  - Added hardening to systemd service(s) (bsc#1181400). Modified:
    * epmd.service
* Wed Aug 04 2021 opensuse-packaging@opensuse.org
  - Changes for 24.0.5:
    * kernel: For gen_tcp:connect/3,4 it is possible to specify a
      specific source port, which should be enough to bind the socket
      to an address with that port before connecting. Unfortunately
      that feature was lost in OTP-17216 that made it mandatory to
      specify the source address to get an address binding, and
      ignored a specified source port if no source address was
      specified. That bug has now been corrected.
  - Changes for 24.0.4:
    * stdlib: Fix a bug that could cause a crash when formatting
      tuples using the control sequences p or P and limiting the
      output with the option chars_limit.
    * ssl: Handle cross-signed root certificates when old root
      expired as reported in GH-4877.
    * ssl: The signature selection algorithm has been changed to also
      verify if the client supports signatures using the elliptic
      curve of the server's public/private key pair. This change
      fixes #4958.
    * ssl: Slight optimization of certificate decoding.
    * public_key: Handle cross-signed root certificates when old root
      expired as reported in GH-4877.
    * common_test: An incoming NETCONF notification received before a
      call to ct_netconfc:create_subscription/* caused the connection
      process to fail with badarg. Unexpected notifications are now
      logged in the same way as other unexpected messages.
    * common_test: Add 'receiver' option to ct_netconfc To allow a
      destination for incoming NETCONF notifications to be specified
      at sessions creation. Previously, a caller of
      create_subscription/* became the destination, but RFC 5277
      create-subscription is no longer the only way in which NETCONF
      notifications can be ordered.
* Fri Jul 23 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Fix more directories not owned by the package (boo#1187546)
* Mon Jul 05 2021 matwey.kornilov@gmail.com
  - Changes for 24.0.3:
    * erts: A call to erlang:cancel_timer(_, [{info, false}]) could
      cause the calling process to block forever in the call. Note
      that only the synchronous version of the call (that is, the
      async option is false) in combination with the info option set
      to false was effected by this bug.
    * erts: Microstate accounting (msacc) and os:perf_counter()
      unintentionally used system time instead of monotonic time for
      time measurements on a lot of systems. These systems were all
      non x86/x86_64 systems or x86/x86_64 systems without a reliable
      and constant rdtsc instruction. The lock counting (lcnt) built
      runtime system also unintentionally used system time instead of
      monotonic time for time measurements on all systems.
    * erts: Simultaneous calls to
      erlang:system_flag(schedulers_online, _) could cause callers to
      end up in a suspended state forever.
    * dialyzer: Do not expose line number 0 in messages if there are
      other locations to use.
    * dialyzer: In rare circumstances, Dialyzer could crash analyzing
      code with a list comprehension whose value was ignored. (Thanks
      to Ulf Wiger for reporting this bug.)
    * ssh: Filter out sensitive data (passwords etc) from progress
      reports and supervisor reports.
    * inets: Improved user input handling in inets/mod_esi preventing
      unnecessary atom creation.
    * compiler: A compiler optimization pass could crash when given
      odd but legal code using throw/1.
  - Changes for 24.0.2:
    * kernel: Fix a race condition in Global.
    * kernel: After a node restart with init:restart/0,1, the module
      socket was not usable because supporting tables had been
      cleared and not re-initialized. This has now been fixed.
      Handling of the "." domain as a search domain was incorrect and
      caused a crash in the DNS resolver inet_res, which has now been
      fixed.
    * kernel: Handling of combinations of the fd option and binding
      to an address has been corrected, especially for the local
      address family.
    * kernel: Bug fixes and code cleanup for the new socket
      implementation, such as: Assertions on the result of
      demonitoring has been added in the NIF code, where appropriate.
      Internal state handling for socket close in the NIF code has
      been reviewed. Looping over close() for EINTR in the NIF code
      has been removed, since it is strongly discouraged on Linux and
      Posix is not clear about if it is allowed. The inet_backend
      temporary socket option for legacy gen_tcp sockets has been
      documented. The return value from net:getaddrinfo/2 has been
      corrected: the protocol field is now an atom(), instead of,
      incorrectly, list(atom()). The documentation has also been
      corrected about this return type. Deferred close of a
      socket:sendfile/* file was broken and has been corrected. Some
      debug code, not enabled by default, in the socket NIF has been
      corrected to not accidentally core dump for debug printouts of
      more or less innocent events.
    * stdlib: Fix a bug that could cause a loop when formatting terms
      using the control sequences p or P and limiting the output with
      the option chars_limit.
    * erts: Not yet handled alias-message signals in the signal queue
      at the time when a garbage collection was performed could cause
      a memory corruption which in turn could result in a crash of
      the runtime system. This bug was introduced in OTP 24.0.
    * erts: Fixed bug when using external pids/ports in keys of big
      maps (> 32). Could cause runtime crash. Bug exists since OTP
      24.0.
    * erts: After a node restart with init:restart/0,1, the module
      socket was not usable because supporting tables had been
      cleared and not re-initialized. This has now been fixed.
      Handling of the "." domain as a search domain was incorrect and
      caused a crash in the DNS resolver inet_res, which has now been
      fixed.
    * erts: A call to port_command() could cause a scheduler to end
      up in an eternal loop if the port was busy and the calling
      process had incoming signals at the time of the call. This bug
      was introduced in OTP 23.3.2 (ERTS version 11.2.1), OTP
      22.3.4.18 (ERTS version 10.7.2.10), and OTP 21.3.8.23 (ERTS
      version 10.3.5.18).
    * erts: Bug fixes and code cleanup for the new socket
      implementation, such as: Assertions on the result of
      demonitoring has been added in the NIF code, where appropriate.
      Internal state handling for socket close in the NIF code has
      been reviewed. Looping over close() for EINTR in the NIF code
      has been removed, since it is strongly discouraged on Linux and
      Posix is not clear about if it is allowed. The inet_backend
      temporary socket option for legacy gen_tcp sockets has been
      documented. The return value from net:getaddrinfo/2 has been
      corrected: the protocol field is now an atom(), instead of,
      incorrectly, list(atom()). The documentation has also been
      corrected about this return type. Deferred close of a
      socket:sendfile/* file was broken and has been corrected. Some
      debug code, not enabled by default, in the socket NIF has been
      corrected to not accidentally core dump for debug printouts of
      more or less innocent events.
    * erts: Dirty execution of a process in combination with an
      unlink signal from a port to the process could cause the signal
      queue of the process to enter into an inconsistent state. The
      result of the inconsistency typically caused a crash of the
      runtime system. This bug was introduced in OTP 23.3 (ERTS
      version 11.2).
    * erl_docgen: Fix links generated in specs to types in other
      applications to point to the correct place. This bug was
      introduced in Erlang/OTP 24.0.
    * ssl: Fix cache invalidation problem for CA certs provided by
      the cacertfile option.
    * ssh: Avoid an extra blank line in the ssh known_hosts file
    * compiler: Fixed a bug that could cause after blocks to be
      ignored when erlang:raise/3 was used in a catch block.
    * compiler: Fixed a bug in the validation pass that could cause
      it to reject valid code.
    * crypto: EC keys are now zero-padded to the expected length if
      needed.
* Sat Jun 26 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Use sysusers-tools to provide epmd user
  - Fix directories not owned by the package (boo#1187546)
* Mon Jun 14 2021 Callum Farmer <gmbr3@opensuse.org>
  - Install RPM macros file to %{_rpmmacrodir} (boo#1185667)
* Fri May 21 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Changes for 24.0.1:
    * erl_interface: Commit of generated configure script.
    * wx: Fix build problems when wxWidgets are built with -enable-
      std.
    * wx: Commit of generated configure script.
    * crypto: Removed a risk for coredump.
    * crypto: Fixed and documented the DED_LDFLAGS_CONFTEST
      configuration variable in $ERL_TOP/HOWTO/INSTALL.md.
    * crypto: Commit of generated configure script.
    * common_test: Commit of generated configure script.
    * ssh: Add missing known_hosts and authorized_keys file types to
      ssh_file:decode/2 and ssh_file:encode/2.
    * erts: Commit of generated configure script.
    * snmp: Commit of generated configure script.
    * megaco: Commit of generated configure script.
    * odbc: Commit of generated configure script.
* Wed May 12 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Version 24.0:
    - Highlights compiler:
    * The compiler will now inline funs that are used only once
      immediately after their definition.
    * Compiler warnings and errors now include column numbers in
      addition to line numbers.
    * Variables bound between the keywords 'try' and 'of' can now
      be used in the clauses following the 'of' keyword (that is,
      in the success case when no exception was raised).
    * Generators in list and binary comprehensions will now raise a
      {bad_generator,Generator} exception if the generator has an
      incorrect type Similarly, when a filter does not evaluate to
      a boolean, a {bad_filter,Filter} exception will be raised.
    * Warnings for expressions whose result was ignored that could
      be suppressed by using the anonymous variable '_' can now be
      suppressed with a variable beginning with '_'.
    * Selective receive optimization will now be applied much more
      often. The new recv_opt_info compile flag can be used to
      print diagnostics relating to this optimization. You can read
      more about the selective receive optimization in the
      Efficiency Guide.
    - erts, kernel, stdlib:
    * hex encoding and decoding functions added in the binary module
    * The BeamAsm JIT-compiler has been added to Erlang/OTP and
      will give a significant performance boost for many
      applications. The JIT-compiler is enabled by default on most
      x86 64-bit platforms that have a C++ compiler that can
      compile C++17. To verify that a JIT enabled emulator is
      running you can use erlang:system_info(emu_flavor).
    * A compatibility adaptor for gen_tcp to use the new socket API
      has been implemented (gen_tcp_socket).
    * Extended error information for failing BIF calls as proposed
      in EEP 54 has been implemented.
    * Process aliases as outlined by EEP 53 has been introduced.
    * Implementation of EEP 56 in supervisor. It adds the concept
      of significant children as well as the auto_shutdown
      supervisor flag. See the supervisor manual page for more
      information.
    - ftp:
    * Add support for FTPES (explicit FTP over TLS).
    - ssl:
    * Make TLS handshakes in Erlang distribution concurrent.
    * TLS connections now support EdDSA certificates.
    - wx:
    * The application has been completely rewritten in order to use
      wxWidgets version 3 as its base.
    * Added support for wxWebView.
    - edoc:
    * EDoc is now capable of emitting EEP-48 doc chunks. This means
      that, with some configuration, community projects can now
      provide documentation for shell_docs the same way that OTP
      libraries did since OTP 23.0.
* Thu Apr 08 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Pack doc/chunks into %{_libdir} (boo#1184492)
* Sun Jan 17 2021 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Use wxWidgets < 3.1 (boo#1180488)
* Fri Jan 15 2021 matwey.kornilov@gmail.com
  - Changes for 23.2.2:
    * crypto: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
      script sources.
    * odbc: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
      script sources.
    * snmp: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
      script sources.
    * erts: The suspend_process() and resume_process() BIFs did not
      check their arguments properly which could cause an emulator
      crash.
    * erts: The runtime system would get into an infinite loop if the
      runtime system was started with more than 1023 file descriptors
      already open.
    * megaco: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
      script sources.
    * erl_interface: Integers outside of the range [-(1 bsl 32) - 1,
      (1 bsl 32) -1] were previously intended to be printed in an
      internal bignum format by ei_print_term() and
      ei_s_print_term(). Unfortunately the implementation has been
      buggy since OTP R13B02 and since then produced results with
      random content which also could crash the calling program. This
      fix replaces the printing of the internal format with printing
      in hexadecimal form and extend the range for printing in
      decimal form. Currently integers in the range [-(1 bsl 64), (1
      bsl 64)] are printed in decimal form and integers outside of
      this range in Erlang hexadecimal form.
    * erl_interface: The ei API for decoding/encoding terms is not
      fully 64-bit compatible since terms that have a representation
      on the external term format larger than 2 GB cannot be handled.
    * ssl: Fix CVE-2020-35733 this only affects ssl-10.2 (OTP-23.2).
      This vulnerability could enable a man in the middle attack
      using a fake chain to a known trusted ROOT. Also limits
      alternative chain handling, for handling of possibly extraneous
      certs, to improve memory management.
    * ssl: Add support for AES CCM based cipher suites defined in RFC
      7251 Also Correct cipher suite name conversion to OpenSSL
      names. A few names where corrected earlier in OTP-16267 For
      backwards compatible reasons we support usage of openSSL names
      for cipher suites. Mostly anonymous suites names where
      incorrect, but also some legacy suites.
  - Changes for 23.2.1:
    * erts: Fix emulator crash when sending small bit-strings over
      Erlang distribution while the connection is being setup. The
      fault was introduced in OTP-23.0
  - Changes for 23.2:
    * erl_docgen: Fix links in titles to github and anchors to work.
    * erl_docgen: Fix some typing errors on variable names in
      documentation examples.
    * mnesia: Avoid potential performance issue, if the input queue
      to mnesia_tm is long.
    * crypto: Build the supported curves cache in the NIF when crypto
      is loaded, no matter how it is loaded. This prevents a possible
      problem with different processes starting the crypto
      application concurrently.
    * crypto: It is now possible to build with crypto and openssl
      gprof-enabled and statically link them into the VM.
    * crypto: Fixed performance loss in HMAC when using older OpenSSL
      due to mutex issues. A workaround is implemented to allow
      fallback from using the EVP API for HMAC operations. On some
      architectures this may improve the performance, especially with
      old OpenSSL versions. This fallback to low-level functions is
      always enabled for openssl versions before 1.0.2.
    * kernel: The apply call's in logger.hrl are now called with
      erlang prefix to avoid clashed with local apply/3 functions.
    * kernel: Fix memory leak in pg.
    * kernel: Fix crash in logger_proxy due to stray gen_server:call
      replies not being handled. The stray replies come when logger
      is under heavy load and the flow control mechanism is reaching
      its limit.
    * kernel: Fixed a bug in erl_epmd:names() that caused it to
      return the illegal return value noport instead of {error,
      Reason} where Reason is the actual error reason. This bug also
      propagated to net_adm:names(). This bug was introduced in
      kernel version 7.1 (OTP 23.1).
    * kernel: Add export of some resolver documented types.
    * kernel: Add configurable retry timeout for resolver lookups.
    * kernel: gen_server:multi_call() has been optimized in the
      special case of only calling the local node with timeout set to
      infinity.
    * public_key: Corrected dialyzer spec for pkix_path_validation/3
    * snmp: If an attempt was made to send a v1 trap on a IPv6
      transport this could cause a master agent crash (if the agent
      was *not* multi-threaded).
    * snmp: The deprecation info for a couple of the deprecated MIB
      compiler functions where incorrect. Referred to functions in
      the 'snmpa' module instead of 'snmpc'.
    * snmp: Make it possible for the agent to configure separate
      transports (sockets) for request-responder and trap-sender.
    * snmp: The mib server cache handling has been improved. First,
      the default gclimit has been changed from 100 to infinity (to
      ensure the size is as small as possible). Also, the method of
      removing old elements has been optimized.
    * snmp: It is now possible to configure the agent in such a way
      that the order of outgoing notifications are processed in order
      in the agent. What happens after the notification message has
      left the agent (been sent) is of course still out of our
      control.
    * snmp: Improve handling of the udp_error message. Basically an
      improved error/warning message.
    * wx: Add popup menu callback to wxTaskBarIcon:new/1.
    * dialyzer: Clarify warning option -Wunmatched_returns in
      dialyzer(3).
    * tools: Correct the Xref analysis exports_not_used to not report
      internally generated behaviour_info/1.
    * syntax_tools: In the syntax_tools application, the igor module
      and all functions in erl_tidy except file/2 have been
      deprecated.
    * compiler: Several minor compiler bugs have been fixed:
      Constructing a binary with a list as a size of a binary segment
      could generate a BEAM file that could not be loaded. When
      matching a binary segment of type float and ignoring the
      matched out value, the match would always succeed, even if the
      size was invalid or the value of the float was NaN or some
      other non-numeric float value. Attempting to construct an
      invalid external fun (e.g. fun m:f:bad) is supposed to raise a
      'badarg' exception, but if the value was never used, no
      exception would be raised.
    * compiler: Fixed multiple bugs in the validator that could cause
      it to reject valid code.
    * compiler: The compiler could crash when a binary comprehension
      had a generator that depended on another generator.
    * compiler: Fixed a bug in the type optimization pass that could
      yield incorrect values or cause the wrong clauses to be
      executed.
    * erts: Fixed bug which could cause VM crash when a NIF is loaded
      at the same time as the Erlang implementation of the NIF is
      called. Bug exists since OTP 23.0.
    * erts: Fixed enif_make_map_* functions in debug build when given
      environment from enif_alloc_env.
    * erts: Fixed broken configuration option --disable-pie.
    * erts: Fixed rare distribution bug in race between received
      signal (link/monitor/spawn_request/spawn_reply) and
      disconnection. Symptom: VM crash. Since: OTP 21.0.
    * erts: Fixed a performance issue when extremely many items were
      stored in the process dictionary. (Fixing this bug also
      eliminates a compiler warning emitted by the latest version of
      Clang.)
    * erts: Remove -ftree-copyrename from flags passed to compiler
      when building erts. The flag is not used by modern gcc's and is
      not supported by clang.
    * erts: Modules using complicated nested binary comprehensions
      could fail to load.
    * erts: Fixed a race in file:read_file/1 were an incomplete file
      could be returned if another OS process swapped the file out
      while reading.
    * erts: The call list_to_integer("10", true) would return 4
      instead of raising an exception. Certain other atoms would also
      be interpreted as a number base.
    * erts: On macOS 11 (Big Sur), erl would not start if the maximum
      number of file descriptors were unlimited (ulimit -n
      unlimited).
    * erts: Add manifest to all executables and dynamic libraries.
    * xmerl: Corrected namespace and expanded name in the old dom
      backend example module.
    * xmerl: Corrected a bug that in some cases didn't allow
      unresolved references when skip_external_dtd option used.
    * ssh: Fixed problems in the ssh cli/shell handling. Most
      important are: 1) the ssh:shell function did sometimes cause
      the input to be echoed twice, 2) the ssh:shell function didn't
      transfer the LANG and LC_ALL shell variables to the connected
      server which sometimes made Unicode handling erroneous, 3)
      Unicode was not always transferred correctly to and from the
      peer.
    * ssh: The SSH protocol message SSH_MSG_DISCONNECT was sometimes
      sent instead of SSH_MSG_CHANNEL_FAILURE
    * ssh: The ssh_cli module now always sends the exit-status to
      connected clients so they can use that to check for successful
      command execution.
    * ssh: A new option pk_check_user enables checking of the
      client's user name in the server when doing public key
      authentication.
    * stdlib: This change fixes the handling of deep lists in the
      path component when using uri_string:recompose/1.
    * stdlib: Fix shell_docs to clear shell decorations
      (bold/underline) when paginating output. Fix various small
      renderings issues when integrating shell_docs with edoc.
    * stdlib: Improved the API and documentation of the uri_string
      module. Added a new chapter to the Users Guide about Uniform
      Resource Identifiers and their handling with the new API. Added
      two new API functions: uri_string:allowed_characters/0 and
      uri_string:percent_decode/1. This change has been marked as
      potentially incompatible as uri_string:normalize/2 used to
      decode percent-encoded character triplets that corresponded to
      characters not in the reserved set. After this change,
      uri_string:normalize/2 will only decode those percent-encoded
      triplets that correspond to characters in the unreserved set
      (ALPHA / DIGIT / "-" / "." / "_" / "~"). *** POTENTIAL
      INCOMPATIBILITY ***
    * stdlib: The shell_docs module has been expanded with the
      possibility to configure unicode, ansi and column size for the
      rendered text.
    * megaco: Empty statistics descriptor (now) allowed in both
      encode and decode for version 3.
    * ssl: SSL's Erlang Distribution Protocol modules inet_tls_dist
      and inet6_tls_dist lacked a callback function, so the start
      flag "-dist_listen false" did not work, which has now been
      fixed.
    * ssl: Correct OpenSSL names for newer cipher suites using DHE in
      their name that accidentally got the wrong value when fixing
      other older names using EDH instead.
    * ssl: This change improves the handling of DTLS listening
      dockets, making it possible to open multiple listeners on the
      same port with different IP addresses.
    * ssl: Fix a bug that causes cross-build failure. This change
      excludes the ssl.d dependency file from the source tarballs.
    * ssl: This change fixes ssl:peername/1 when called on a DTLS
      client socket.
    * ssl: Retain emulation of active once on a closed socket to
      behave as before 23.1
    * ssl: Corrected server session cache entry deletion pre TLS-1.3.
      May increase session reuse.
    * ssl: Handle extraneous certs in certificate chains as well as
      chains that are incomplete but can be reconstructed or
      unordered chains. The cert and certfile options will now accept
      a list of certificates so that the user may specify the chain
      explicitly. Also, the default value of the depth option has
      been increased to allow longer chains by default.
    * ssl: This change implements optional NSS-style keylog in
      ssl:connection_information/2 for debugging purposes. The keylog
      contains various TLS secrets that can be loaded in Wireshark to
      decrypt TLS packets.
    * ssl: Use new gen_statem feature of changing callback mode to
      improve code maintainability.
    * ssl: The handling of Service Name Indication has been aligned
      with RFC8446.
    * ssl: Add explicit session reuse option to TLS clients for pre
      TLS-1.3 sessions. Also, add documentation to Users Guide for
      such sessions.
    * inets: Fix an issue about HTML-escaped filename in inets.
    * common_test: Add behaviour for test suites
  - Changes for 23.1.5:
    * ssh: An ssh-client can take an accepted socket from a listening
      socket and do an ssh:connect/2 on it. Multiple clients on
      sockets accepted from the same listening socket had stopped
      working. This is corrected now.
  - Changes for 23.1.4:
    * ssh: The inet option raw was not passed on from the ssh option
      list to inet.
* Wed Nov 18 2020 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Changes for 23.1.3:
    * erts: Fixed a crash when exceptions were thrown during call
      time tracing.
    * ssh: A supervisor sub-tree could be left if the connection
      handler process is brutally killed. This will make the
      max_sessions checking option to count the existing sessions
      erroneously and could finally block further sessions.
  - Changes for 23.1.2:
    * compiler: Fixed a bug in the boolean optimization pass that
      caused the compiler to confuse different clauses.
    * erts: Fixed bugs causing issues when enabling the ERTS internal
      allocators on a system built with the undocumented and
      unsupported SMALL_MEMORY feature.
    * erts: The inet driver used to use 16 as maximum elements in an
      I/O vector passed to writev() (and WSASend() on Windows). When
      the data to send contained lots of elements, this caused a
      performance degradation since repeated calls to writev() had to
      be made to a much larger extent. The inet driver now looks up
      actual maximum amount of elements that can be used on the
      system, instead of just assuming 16. On most systems this will
      result in a maximum amount of I/O vector elements of 1024. As
      of OTP 23.0 the term encoding of signals to send over the
      distribution are encoded into I/O vectors of buffers instead of
      into a single buffer. Reference counted binaries are referred
      to directly from the I/O vector instead of being copied into
      the single buffer. That is, Erlang signals containing huge
      amounts of reference counted binaries was effected by this
      performance degradation.
    * erts: In the distributed case, a faulty reply option in a call
      to the spawn_request() BIF erroneously caused a badarg
      exception instead of a badopt error message reply.
* Tue Oct 06 2020 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Changes for 23.1.1:
    * erts: inet:setopts([{active,once}]) wakes up IO polling thread
      unnecessarily, leading to lock contention and visibly higher
      CPU utilization.
    * erts: Two bugs in the ERTS internal thread wakeup functionality
      have been fixed. These bugs mainly hit when all threads in the
      system tried to go to sleep. When the bugs were triggered,
      certain operations were delayed until a thread woke up due to
      some other reason. Most important operations effected were code
      loading, persistent term updates, and memory deallocation.
    * erts: Fixed bug in ets:select_replace/2 on compressed tables
      that could produce faulty results or VM crash. Bug exists since
      OTP 20.
    * erts: When compiling Erlang/OTP on macOS using Xcode 12, the
      performance of the BEAM interpreter would be degraded.
    * erts: As of OTP 22, the allocator specific memory carrier pools
      were replaced by a node global carrier pool. This unfortunately
      caused substantial memory fragmentation in some cases due to
      long lived data being spread into carriers used by allocators
      mainly handling short lived data. A new command line argument
      +M<S>cp has been introduced with which one can enable the old
      behavior as well as configuring other behaviors for the carrier
      pools. In order to configure the old behavior, with allocator
      specific carrier pools for all allocators, pass +Mucp :
      (including the colon character) as a command line argument to
      erl when starting the Erlang system. The default configuration
      for carrier pools will be changed to +Mucp : some time in the
      future, but not in this patch.
    * os_mon: The configuration parameter
      memsup_improved_system_memory_data has been introduced. It can
      be used to modify the result returned by
      memsup:get_system_memory_data(). For more information see the
      memsup documentation. Note that the configuration parameter is
      intended to be removed in OTP 24 and the modified result is
      intended to be used as of OTP 24.
    * ssh: Fix decoder bug.
    * compiler: Fixed a performance bug that could be triggered by
      tuple matching in very large functions.
    * public_key: Fix the issue that pem_decode will crash with an
      invalid input.
  - Changes for 23.1:
    * kernel: A fallback has been implemented for file:sendfile when
      using inet_backend socket
    * kernel: Make default TCP distribution honour option backlog in
      inet_dist_listen_options.
    * kernel: Raw option handling for the experimental gen_tcp_socket
      backend was broken so that all raw options were ignored by for
      example gen_tcp:listen/2, a bug that now has been fixed.
      Reported by Jan Uhlig.
    * kernel: Accept fails with inet-backend socket.
    * kernel: Fixed various minor errors in the socket backend of
      gen_tcp.
    * kernel: Correct disk_log:truncate/1 to count the header. Also
      correct the documentation to state that disk_log:truncate/1 can
      be used with external disk logs.
    * kernel: Fix erl_epmd:port_please/2,3 type specs to include all
      possible error values.
    * kernel: Fix erl -erl_epmd_port to work properly. Before this
      fix it did not work at all.
    * kernel: Fix typespec for internal function
      erlang:seq_trace_info/1 to allow term() as returned label. This
      in turn fixes so that calls to seq_trace:get_token/1 can be
      correctly analyzer by dialyzer.
    * kernel: Fix erroneous double registration of processes in pg
      when distribution is dynamically started.
    * kernel: Make (use of) the socket registry optional (still
      enabled by default). Its now possible to build OTP with the
      socket registry turned off, turn it off by setting an
      environment variable and controlling in runtime (via function
      calls and arguments when creating sockets).
    * kernel: erl -remsh nodename no longer requires the hostname to
      be given when used together with dynamic nodenames.
    * observer: Fix graph windows flickering on windows.
    * mnesia: FIx mnesia delete object handling in transaction
      storage. In a transaction mnesia:read/1 could indicate that
      exiting objects did not exist after another object was deleted.
    * mnesia: Fixed crash during startup, which could happen if a
      table was deleted on another node.
    * stdlib: The functions digraph:in_edges/2 and
      digraph:out_edges/2 would return false edges if called for a
      vertex that had a '_' atom in its name term.
    * stdlib: filelib:wildcard("not-a-directory/..") should return an
      empty list. On Windows it returned "not-a-directory/..".
    * stdlib: Fix the typespec of shell_docs:render to use the
      correct type for an MFA.
    * stdlib: Fix uri_string:recompose/1 when host is present but
      input path is not absolute. This change prevents the recompose
      operation to change the top level domain of the host when the
      path does not start with a slash.
    * stdlib: The epp module would return a badly formed error term
      when an 'if' preprocessor directive referenced an undefined
      symbol. epp:format_error/1 would crash when called with the bad
      error term.
    * stdlib: lists:sublist(List, Start, Len) failed with an
      exception if Start > length(List) + 1 even though it is
      explicitly documented that "It is not an error for Start+Len to
      exceed the length of the list".
    * tools: Correct the Xref analysis locals_not_used to find
      functions called exclusively from on_load functions.
    * erts: Update the documentation of the abstract format to use
      ANNO instead of LINE.
    * erts: The emulator will no longer revert to the default number
      of schedulers when running under a CPU quota lower than 1 CPU.
    * erts: Fixed a problem with crash dumps. When a process that
      contained reference to literals internally created by the
      runtime system (such as the tuple returned by os:type/0), the
      literal would not be included in the crash dump and the
      crashdump viewer would complain about the heap being
      incomplete.
    * erts: Fix configure detection of PGO for clang.
    * erts: The to_erl program has been fixed to correctly interpret
      newline as only newline and not newline+return. This bug would
      cause the terminal to behave strangely when using lines longer
      than the terminal size.
    * erts: A race condition when changing process priority by
      calling process_flag(priority, Prio) could cause elevation of
      priority for a system task to be ignored. This bug hit if the
      system task was scheduled on the process calling process_flag()
      at the same time as the priority was changed. The bug is quite
      harmless and should hit very seldom if ever.
    * erts: Adjust /bin/sh to /system/bin/sh in scripts when
      installing on Android.
    * erts: In rare circumstances, when loading a BEAM file generated
      by an alternative code generator (not the Erlang compiler in
      OTP) or from handwritten or patched BEAM code, the loader could
      do an unsafe optimization.
    * erts: A memory and file descriptor leak in socket has been
      fixed. (When a newly opened socket that had not entered the fd
      into the VM's poll set (neither received, sent, accepted nor
      connected) was abandoned without closing (process died), after
      assigning a different controlling process, then a memory block
      and the file descriptor could be leaked.)
    * erts: The documentation of statistics(run_queue) erroneously
      stated that it returns the total length of all normal run
      queues when it is the total length of all normal and dirty CPU
      run queues that is returned. The documentation has been updated
      to reflect the actual behavior.
    * erts: Changes in order to build on the Haiku operating system.
      Thanks to Calvin Buckley
    * erts: When building the inet driver on Windows, there where
      many compiler warnings regarding type casting (used when
      calling the debug macro). This has now been resolved.
    * erts: Make (use of) the socket registry optional (still enabled
      by default). Its now possible to build OTP with the socket
      registry turned off, turn it off by setting an environment
      variable and controlling in runtime (via function calls and
      arguments when creating sockets).
    * erts: Change default filename encoding on android to UTF-8.
    * erts: Clarification of the format of the atom cache header used
      by the distribution.
    * erl_docgen: Repaired lost function "since" versions in the
      right margin of the module reference HTML documentation.
    * erl_docgen: Remove erlang compilation warnings and trailing
      whitespaces.
    * ftp: Avoid timing issue when setting active once on a socket
      that is being closed by the peer.
    * ftp: Avoid timing issue when setting active once on a socket
      that is being closed by the peer.
    * dialyzer: In rare circumstance, dialyzer wold crash when
      analyzing a list comprehension.
    * eunit: Fixed compiler warning.
    * snmp: For agent fix PrivParams for SNMPv3 USM with AES privacy,
      as earlier fixed for the manager in OTP_16541.
    * snmp: The SNMP Agent missed to re-activate datagram reception
      in an odd timeout case and went deaf. This bug has been fixed.
    * snmp: Use of deprecated functions in example 2 has been removed
      (no more compiler warnings).
    * snmp: A file descriptor leak has been plugged. When calling the
      reconfigure function of a mib, it opened the config file(s) but
      never closed them on successful read.
    * asn1: Changes in order to build on the Haiku operating system.
      Thanks to Calvin Buckley
    * syntax_tools: Minor documentation fix of erl_syntax:operator/1.
    * erl_interface: Fix erl_interface on windows to be compiled with
      correct flags to make internal primitives reentrant.
    * erl_interface: Fixed ei_get_type to set *size to zero for
      floats, pids, port and refs according to documentation.
    * erl_interface: Fix ei_connect when using a dynamic node name to
      force usage of distribution version 6. This bug caused erl_call
    - R -address to not work properly.
    * erl_interface: Changes in order to build on the Haiku operating
      system. Thanks to Calvin Buckley
    * erl_interface: The ei API for decoding/encoding terms is not
      fully 64-bit compatible since terms that have a representation
      on the external term format larger than 2 GB cannot be handled.
    * ssl: If a passive socket is created, ssl:recv/2,3 is never
      called and then the peer closes the socket the controlling
      process will no longer receive an active close message.
    * ssl: Data deliver with ssl:recv/2,3 could fail for when using
      packet mode. This has been fixed by correcting the flow control
      handling of passive sockets when packet mode is used.
    * ssl: This change fixes a potential man-in-the-middle
      vulnerability when the ssl client is configured to
      automatically handle session tickets ({session_tickets, auto}).
    * ssl: Fix the internal handling of options 'verify' and
      'verify_fun'. This change fixes a vulnerability when setting
      the ssl option 'verify' to verify_peer in a continued handshake
      won't take any effect resulting in the acceptance of expired
      peer certificates.
    * ssl: This change fixes the handling of stateless session
      tickets when anti-replay is enabled.
    * ssl: Fix a crash due to the faulty handling of stateful session
      tickets received by servers expecting stateless session
      tickets. This change also improves the handling of
      faulty/invalid tickets.
    * ssl: Correct flow ctrl checks from OTP-16764 to work as
      intended. Probably will not have a noticeable affect but will
      make connections more well behaved under some circumstances.
    * ssl: Distribution over TLS could exhibit livelock-like
      behaviour when there is a constant stream of distribution
      messages. Distribution data is now chunked every 16 Mb to avoid
      that.
    * ssl: Implement the cookie extension for TLS 1.3.
    * ssl: Experimental OCSP client support.
    * ssl: TLS 1.0 -TLS-1.2 sessions tables now have a absolute max
      value instead of using a shrinking mechanism when reaching the
      limit. To avoid out of memory problems under heavy load
      situations. Note that this change infers that implementations
      of ssl_session_cache_api needs to implement the size function
      (introduce in OTP 19) for session reuse to be optimally
      utilized.
    * os_mon: memsup now returns the correct amount of system memory
      on macOS.
    * os_mon: Fix memsup:get_os_wordsize/0 to return the current size
      on aarch64.
    * ssh: Fixed a bug when a message to ssh-agent was divided into
      separate packets.
    * ssh: Fix a bug that could crash the cli server if a too large
      cli-window was requested from the client.
    * ssh: Increased test coverage.
    * ssh: A chapter about hardening the OTP SSH is added to the
      User's Guide.
    * ssh: The internal Diffie-Hellman high level API for key
      generation was slow in old and by OpenSSL now unsupported
      cryptolib versions (1.0.1 and earlier). If such a cryptolib is
      used anyhow, the low-level API is used internally in the crypto
      application.
    * ssh: A new timeout is defined for daemons: hello_timeout. The
      timeout is supposed to be used as a simple DoS attack
      protection. It closes an incoming TCP-connection if no valid
      first SSH message is received from the client within the
      timeout limit after the TCP initial connection setup. The
      initial value is 30s by compatibility reasons, but could be
      lowered if needed, for example in the code or in a config file.
    * inets: Clarify the handling of percent encoded characters in
      http client.
    * inets: fix crash for undefined port in uri.
    * inets: Avoid timing issue when setting active once on a socket
      that is being closed by the peer.
    * inets: Handle message body of response with 1XX status code as
      next http message.
    * inets: Fix a crash in http server when setopts is called on a
      socket closed by the peer.
    * inets: A vulnerability in the httpd module (inets application)
      regarding directory traversal that was introduced in OTP 22.3.1
      and corrected in OTP 22.3.4.6. It was also introduced in OTP
      23.0 and corrected in OTP 23.1 The vulnerability is registered
      as CVE-2020-25623 (boo#1177354) The vulnerability is only exposed
      if the http server (httpd) in the inets application is used. The
      vulnerability makes it possible to read arbitrary files which
      the Erlang system has read access to with for example a
      specially prepared http request.
    * inets: Add support of PATCH method in mod_esi.
    * compiler: If the update of a map with the 'Map#{Key := Value}'
      syntax failed, the line number in the stack backtrace could be
      incorrect.
    * compiler: Fixed a performance bug that slowed down compilation
      of modules with deeply nested terms.
    * compiler: The compiler could in rare circumstances do an an
      unsafe optimization that would result in a matching of a nested
      map pattern would fail to match.
    * compiler: Fixed a bug in the validator that caused it to reject
      valid code.
    * public_key: Fixed an insignificant whitespace issue when
      decoding PEM file.
    * public_key: Experimental OCSP client support.
    * public_key: Use user returned path validation error for
      selfsigned cert. It allows users of the ssl application to
      customize the generated TLS alert, within the range of defined
      alerts.
    * public_key: add API function to retrieve the subject-ID of an
      X509 certificate
    * runtime_tools: Fixed a crash in appmon_info triggered by trying
      to read port info from a port that was in the process of
      terminating. appmon_info is used by observer to get information
      from the observed node.
    * megaco: The expected number of warnings when (yecc) generating
      v2 and v3 (text) parser's was incorrect.
    * hipe: Fixed a warning issued when building the hipe
      application.
    * odbc: Changes in order to build on the Haiku operating system.
      Thanks to Calvin Buckley
    * crypto: Fix type spec bug in crypto for crypto_init and
      crypto:one_time
    * crypto: The deprecation message for crypto:rand_uniform/2
      indicated a non-existent function. The correct one
      (rand:uniform/1) is now suggested.
    * crypto: Implemented a workaround to allow fallback from using
      the EVP API for Diffie-Hellman key generation
    * crypto: The internal Diffie-Hellman high level API for key
      generation was slow in old and by OpenSSL now unsupported
      cryptolib versions (1.0.1 and earlier). If such a cryptolib is
      used anyhow, the low-level API is used internally in the crypto
      application.
    * sasl: Make release_handler more resilient against exiting
      processes during upgrade.
  - Changes for 23.0.4:
    * stdlib: When a temporary child of a simple_one_for_one
      supervisor died, the internal state of the supervisor would be
      corrupted in a way that would cause the supervisor to retain
      the start arguments for subsequent children started by the
      supervisor, causing unnecessary growth of the supervisor's
      heap. There state corruption could potentially cause other
      problems as well.
    * erts: The ERTS internal I/O poll implementation could get into
      an inconsistent state causing input events to be ignored.
    * megaco: The v2 and v3 parsers could not properly decode some
      IPv6 addresses.
* Mon Aug 24 2020 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Changes for 23.0.3:
    * erts: Fixed bug in erlang:load_nif/2 that could cause it to
      throw badarg exception if a concurrent code change operation
      was in progress. Bug existed since OTP 23.0.
    * erts: Minor fix of debug compiled VM.
    * erts: An unintentional reuse of an already used emulator
      internal event object could cause a wakeup signal to a thread
      to be lost. In worst case this could cause the runtime system
      to hang. This hang was however quite rare.
    * erts: NIF threads and driver threads on non-Linux systems
      leaked internal resources when terminating. On Windows these
      resources were one event per thread. On most other systems one
      mutex and one condition variable per thread. On these other
      systems that also lacked pthread_cond_timedwait() also a pipe
      with its file descriptors was leaked.
    * compiler: When calls to is_map_key were repeated, the compiler
      could terminate with an internal consistency failure.
    * compiler: Fixed a bug in the type inference pass that could
      cause the compiler to hang.
* Fri Jun 12 2020 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Changes for 23.0.2:
    * erts: Fixed bug when sending an export fun (eg lists:reverse/1)
      on a not yet established connection. It could cause VM crash.
      Bug exists since OTP 23.0.
    * megaco: The mini parser could not properly decode some IPv6
      addresses.
  - Changes for 23.0.1:
    * erts: The functionality utilized by BIFs for temporary
      disabling of garbage collection while yielding could cause
      system task queues to become inconsistent on a process
      executing such a BIF. Process system tasks are for example
      utilized when purging code, garbage collecting literal data,
      and when issuing an ordinary garbage collection from another
      process. The bug does not trigger frequently. Multiple code
      purges in direct sequence makes it more likely that this bug is
      triggered. In the cases observed, this has resulted in a
      hanging code purge operation.
    * erts: SCTP and UDP recv/2,3 hangs indefinitely if socket is
      closed while recv is called (socket in passive mode).
    * compiler: In rare circumstances, a guard using 'not' could
      evaluate to the wrong boolean value.
    * compiler: A guard expression that referenced a variable bound
      to a boolean expression could evaluate to the wrong value.
* Fri Jun 12 2020 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Version 23.0:
  - Potential Incompatibilities:
    * SSL:Support for SSL 3.0 is completely removed. TLS 1.3 is added
      to the list of default supported versions.
    * erl_interface: Removed the deprecated parts of erl_interface
      (erl_interface.h and essentially all C functions with prefix
      erl_).
    * The deprecated erlang:get_stacktrace/0 BIF now returns an empty
      list instead of a stacktrace. erlang:get_stacktrace/0 is
      scheduled for removal in OTP 24.
  - Improvements and new features:
    * ssh: OpenSSH 6.5 introduced a new file representation of keys
      called openssh-key-v1. This is now supported with the exception
      of handling encrypted keys.
    * Algorithm configuration could now be done in a .config file. This
      is useful for example to enable an algorithm that is disabled by
      default without need to change the code.
    * SSL: Support for the middlebox compatibility mode makes the TLS
      1.3 handshake look more like a TLS 1.2 handshake and increases
      the chance of successfully establishing TLS 1.3 connections
      through legacy middleboxes.
    * Add support for key exchange with Edward curves and PSS-RSA
      padding in signature verification
    * The possibility to run Erlang distribution without relying on
      EPMD has been extended.
    * A first EXPERIMENTAL socket backend to gen_tcp and inet has been
      implemented. gen_udp and gen_sctp will follow.
    * Putting {inet_backend, socket} as first option to listen() or
      connect() makes it easy to try this for existing code
    * A new module erpc in kernel which implements an enhanced subset
      of the operations provided by the rpc module. Enhanced in the
      sense that it makes it possible to distinguish between returned
      value, raised exceptions and other errors. erpc also has better
      performance and scalability than the original rpc implementation.
      This by utilizing the newly introduced spawn_request() BIF. Also
      the rpc module benefits from these improvements by utilizing erpc
      when possible.
    * Scalability and performance Improvements plus new functionality
      regarding distributed spawn operations.
    * In binary matching, the size of the segment to be matched is now
      allowed to be a guard expression (EEP-52)
    * When matching with maps the keys can now be guard expressions
      (EEP-52).
    * ssh: support for TCP/IP port forwarding, a.k.a tunnelling a.k.a
      as tcp-forward/direct-tcp is implemented. In the OpenSSH client,
      this corresponds to the options -L and -R.
    * Allow underscores in numeric literals to improve readability.
      Examples: 123_456_789, 16#1234_ABCD.
    * New functions in the shell for displaying documentation for
      Erlang modules, functions and types.
    * kernel: The module pg with a new implementation of distributed
      named process groups is introduced. The old module pg2 is
      deprecated and scheduled for removal in OTP 24.
* Wed Mar 25 2020 g.santomaggio@gmail.com
  - Changes for 22.3:
    * compiler: A 'receive' with an 'after 0' clause would prevent
      the optimization that can avoid scanning the entire receive
      queue when matching on a newly created reference.
    * compiler: HiPE can again handle modules with catch and try
      constructs.
    * compiler: Fixed a bug in bit-syntax optimization that could
      crash the compiler.
    * crypto: Fixed potential memory leaks involving calls to the
      crypto ng_api.
    * common_test: Document incl_apps cover option
    * common_test: The ct_property_test has now a report function for
      results of stateful testing.
    * common_test: Don't hide error reasons from user
    * stdlib: Fix type specification for uri_string:normalize/2 that
      may also return error().
    * stdlib: Improve error handling in uri_string:normalize/2. This
      change fixes a crash when the input URI has faulty percent-
      encoding.
    * stdlib: Fix minor bugs in the Erlang pretty printer (erl_pp).
    * stdlib: Fix the Erlang parser regarding consecutive unary
      operators.
    * stdlib: Let calendar:rfc3339_to_system_time() crash when the
      time offset is missing.
    * stdlib: Implement uri_string:resolve/{2,3} that can be used to
      resolve a URI reference against a base URI.
    * stdlib: In gen_statem it is now possible to change the callback
      module for a running server. See gen_statem's documentation for
      change_callback_module, push_callback_module, and
      pop_callback_module.
    * ssl: Correct handling of TLS record limit in TLS-1.3. The max
      value differs from previous versions. Also the payload data max
      record check was broken, that is record overflow problems could
      occur if user sent large amounts of data.
    * ssl: Correct close handling for DTLS
    * ssl: Fix ssl:getstat/1-2 to also work for DTLS sockets
    * ssl: Correct internal handling och socket active mode to avoid
      reviving TCP data aimed for a downgraded TLS socket.
    * ssl: When using the host name as fallback for SNI (server name
      indication) strip a possible trailing dot that is allowed in a
      host name but not in the SNI. Also if the server receives a SNI
      with a trailing dot send an UNRECOGNIZED_NAME alert.
    * ssl: Immediately remove session entries if handshake is
      abruptly closed at transport level.
    * ssl: Implementation of the key and initialization vector update
      feature, and general hardening of TLS 1.3. There are
      cryptographic limits on the amount of plaintext which can be
      safely encrypted under a given set of keys. This change
      enforces those limits by triggering automatic key updates on
      TLS 1.3 connections.
    * ssl: Add support for TLS 1.3 Session Tickets (stateful and
      stateless). This allows session resumption using keying
      material from a previous successful handshake.
    * ssl: Add support for key exchange with Edward curves and PSS-
      RSA padding in signature verification.
    * megaco: The documented function
      megaco:get_sdp_record_from_PropertGroup/2 was a wrapper for
      megaco_sdp:get_sdp_record_from_PropertGroup/2 but did not
      actually exist. This has now been fixed.
    * megaco: Test suite completely reworked. Add (timestamp) utility
      functions for debugging and testing.
    * erl_interface: Fix link error "multiple definition of
      `ei_default_socket_callbacks'" for gcc version 10 or when built
      with gcc option -fno-common. Error exists since OTP-21.3.
    * asn1: Fix 'DEFAULT' with 'OCTET STRING' and 'SEQUENCE OF
      CHOICE' with extensions.
    * erts: gen_udp:recv(S, N, 0) corrupted the internal state for
      the socket so after receive with {active, once} it always
      returned {error, timeout}, and wasted the received UDP packets.
      This bug has now been fixed. Reported and pinpointed by
      Alexander Petrovsky.
    * erts: The atom esock_atom_user and esock_atom_kernel was never
      actually created. This has now been corrected.
    * erts: Fixed bug in socket module that could potentially lead to
      scheduler deadlocks.
    * erts: Fix bug causing VM crash if down or stop callback of a
      NIF resource is called after the NIF module has been purged.
      The fix will postpone unloading until all such resource objects
      have been garbage collected.
    * erts: Fixed bug in ets:update_counter/4, when called with an
      invalid UpdateOp and a Key that does not exist, causing
      ets:info(T,size) to return incorrect values. Bug exists since
      OTP-19.0.2.
    * erts: Fix potential heap corrupting bugs when a process calls a
      BIF that blocks other normal schedulers and then writes to its
      own heap without the main process lock. A NIF running on a
      dirty scheduler trying to interact with such a process could
      corrupt its heap. The fixed BIFs were related to code loading
      and tracing.
    * erts: Fixed bug in erlang:list_to_ref/1 when called with a
      reference created by a remote note. Function list_to_ref/1 is
      intended for debugging and not to be used in application
      programs. Bug exist since OTP 20.0.
    * erts: The prim_net nif (net/kernel) made use of an undefined
      atom, notsup. This has now been corrected.
    * erts: Corrected the valid range of the erl command line
      argument +SDio <NumberOfDirtyIoSchedulers> from 0..1024 to
      1..1024. +SDio 0 was erroneously allowed which just caused the
      VM to crash on the first dirty I/O job scheduled.
    * erts: Fix a crash when attempting to log faults when loading
      files during early boot.
    * erts: For socket, not all send and receive flags are supported
      on all platforms. In order to (at least) simplify testing, the
      socket:supports/0,1,2,3 functions has been extended with
      send_flags and recv_flags items, which indicates what the
      current platform can manage.
    * erts: Add a "full featured" version of getifaddrs in the net
      module.
    * erts: The options busy_limits_port and busy_limits_msgq have
      been added to the BIF erlang:open_port/2. The busy_limits_port
      option can be used for controlling the busy state of a port
      executing the spawn_driver or the fd_driver. The
      busy_limits_msgq option can be used for controlling the busy
      state of the port message queue.
    * erts: A socket "registry" has been added making it possible to
      list current open sockets.
    * erts: The counters managed by the socket nif has been extended.
      Their "size" has been increased from 32 bit to 64. Two max
      package size (for read and write) has been added. And four
      accept counters has been added.
    * erts: Add gcc option -fno-common to detect accidental name
      clashes of global variables.
    * erts: New dynamic lock checker that verifies locking orders and
      detects potential deadlock bugs in drivers and NIFs. Enabled
      together with the old static lock checker (for ERTS internal
      locks) in emulator started with -emu_type debug or built with
      configuration option --enable-lock-checking.
    * snmp: A simple supervision of the snmp manager net-if process
      has been added. Also, a way to forcibly restart the net-if
      process has been added. This could be useful if the net-if
      process hangs for some reason.
    * snmp: Misc documentation corrections
    * mnesia: Fixed a timing issue in uninstall fallback
      functionality.
    * eunit: Backport of PR-2316: Strip control codes from
      eunit_surefire output to avoid generation of invalid xml
    * ssh: Unicode problems for ssh_sftp:write fixed.
    * ssh: Changes to the internal api of the experimental ssh_dbg
      tool.
    * ssh: The new functions ssh:set_sock_opts/2 and
      ssh:get_sock_opts/2 sets and reads option values for the
      underlying TCP stream.
    * hipe: HiPE can again handle modules with catch and try
      constructs.
    * hipe: When the return value for try/catch was ignored, the
      native code compiler could crash.
    * public_key: Add support for key exchange with Edward curves and
      PSS-RSA padding in signature verification.
    * diameter: Add the 'first' tuple to type diameter:peer_filter/0.
      The filter was added in OTP-17.5.6.8 and OTP-18.3, but neither
      release updated the type specification.
    * tools: An Emacs warning due to lacking type in defcustom
      declaration has been fixed.
    * tools: Improve emacs indentation.
    * tools: The cover tool could generate instrumented code for a
      module that would cause warnings to be issued.
    * tools: Fixed generated fprof analysis format to also handle
      data in maps.
    * sasl: A socket "registry" has been added making it possible to
      list current open sockets.
    * kernel: The DNS resolver `inet_res` has been fixed to return
      the last intermediate error when subsequent requests times out.
    * kernel: The prim_net nif (net/kernel) made use of an undefined
      atom, notsup. This has now been corrected.
    * kernel: Fix a crash when attempting to log faults when loading
      files during early boot.
    * kernel: Fix crash in logger when logging to a remote node
      during boot.
    * kernel: Improved net_kernel debug functionality.
  - Changes for 22.2.8:
    * diameter: The possibility of choosing a handler process for an
      incoming Diameter request with a configured MFA was documented
      in OTP 20.0, but counters (with {traffic_counters, true}) were
      not incremented when this process was on a remote node.
      Counters are now incremented on the node that configures the
      transport in question. Introduced in OTP 21.3.
    * diameter: Transport options differing from those passed to
      diameter:add_transport/2 were used in several situations: when
      starting a transport process after connect_timer expiry after
      an initial connection attempt has failed, when starting a
      transport process after a connection has been accepted, when
      sending events, when returning options in
      diameter:service_info/2, and possibly more. In particular, the
      following configuration options to diameter:add_transport/2
      were dropped: avp_dictionaries, incoming_maxlen, spawn_opt,
      strict_mbit. Moreover, any service options mistakenly passed to
      diameter:add_transport/2 were interpreted as such, instead of
      being ignored as the documentation states, with the consequence
      that outgoing and incoming requests saw different values of
      some options, some were always taken from transport options,
      and others from service options. diameter:add_transport/2 must
      be called in new code for the fix to have effect. Introduced in
      OTP 20.1.
* Mon Mar 02 2020 Tomáš Chvátal <tchvatal@suse.com>
  - Remove conditions and support for openSUSE/SLE < 15
  - Remove not really needed service file _service
  - Convert the dependencies to pkgconfig style ones
* Wed Feb 19 2020 g.santomaggio@gmail.com
  - Changes for 22.2.7:
    * compiler: Fixed a bug that could cause the compiler to reject
      valid code that used the is_map_key/2 BIF.
    * compiler: Fixed a bug that could cause the compiler to reject
      valid code that matched the same map key several times.
    * compiler: The compiler could crash when compiling a convoluted
      receive statement.
    * compiler: The compiler could crash when a fun was created but
      never used. The compiler could crash when compiling the
      expression true = 0 / X.
  - jsc#SLE-10913
* Sat Feb 15 2020 matwey.kornilov@gmail.com
  - Changes for 22.2.6:
    * erts: A process could get into an inconsistent state where it
      was runnable, but never scheduled for execution. This could
      occur when a mix of normal and low priority processes where
      scheduled on the same type of dirty scheduler simultaneously.
* Fri Feb 07 2020 Gabriele Santomaggio <gsantomaggio@suse.de>
  - Changes for 22.2.5:
    * erts: A process could end up in a state where it got
      endlessly rescheduled without making any progress. This
      occurred when a system task, such as check of process
      code (part of a code purge), was scheduled on a high
      priority process trying to execute on a dirty
      scheduler.
    * erts: Improved signal handling for processes executing dirty.
      For example, avoid busy wait in dirty signal handler
      process when process is doing garbage collection on
      dirty scheduler.
    * stdlib:  A directory traversal vulnerability has been eliminated
      in erl_tar. erl_tar will now refuse to extract symlinks
      that points outside the targeted extraction directory
      and will return {error,{Path,unsafe_symlink}}. (Thanks
      to Eric Meadows-Jönsson for the bug report and for
      suggesting a fix.)
* Mon Feb 03 2020 Gabriele Santomaggio <gsantomaggio@suse.com>
  - Changes for 22.2.4:
    * ssl: Enhance error handling, all ALERTS shall be handled
      gracefully and not cause a crash.
    * ssl: Enhance alert logging, in some places the role
      indication of the alert origin was missing. So the log
      would say undefined instead of client or server.
    * ssl: Two different optimizations did not work together and
      resulted in the possible breakage of connections using
      stream ciphers (that is RC4). Reworked the
      implementation to avoid this.
* Fri Jan 24 2020 matwey.kornilov@gmail.com
  - Changes for 22.2.3:
    * ssl: Fix the handling of GREASE values sent by web browsers
      when establishing TLS 1.3 connections. This change improves
      handling of GREASE values in various protocol elements sent in
      a TLS 1.3 ClientHello.
    * ssl: Correct DTLS listen emulation, could cause problems with
      opening a new DTLS listen socket for a port previously used by
      a now closed DTLS listen socket.
    * compiler: Fixed a bug in the compiler that could cause it to
      reject valid code.
* Fri Jan 17 2020 matwey.kornilov@gmail.com
  - Changes for 22.2.2:
    * erts: Taking a scheduler offline could cause timers set while
      executing on that scheduler to be delayed until the scheduler
      was put online again. This bug was introduced in ERTS version
      10.0 (OTP 21.0).
    * erts: The ets:update_counter/4 core dumped when given an
      ordered_set with write_concurrency enabled and an invalid
      position. This bug has been fixed.
    * erts: A process calling erlang:system_flag(multi_scheduling,
      block) could end up blocked waiting for the operation to
      complete indefinitely.
    * erts: Duplicate entries for [socket:]getopt and [socket:]setopt
      in man page.
    * stdlib: The ets:update_counter/4 core dumped when given an
      ordered_set with write_concurrency enabled and an invalid
      position. This bug has been fixed.
    * crypto: Constant time comparisons added.
    * ssh: Fixed that ssh_connection:send could allocate a large
      amount of memory if given an iolist() as input data.
    * ssh: Safe atom conversions.
    * ssh: Constant time comparisons added.
  - Changes for 22.2.1:
    * erts: Corrected an issue with the new socket api which could
      cause a core dump. A race during socket close could cause a
      core dump (an invalid nif environment free).
    * erts: Corrected an issue with the new socket api which could
      cause a core dump. When multiple accept processes waiting for a
      connect a connect could cause a core dump.
    * snmp: Its now possible to remove selected varbinds (from the
      final message) when sending a notification. This is done by
      setting the 'value' (in the varbind(s) of the varbinds list) to
      '?NOTIFICATION_IGNORE_VB_VALUE'.
    * snmp: Its now possible to specify that an oid shall be
      "truncated" (trailing ".0" to be removed) when sending an
      notification.
    * ssl: Add missing alert handling clause for TLS record handling.
      Could sometimes cause confusing error behaviors of TLS
      connections.
    * ssl: Fix handling of ssl:recv that happens during a
      renegotiation. Using the passive receive function
      ssl:recv/[2,3] during a renegotiation would fail the connection
      with unexpected msg.
* Thu Dec 19 2019 Dominique Leuenberger <dimstar@opensuse.org>
  - BuildRequire pkgconfig(libsystemd) instead of systemd-devel:
    Allow OBS to shortcut through the -mini flavors.
* Thu Dec 12 2019 Gabriele Santomaggio <gsantomaggio@suse.de>
  - Changes for 22.2
    * http://erlang.org/download/OTP-22.2.README
    * Highlights:
    * erts: The Kernel application's User's Guide now contains a
      Logger Cookbook with common usage patterns.
    * erts: Numerous improvements in the new socket and net modules
    * Standard libraries: common_test: ct_property_test logging is improved
    * Standard libraries: ssl: Correct handling of unordered chains so that it
      works as expected
    * Tools: Emacs erlang-mode function that lets the user open the documentation
      for an Erlang/OTP function in an Emacs buffer has been improved.
      Users will be asked if they want the man pages downloaded if they are not present
      in the system.
* Wed Nov 27 2019 Gabriele Santomaggio <gsantomaggio@suse.de>
  - Changes for 22.1.8
    * http://erlang.org/download/OTP-22.1.8.README
    * erts: Large amounts of quickly executed dirty work could
      cause heavy contention on an internal spin lock. The
      spin lock was replaced by a mutex which behaves much
      better under these conditions.
* Mon Nov 11 2019 Gabriele Santomaggio <gsantomaggio@gmail.com>
  - Changes for 22.1.7
    * http://erlang.org/download/OTP-22.1.7.README
    * compiler: Fixed a performance bug that caused repeated matches of
      large records to take a very long time to compile.
    * erts: A literal area could prematurely be released before all
      uses of it had been removed. This occurred either when
      a terminating process had a complex exit reason
      referring to a literal that concurrently was removed,
      or when a terminating process continued executing a
      dirty NIF accessing a literal (via the heap) that
      concurrently was removed.
    * erts:  Fix bug causing VM crash due to memory corruption of
      distribution entry. Probability of crash increases if
      Erlang distribution is frequently disconnected and
      reestablished towards same node names. Bug exists since
      OTP-21.0.
    * erts: Fixed bug causing crash of VM built with configuration
    - -enable--sharing-preserving. Provoked when a sent
      message contains both a bit string and the heap binary
      (< 65 bytes) which the bit string was matched from. Bug
      exists since OTP-19.0 but has seen to be easier to
      provoke since OTP-22.1.
  - Changes for 22.1.6
    * http://erlang.org/download/OTP-22.1.6.README
    * compiler, erts: The compiler could do an unsafe optimization of
      receives, which would cause a receive to only scan part
      of the message queue.
    * crypto: The AEAD tag was not previously checked on decrypt with
      chacha20_poly1305
    * erts:Fix bug where the receive marker used by the runtime to
      do the receive queue optimization could be incorrectly
      set. The symptom of this would be that a message that
      should match in a receive never matches.
    * snmp: Agent discovery cleanup. If there is no receiver of
      INFORM then #state.reqs in snmpa_net_if keeps on
      growing for DISCOVERY.
* Tue Oct 29 2019 Gabriele Santomaggio <gsantomaggio@suse.de>
  - Changes for 22.1.5
    * http://erlang.org/download/OTP-22.1.5.README
    * snmp: Application(s): snmp
      Related Id(s): ERIERL-427
      The agent discovery process has been made to work with
      snmptrapd..
* Wed Oct 23 2019 Gabriele Santomaggio <gsantomaggio@suse.de>
  - Changes for 22.1.4
    * http://erlang.org/download/OTP-22.1.4.README
    * compiler: Fixed a bug where the compiler could generate incorrect
      code for a 'receive' statement inside a 'try'.
    * crypto:  FIxed a bug if the erlang emulator was linked with a
      very old cryptolib version (1.0.1 or earlier).
      The bug now fixed could have triggered a core dump if
      an unknown cipher name was used in crypto functions.
    * erts: Erlang/OTP can now be built on macOS Catalina (10.15).
* Tue Oct 15 2019 matwey.kornilov@gmail.com
  - Changes for 22.1.3:
    * inets: Add HTTP server error logging vi logger
  - Changes for 22.1.2:
    * erts: Added the environment variable ERLC_SERVER_ID, which
      allows multiple compile servers to run separately under the
      same user.
  - Changes for 22.1.1:
    * erts: A terminating process sending distributed 'EXIT' or
      'DOWN' signals while terminating could end up in a state where
      no progress at all was made. This was triggered by a
      distribution channel that the terminating process was sending
      on got busy. This bug has existed since ERTS version 10.4 (OTP
      22.0).
    * erts: When communicating with a simultaneously exiting port via
      the erlang:port_*() BIFs one could sometimes get stray {Ref,
      What} messages. Where Ref was a reference and What usually were
      the atom badarg.
    * snmp: Made it possible to add 'extra socket options' to the
      (gen_udp) socket open call (for both manager and agent). A new
      option has been added, extra_sock_opts, which makes it possible
      for the user to add a list of extra socket options that will be
      appended to the other socket options for the open call. See the
      snmp application config man page (erl -man 6 snmp) or the
      "Configuring the application" chapter of the Users Guide for
      more info.
    * compiler: Fixed a bug in the bit-syntax optimization pass that
      could crash the compiler.
* Sun Sep 22 2019 matwey.kornilov@gmail.com
  - Changes for 22.1:
    * kernel: The type specification for gen_sctp:connect/4,5 has
      been corrected.
    * kernel: Extra -mode flags given to erl are ignored with a
      warning.
    * kernel: Fix type spec for seq_trace:set_token/2.
    * kernel: logger:compare_levels/2 would fail with a badarg
      exception if given the values all or none as any of the
      parameters. This is now corrected.
    * kernel: Fix bug where the log file in logger_std_h would not be
      closed when the inode of the file changed. This would in turn
      cause a file descriptor leak when tools like logrotate are
      used.
    * kernel: Fix a race condition in the debugging function
      net_kernel:nodes_info/0.
    * kernel: Fix race condition when closing a file opened in
      compressed or delayed_write mode.
    * kernel: The possibility to send ancillary data, in particular
      the TOS field, has been added to gen_udp:send/4,5.
    * kernel: If the log file was given with relative path, the
      standard logger handler (logger_std_h) would store the file
      name with relative path. If the current directory of the node
      was later changed, a new file would be created relative the new
      current directory, potentially failing with an enoent if the
      new directory did not exist. This is now corrected and
      logger_std_h always stores the log file name as an absolute
      path, calculated from the current directory at the time of the
      handler startup.
    * kernel: Support local sockets with inet:i/0.
    * observer: Fix bug after a user followed link on a pid from an
      expanded term window.
    * observer: Improved dark mode colors on Linux.
    * mnesia: mnesia:add_table_copy/3 could cause a deadlock if
      called when a new node was starting.
    * mnesia: Transactions with sticky locks could with async_asym
      transactions be committed in the wrong order, since asym
      transaction are spawned on the remote nodes. To fix this bug
      the communication protocol between mnesia nodes had to be
      updated, thus mnesia will no longer be able to connect to nodes
      earlier than mnesia-4.14 , OTP-19.0. *** POTENTIAL
      INCOMPATIBILITY ***
    * stdlib: re:run() now yields when validating utf8 in a large
      subject.
    * stdlib: Upgraded the ERTS internal PCRE library from version
      8.42 to version 8.43. See
      http://pcre.org/original/changelog.txt for information about
      changes made to PCRE. This library implements major parts of
      the re regular expressions module.
    * stdlib: The bug with ID ERL-717 has been fixed. The functions
      io:columns() and io:rows() only worked correctly inside
      interactive erlang shells before this fix. These functions
      returned {error,enotsup} before this fix even if stdout and
      stdin were connected to a terminal when they were invoked from
      an escript or a program started with e.g., erl -noshell.
    * stdlib: Fixed handling of ".." and "@" in wildcards. ".." would
      only work when preceded by a literal pattern such as in "a/..",
      not when preceded by wildcard characters such as in "*/..". The
      combination "@/.." was also broken, and in addition "@" in a
      pattern could degrade performance of the wildcard matching.
    * stdlib: Make sure ets:fun2ms() can handle ++/2 in the head of
      functions when called from the shell.
    * stdlib: Debugging of time-outs in gen_statem has been improved.
      Starting a time-out is now logged in sys:log and sys:trace.
      Running time-outs are visible in server crash logs, and with
      sys:get_status. Due to this system events {start_timer, Action,
      State} and {insert_timout, Event, State} have been added, which
      may surprise tools that rely on the format of these events. New
      features: The EventContent of a running time-out can be updated
      with {TimeoutType, update, NewEventContent}. Running time-outs
      can be cancelled with {TimeoutType, cancel} which is more
      readable than using Time = infinity. *** POTENTIAL
      INCOMPATIBILITY ***
    * stdlib: re:run() now avoids validating utf8 in the subject more
      than once in the same call. This validation could previously be
      performed multiple times when the global option was passed.
    * stdlib: ETS ordered_set tables with write_concurrency enabled
      has got a performance issue fixed. There were no limits for the
      values of internal statistics counters before this fix. This
      could result in that the data structure sometimes reacted
      slowly to a change in how many parallel processes were using
      it.
    * stdlib: The ordsets:union/1 is now faster when passed a long
      list of ordsets.
    * stdlib: unicode:characters_to_binary() could return very small
      binaries as reference counted off heap binaries. This could
      cause an unnecessary large memory usage and an unnecessary load
      on the binary allocator. Small binaries are now always returned
      as heap binaries.
    * stdlib: Display a more meaningful error message when a bad I/O
      server is used in a script written in Erlang (escript).
    * stdlib: New feature ets:info(_, binary) to get information
      about all reference counted binaries kept by a table. This is
      the same kind of debug information that process_info(_, binary)
      returns for a process.
    * stdlib: Corrected ETS documentation about the behavior of
      compiled match specifications when serialized through external
      format.
    * tools: cover would fail to start if two processes tried to
      start it at the exact same time.
    * common_test: If a ct hook is installed in the suite/0 function
      in a test suite, then the hook's terminate/1 function would be
      called several times without it's init/2 function being called
      first. This is now corrected.
    * common_test: If init_per_testcase fails, the test itself is
      skipped. According to the documentation, it should be possible
      to change the result to failed in a hook function. The only
      available hook function in this case is post_init_per_testcase,
      but changing the return value there did not affect the test
      case result. This is now corrected.
    * common_test: Add ct_netconfc support for NETCONF 1.1 (RFC
      6241). The 1.1 base capability can be sent in hello, and RFC
      6242 chunk framing is applied when both client and server
      advertise 1.1 support.
    * common_test: Correct lib_dir paths in common_tests opaque data
      structure that is passed to ct_release_test callback modules in
      functions upgrade_init/2, upgrade_upgraded/2 and
      upgrade_downgraded/2. The incorrect paths may cause confusion
      when debugging although it will not cause any incorrect
      behavior on the part of common_test as it is currently not
      used.
    * erts: If you set {linger,{true,0}} on a gen_tcp listen socket,
      accept a connection on that socket, and then close the accepted
      socket, now the linger zero setting is transferred to the
      accepted socket. Before this correction that information was
      lost and the close behaviour on the accepted socket incorrect.
    * erts: Sending ancillary data implemented in OTP-15747
      accidentally left behind test code that caused all UDP sends to
      fail on Windows. This has now been fixed.
    * erts: In the socket nif, used invalid flags when if-def'ing for
      supported TCP flags: TCP_MAXSEG and TCP_NODELAY (the support
      function).
    * erts: Fixed memory leaks in experimental socket module.
    * erts: re:run() now yields when validating utf8 in a large
      subject.
    * erts: Fixed bug in seq_trace:set_token(label,Term) which could
      cause VM crash if Term was heap allocated (not an atom, small
      integer, local pid or port). Bug exists since OTP 21.0 when
      terms other than small integers were first allowed as labels.
    * erts: Extra -mode flags given to erl are ignored with a
      warning.
    * erts: Don't loop indefinitely when --enable-pgo is given to
      configure, but compiler does not support pgo.
    * erts: Fix seq_trace:print/2 not to raise badarg exception if
      label is not a small integer. Bug exists since OTP 21.0.
    * erts: Fixed hipe_flush_icache_range for non-Linux OS on ARM.
    * erts: The fix in OTP-15871 was too conservative and disabled
      the offending load-time optimization in some cases where it was
      safe.
    * erts: Upgraded the ERTS internal PCRE library from version 8.42
      to version 8.43. See http://pcre.org/original/changelog.txt for
      information about changes made to PCRE. This library implements
      major parts of the re regular expressions module.
    * erts: Fix race condition when closing a socket while using
      {active,N} on Windows.
    * erts: Allow more than one -config command line option to erl on
      Windows to conform with other OS.
    * erts: Fix so that ERL_FLAGS environment variable does not
      interfere with command line arguments. Before this fix you
      could write: ERL_FLAGS="10" erl +S and erlang would start as if
      +S had been given the argument 10.
    * erts: The bug with ID ERL-717 has been fixed. The functions
      io:columns() and io:rows() only worked correctly inside
      interactive erlang shells before this fix. These functions
      returned {error,enotsup} before this fix even if stdout and
      stdin were connected to a terminal when they were invoked from
      an escript or a program started with e.g., erl -noshell.
    * erts: Do not use named label in ethread.c inline assemble. This
      allows erts to be compiled using gcc 9.1.0 with LTO enabled.
    * erts: erlang:fun_to_list/1 will now escape the module and
      function name when necessary.
    * erts: process_info(P,binary) would neglect to look through heap
      fragments, potentially missing a few binaries associated with
      the process.
    * erts: HiPE is now automatically disabled on systems with non-
      glibc implementation (for instance musl). This is because musl
      does not provide the API's for guaranteeing that signals are
      delivered on the correct native stack.
    * erts: Fixed bug triggered if a process is killed during call to
      persistent_term:put or persistent_term:erase.
    * erts: Add units to all memory slogans in the crash dump
      documentation.
    * erts: Fix a bug in binary_to_term that would crash the emulator
      if a term larger than 16GB was to be decoded.
    * erts: Fixed bug related to an exiting process sending EXIT and
      DOWN signals to remote linked/monitored processes. Bugs exists
      since OTP 22.0.
    * erts: erlc can now automatically use a compile server to avoid
      starting an Erlang system for each file to be compiled in a
      multi-file project. See the documentation for how to enable it.
    * erts: The possibility to send ancillary data, in particular the
      TOS field, has been added to gen_udp:send/4,5.
    * erts: The net module has been split into 'net' (kernel) and
      prim_net (preloaded).
    * erts: Socket counters now works as expected and can also be
      extracted with the (new) info function.
    * erts: re:run() now avoids validating utf8 in the subject more
      than once in the same call. This validation could previously be
      performed multiple times when the global option was passed.
    * erts: The un-documented function erlang:dist_get_stat/1 now
      returns the real value of what the distribution queue contains
      instead of a boolean.
    * erts: ETS ordered_set tables with write_concurrency enabled has
      got a performance issue fixed. There were no limits for the
      values of internal statistics counters before this fix. This
      could result in that the data structure sometimes reacted
      slowly to a change in how many parallel processes were using
      it.
    * erts: Optimize the reception of large distribution messages.
    * erts: Binary matching and functions like split_binary/2 will
      now create heap binaries when the results are small enough,
      reducing the chances of small sub-binaries keeping large
      binaries alive.
    * erts: Fixed rare emulator crash in instrument:allocations/0-1.
    * erts: Ports could pass very small binaries as reference counted
      off heap binaries to processes. This could cause an unnecessary
      large memory usage and an unnecessary load on the binary
      allocator. Small binaries are now always passed as heap
      binaries to processes.
    * erts: unicode:characters_to_binary() could return very small
      binaries as reference counted off heap binaries. This could
      cause an unnecessary large memory usage and an unnecessary load
      on the binary allocator. Small binaries are now always returned
      as heap binaries.
    * erts: Improved erl_nif documentation regarding on_load and
      Erlang stub/fallback functions.
    * erts: New feature ets:info(_, binary) to get information about
      all reference counted binaries kept by a table. This is the
      same kind of debug information that process_info(_, binary)
      returns for a process.
    * erl_docgen: Update the documentation build support to handle
      FOP 2.1 .
    * ftp: A possibly infinite loop when receiving messages divided
      in parts is removed.
    * dialyzer: Allow native compilation when using Dialyzer from
      Erlang. The options native (defaults to false) and native_cache
      have been added.
    * eunit: Handle get_until request with explicit encoding in the
      implementation of the I/O protocol.
    * snmp: Fix various minor issues related to Dialyzer. Mostly
      these are dialyzer warnings, but there was also some minor bugs
      detected by Dialyzer.
    * snmp: Fixed a dets usage problem detected by dialyzer.
    * snmp: The function snmp:print_version_info() prints various
      version info. For each module a number of items are printed,
      such as app vsn and md5 digest. And an attempt was also made to
      print "compile time". This used to be available in the
      module_info for each module, but has now been removed.
    * snmp: The use of the deprecated random module has been replaced
      the with rand module.
    * snmp: Removed use of the deprecated function
      erlang:get_stacktrace(). Instead make use of the 'catch
      Class:Error:Stacktrace' feature.
    * syntax_tools: Add missing calls to erl_syntax:unwrap/1. The
      nodes concerned represent names and values of maps and map
      types.
    * wx: Fix a driver bug that could crashes when allocating memory.
    * erl_interface: Fix bugs in ei_print_term for binaries and bit
      strings causing incorrect output.
    * erl_interface: Fixed bug in ei_decode_fun for very old fun
      encoding format. Bug exist since OTP 22.0.
    * erl_interface: ei_print_term() now supports printing of maps
      and funs.
    * xmerl: xmerl_sax_parser crashed during charset detection when
      the xml declarations attribute values was missing the closing
      quotation (' or ").
    * ssl: Handling of zero size fragments in TLS could cause an
      infinite loop. This has now been corrected.
    * ssl: DTLS record check needs to consider that a resent hello
      message can have a different version than the negotiated.
    * ssl: Basic support for TLS 1.3 Client for experimental use. For
      more information see the Standards Compliance chapter of the
      User's Guide.
    * ssl: Correct solution for retaining tcp flow control OTP-15802
      (ERL-934) as to not break ssl:recv as reported in (ERL-938)
    * ssl: Enhance dialyzer specs to reflect implementation better
      and avoid dialyzer warnings for the user that wants to use TLS
      with unix domain sockets.
    * ssl: Add support for ECDSA signature algorithms in TLS 1.3.
    * ssl: Correct error handling of TLS downgrade, possible return
      values form ssl:close/2 when downgrading is {ok, Port} or
      {error, Reason}, it could happen that only ok was returned
      instead of {error, closed} when downgrade failed due to that
      the peer closed the TCP connection.
    * os_mon: Fix disk_sup to ignore squashfs on Linux when
      determining if a mounted filesystem is full or not.
    * os_mon: Fix bug where cpu_sup:util() always returned 100% on
      systems not using gnu libc, for example Alpine OS.
    * ssh: Fixed wrong type definition for the daemon option
      subsystems.
    * ssh: Fixed a possible SSH logging crash if there was a problem
      in an early stage of session setup.
    * ssh: The documentation for the modules ssh_connection, ssh_sftp
      and ssh_sftpd are now generated from the -spec:s.
    * ssh: Internal cleanup including removal of the internal file
      ssh_userauth.hrl.
    * ssh: Removed unused definitions in ssh.hrl.
    * ssh: Removed unused fields in the internal #connection{}
      record.
    * ssh: To get information of a connection_ref() from for example
      ssh:connect/3, there was previously one function available
      namely ssh:connection_info/2. This ticket adds
      ssh:connection_info/1 which returns all information. For
      daemons (servers) started with for example ssh:daemon/2 the
      function ssh:daemon_info/1 returning all information was
      available. This ticket adds ssh:daemon_info/2 which returns
      only the information specified in the second argument. The info
      of connections and of daemons now also includes the item
      'options'. Only those options that does not have their default
      values are returned. For a connection also the items
      'algorithms' and 'channels' are added.
    * inets: httpd - Accept singel LF as line terminator
    * inets: mod_esi will now always propagate the actual HTTP status
      code that it answered with, to later mod-modules, and not in
      some cases hardcode 200.
    * compiler: Code such as the following would crash the compiler
      in OTP 22: [some_atom = fun some_function/1]
    * compiler: Compilation could get really slow (in the order of
      minutes instead of seconds) when compiling huge functions.
      (Thanks to Kostis Sagonas for reporting this bug.)
    * compiler: Fixed a bug in the validator that could reject valid
      code.
    * compiler: In rare circumstances, when two clauses had identical
      bodies and guard tests that tested a single boolean variable,
      the guard test for the second clause could be discarded,
      executing the second clause unconditionally if the first clause
      was not executed.
    * compiler: Fixed extremely slow compilation for huge functions
      doing predominantly pattern matching.
    * compiler: The compiler could generate unsafe code (that would
      crash the runtime system) for map pattern matching. The code
      could be unsafe if the matched key was not present in the map
      at runtime.
    * compiler: Correct code using try/after could fail to compile
      when using the option 'no_type_opt'.
    * compiler: The compiler could crash when compiling code that
      called 'length/1' on a binary extracted using the binary
      syntax.
    * compiler: Fixed a bug where the compiler could fail with an
      internal consistency failure error when compiling receive
      statements.
    * compiler: Fixed a problem where the compiler would crash when
      compiling binary matching in a function head.
    * public_key: Support Password based encryption with AES
    * public_key: Change dialyzer spec to avoid confusion
    * runtime_tools: Fix dbg:stop_clear/0 to also clear trace events
      (send and 'receive').
    * megaco: Fix various minor issues related to Dialyzer. Mostly
      these are dialyzer warnings, but there was also some minor bugs
      detected by Dialyzer.
    * crypto: The implementation of crypto_one_time/4 is adjusted to
      match the type specification. The spec and the black-box
      behaviour of the function are unchanged. Some details: Both the
      spec and the implementation were correct seen separately. But
      with both of them combined simultaneously with
      crypto_one_time/5 which was called by the implementation of
      crypto_one_time/4, an (obvious) error was detected by a
      Dialyzer with more thorough checking than usual.
    * crypto: When using crypto with FIPS mode enabled, the digests
      were not correctly handled.
    * crypto: A memory leak in error handling code in
      ng_crypto_init_nif is fixed.
    * crypto: Fixed the broken static build of the crypto nifs
    * crypto: The Message Authentication Codes (MAC) CMAC, HMAC and
      Poly1305 are unified into common functions in the New Crypto
      API. See the manual for CRYPTO.
    * sasl: The net module has been split into 'net' (kernel) and
      prim_net (preloaded).
    * jinterface: Replaced deprecated <tt> with <code> in
      documentation.
* Sun Sep 22 2019 opensuse-packaging@opensuse.org
  - Rebased patches:
    + 0001-erts-Do-not-use-named-no_cpuid-label-in-asm.patch dropped (merged upstream)
* Tue Aug 27 2019 Martin Liška <mliska@suse.cz>
  - Udate -ffat-lto-objects in order to properly build static libraries
    provided by the package (boo#1142645).
  - Use %make_build macro.
* Mon Jul 29 2019 opensuse-packaging@opensuse.org
  - Add patch 0001-erts-Do-not-use-named-no_cpuid-label-in-asm.patch:
    fix boo#1142913
  - Changes for 22.0.7:
    * compiler: Fixed a compiler crash introduced in 22.0.6
      (OTP-15952).
  - Changes for 22.0.6:
    * compiler: Fixed an unsafe optimization when matching
      tuple_size/1 outside of guards, which could crash the emulator
      if the argument was not a tuple.
    * compiler: Fixed a rare bug that could cause the wrong kind of
      exception to be thrown when a BIF failed in a function that
      matched bitstrings.
    * compiler: Fixed a bug where receive statements inside try/catch
      blocks could return incorrect results.
    * ssl: Enhance error handling for erroneous alerts from the peer.
    * hipe: The HiPE compiler would badly miscompile certain
      try/catch expressions, so it will now refuse to compile modules
      containing try or catch. As a consequence of this, dialyzer
      will no longer compile key modules to native code. ***
      POTENTIAL INCOMPATIBILITY ***
    * dialyzer: The HiPE compiler would badly miscompile certain
      try/catch expressions, so it will now refuse to compile modules
      containing try or catch. As a consequence of this, dialyzer
      will no longer compile key modules to native code. ***
      POTENTIAL INCOMPATIBILITY ***
  - Changes for 22.0.5:
    * inets: Fix a regression in http client that causes a crash when
      request URI has no scheme.
    * ssl: Fix handling of certificate decoding problems in TLS 1.3
      similarly as in TLS 1.2.
    * ssl: Hibernation now works as expected in all cases, was
      accidently broken by optimization efforts.
    * ssl: Fix interoperability problems with openssl when the TLS
      1.3 server is configured wirh the option signature_algs_cert.
    * dialyzer: Make sure Dialyzer does not crash if the formatting
      of results fails. Instead of crashing, an unformatted version
      of the results is returned.
    * erts: An invalid value test caused the socket:setopt(Socket,
      ip, add_membership, ip_mreq()) to fail with badarg. The same
      for drop_membership.
    * erts: Fixed bug causing VM crash when doing textual dump of a
      process containing an unhandled monitor down signal. Textual
      process dumps can be done with erlang:system_info(procs), trace
      feature process_dump, Erlang shell break menu and a crashdump.
      Bug exist since OTP 21.0.
    * erts: lists:subtract/2 would produce incorrect results for some
      inputs on 64-bit platforms.
    * erts: Fixed a bug in the loader that was similar to OTP-15938,
      yielding incorrect code for some inputs on 64-bit platforms.
    * erts: Fixed bug causing scheduler threads in rare cases to
      block spinnning indefinitely. Bug exists since OTP 21.0.
* Thu Jul 04 2019 Matwey Kornilov <matwey.kornilov@gmail.com>
  - Drop priv/obj directories: boo#1140404
* Tue Jun 25 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Version 22.0.4:
    * http://erlang.org/download/OTP-22.0.4.README
    - Bug Fixes
    * erts: Fixed a buffer overflow when binary_to_existing_atom/2
      and list_to_existing_atom/2 was used with the latin1
      encoding.
    * erts: The runtime system disconnected a connection if it
      received an exit/2 signal where the recipient was a
      process on an old incarnation of the current node. That
      is, the receiving node had the same node name, but
      another "creation" number. The signal will now just be
      dropped since the receiving process no longer exists.
    * kernel: user/user_drv could respond to io requests before they
      had been processed, which could cause data to be
      dropped if the emulator was halted soon after a call to
      io:format/2, such as in an escript.
    * ssl: Correct handshake handling, might cause strange
      symptoms such as ASN.1 certificate decoding issues.
    * ssl: Fix handling of the signature_algorithms_cert extension
      in the ClientHello handshake message.
    * ssl:Handle new ClientHello extensions when handshake is
      paused by the {handshake, hello} ssl option.
* Sun Jun 16 2019 Matwey V. Kornilov <matwey.kornilov@gmail.com>
  - Version 22.0:
    - Potential Incompatibilities:
    * gen_* behaviours: If logging of the last N messages through
      sys:log/2,3 is active for the server, this log is included in
      the terminate report.
    * reltool: A new element, Opts, can now be included in a rel
      tuple in the reltool release specific configuration format:
      {rel, Name, Vsn, RelApps, Opts}.
    * All external pids/ports/refs created by erlang:list_to_pid and
      similar functions now compare equal to any other pid/port/ref
      with same number from that node.
    * The old legacy erl_interface library is deprecated as of OTP
      22, and will be removed in OTP 23. This does not apply to the
      ei library.
    * VxWorks is deprecated as of OTP 22 and will be removed in OTP
      23.
    - New Features:
    * Support for Erlang Distribution protocol to split the payload
      of large messages into several fragments.
    * ETS option write_concurrency now also effects and improves
      scalability of ordered_set tables.
    * The length/1 BIF used to calculate the length of the list in
      one go without yielding, even if the list was very long. Now it
      yields when called with long lists.
    * A new (still experimental) module socket is introduced. It is
      implemented as a NIF and the idea is that it shall be as "close
      as possible" to the OS level socket interface.
    * Added the NIF function enif_term_type, which helps avoid long
      sequences of enif_is_xyz by returning the type of the given
      term. This is especially helpful for NIFs that serialize terms,
      such as JSON encoders, where it can improve both performance
      and readability.
    * The compiler has been rewritten to internally use an
      intermediate representation based on Static Single Assignment
      (SSA). The new intermediate representation makes more
      optimizations possible.
    * All compiler options that can be given in the source file can
      now be given in the option list on the command line for erlc.
    * In OTP 22, HiPE (the native code compiler) is not fully
      functional. The reasons for this are new BEAM instructions for
      binary matching that the HiPE native code compiler does not
      support. If erlc is invoked with the +native option, and if any
      of the new binary matching instructions are used, the compiler
      will issue a warning and produce a BEAM file without native
      code.
    * Cover now uses the counters module instead of ets for updating
      counters. The new function cover:local_only/0 allows running
      Cover in a restricted but faster local-only mode. The increase
      in speed will vary depending on the type of code being
      cover-compiled, as an example the compiler test suite runs more
      than twice as fast with the new Cover.
    * A simple socket API is provided through the socket module. This
      is a low level API that does *not* replace gen_[tcp|udp|sctp].
      It is intended to *eventually* replace the inet driver. It also
      provides a basic API that facilitates the implementation of
      other protocols than TCP, UDP and SCTP. Known issues are; No
      support for the Windows OS (currently), a small term leakage.
      This feature will be classed as experimental in OTP 22.
    * SSL: now uses the new logger API, including log levels and
      verbose debug logging.
    * SSL: Basic support for TLS 1.3 Server for experimental use.
    * crypto: The new hash_info/1 and cipher_info/1 functions returns
      maps with information about the hash or cipher in the argument.
    - The application otp_mibs has been removed from OTP.
* Thu May 16 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.8.1:
  - Changes for 21.3.8.1:
    * http://erlang.org/download/OTP-21.3.8.1.README
    * erts: Fixed a buffer overflow when binary_to_existing_atom/2
    and list_to_existing_atom/2 was used with the latin1
    encoding.
    * ssl: Correct solution for retaining tcp flow control
    OTP-15802 (ERL-934) as to not break ssl:recv as
    reported in (ERL-938)
    * tools: cover would fail to start if two processes tried to
    start it at the exact same time.
  - Update to 21.3.8:
  - Changes for 21.3.8:
    * http://erlang.org/download/OTP-21.3.8.README
    * common_test: The test result when a hook function fails is in
    general the same as if the function that the hook is
    associated with fails. For example, if
    post_init_per_testcase fails the result is that the
    test case is skipped, as is the case when
    init_per_testcase fails.This, however, was earlier not
    true for timetrap timeouts or other error situations
    where the process running the hook function was killed.
    This is now corrected, so the error handling should be
    the same no matter how the hook function fails.
    Related Id(s): ERIERL-334
    * common_test: In some rare cases, when two common_test nodes used the
    same log directory, a timing problem could occur which
    caused common_test to crash because it's log cache file
    was unexpectedly empty. This is now corrected.
    Related Id(s): ERIERL-342
    * common_test: Two new common_test hook functions are introduced:
    post_groups/2, which is called after Suite:groups/0
    post_all/3, which is called after Suite:all/0
    A new term, {testcase,TestCase,RepeatProperties} is now
    also allowed in the return from all/0. This can be used
    for repeating a single test case a specific number of
    times, or until it fails or succeeds once.
    * eldap, public_key, ssl:  Back port of bug fix ERL-893 from OTP-22 and document
    enhancements that will solve dialyzer warnings for
    users of the ssl application.
    This change also affects public_key, eldap (and inet doc).
    Related Id(s): ERL-893, ERL-929, PR-2215
    * erl_interface: erl_interface/ei refused to use node names with an
    alive name (the part of the node name preceding the @
    sign) longer than 63 characters and a host name longer
    than 64 characters. The total amount of characters
    allowed in a node name (alivename@hostname) was thus
    limited to 128 characters. These limits applied both to
    the own node name as well as node names of other nodes.
    Ordinary Erlang nodes limit the node name length to 256
    characters, which meant that you could not communicate
    with certain Erlang nodes due to their node name used.
    erl_interface/ei now allow the total amount of
    characters in a node name to be up to 256 characters.
    These characters may be distributed between alive name
    and host name in whatever way needed. That is, the
    maximum amount of characters in the alive name may be
    254 and the maximum amount of characters in the host
    name may be 254, but in total the node name must not
    exceed 256 characters.
    * erts:  Fixed more bugs in process_info(reductions) causing it
    to sometimes behave non-monotonic. That is, a
    subsequent call toward the same process could return a
    lower reduction value.
    Related Id(s): ERIERL-337, OTP-15709
    * ssl:  Missing check of size of user_data_buffer made internal
    socket behave as an active socket instead of active N.
    This could cause memory problems.
    * eldap, public_key, ssl: Back port of bug fix ERL-893 from OTP-22 and document
    enhancements that will solve dialyzer warnings for
    users of the ssl application.
    This change also affects public_key, eldap (and inet doc).
    * stdlib: A bug in gen_statem has been fixed where the internal
    timeout message could arrive as an info to the callback
    module during high load due to incorrect use of
    asynchronous timer cancel.
* Mon Apr 29 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.7:
  - Changes for 21.3.7:
    * http://erlang.org/download/OTP-21.3.7.README
    * ssh: When an SSH server receives the very first message on a
    new TCP connection, and that message is not the
    expected one, the 64 first bytes of the received
    message are now dumped in the INFO REPORT that reports
    the Protocol Error.
    This facilitates the debugging of who sends the bad
    message or of detecting a possible port scanning
* Tue Apr 23 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.6:
  - Changes for 21.3.6:
    * http://erlang.org/download/OTP-21.3.6.README
    * ssl: With the default BEAST Mitigation strategy for TLS 1.0
    an empty TLS fragment could be sent after a one-byte
    fragment. This glitch has been fixed.
* Wed Apr 17 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.5:
  - Changes for 21.3.5:
    * http://erlang.org/download/OTP-21.3.5.README
    * diameter: Fix inadvertently broad monitor that resulted in
    gen_server cast messages to hidden nodes from module
    diameter_dist.
    * erts: Add missing documentation of new external tags NEW_PID,
    NEW_PORT and NEWER_REFERENCE introduced in OTP 19.
    These new tags are planned to be "activated" in OTP 23
    when distribution capability flag DFLAG_BIG_CREATION
    becomes mandatory. Older nodes (>= 19) are able to
    decode these new tags and send them back to the new
    node. Nodes older than OTP 23 will however never encode
    their own local pids, ports and references using the
    new tags.
    * inets:  Fix the internal handling of the option
    erl_script_timeout in httpd. If explicit
    erl_script_timeout value was supplied in seconds it was
    not correctly converted to millisecond units for
    internal usage.
    This change fixes the handling of erl_script_timeout in
    all possible configuration scenarios.
* Mon Apr 15 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.4:
  - Changes for 21.3.4:
    * http://erlang.org/download/OTP-21.3.4.README
    * crypto: Fixed build link error on Windows. Unresolved symbol
    'bcmp'.
    * erl_interface: Fix handling of Makefile dependencies so that parallel
    make works properly.
    * erts: Fix erlang:open_port/2 with the fd option to correctly
    cleanup the pollset when the port is closed. Before
    this fix there would be error printouts sent to logger
    when the same fd was reused in a new port.
    * ssh: The callback ssh_channel:init/1 was missing in OTP-21
    * ssh: If a client was connected to an server on an already
    open socket, the callback fun(PeerName,FingerPrint) in
    the accept_callback option passed the local name in the
    argument PeerName instead of the remote name.
    * common_test: OTP internal test improvements.
* Tue Apr 02 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.3:
  - Changes for 21.3.3:
    * http://erlang.org/download/OTP-21.3.3.README
    * erts: Fixed a bug in seq_trace:reset_trace/0 that could crash
    the emulator.
    * erts: Fixed bug in process_info(reductions) causing it to
    sometimes return invalid results.
    * kernel/stdlib: Fixed a performance regression when reading files
    opened with the compressed flag.
* Tue Mar 26 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.2:
  - Changes for 21.3.2:
    * http://erlang.org/download/OTP-21.3.2.README
    * erts: If a suspend/resume signal pair was sent to a process
    while it was executing dirty, the receiving process
    could later end up in a suspended state indefinitely.
    This bug was introduced in ERTS version 10.0 (OTP
    21.0).
    * etrs: Fix a possible deadlock when terminating the ERTS
    caused by a dirty scheduler not releasing it's
    run-queue lock when terminating.
    * xmerl: Handling of character references in attributes are
    fixed.
    * xmerl:  Normalization of whitespace characters in attributes
    are fixed so it works when character references are
    used.
* Wed Mar 20 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.3.1:
  - Changes for 21.3.1:
    * http://erlang.org/download/OTP-21.3.1.README
    * erl_interface: Fixed two bugs in the erl_call program. A missing
    initialization (introduced in erl_interface-3.11) which
    either caused a crash or failure to connect to or start
    a node, and an incorrectly calculated timeout which
    could cause failure to start an erlang node. These bugs
    only caused failures on some platforms.
    * ssl: The timeout for a passive receive was sometimes not
    cancelled and later caused a server crash. This bug has
    now been corrected.
    * ssl: Add tag for passive message (active N) in cb_info to
    retain transport transparency.
  - Update to 21.3:
  - Changes for 21.3:
    * http://erlang.org/download/OTP-21.3.README
    * Erlang/OTP 21.3 is the third service release for the 21st major release
    with improvements, as well as a few features
    * Highlights
    * Kernel: The standard logger handler, logger_std_h, now has a new internal
    feature for log rotation. For full information see the documentation.
    * SSL:The Reason part of the error return from the functions connect and
    handshake has a better and documented format. This is a potential
    incompatibility. See the documentation.
    Refactoring of state handling has improved the TLS application data
    throughput and reduced CPU overhead
    Code optimizations has reduced CPU load for encryption/decryption,
    especially for Erlang's distribution protocol over TLS
    Now supports active N
    * Erl_interface: Support for plugin of a user supplied socket implementation has been added.
    * OTP:The HTML reference documentation now shows the OTP version where
    modules and functions were first introduced. Versions of OTP older than R13B04 is not shown in the reference
    documentation
    * For a full list of details see:
    http://erlang.org/download/otp_src_21.3.readme
  - Update to 21.2.7:
  - Changes for 21.2.7:
    * http://erlang.org/download/OTP-21.2.7.README
    * erts, otp: Fixes of install/release phase in build system.
    - - The source tree was modified when
    installing/releasing and/or applying a patch.
    - - Some files were installed with wrong access rights.
    - - If applying a patch (using otp_patch_apply) as
    another user (except root) than the user that built the
    source, the documentation was not properly updated.
    * erts, kernel: Setting the recbuf size of an inet socket the buffer is
    also automatically increased. Fix a bug where the auto
    adjustment of inet buffer size would be triggered even
    if an explicit inet buffer size had already been set.
    * erts: Reading from UDP using active true or active N mode has
    been optimized when more packets than specified by
    read_packets are available on the socket.
    * erts, kernel:  Setting the recbuf size of an inet socket the buffer is
    also automatically increased. Fix a bug where the auto
    adjustment of inet buffer size would be triggered even
    if an explicit inet buffer size had already been set.
* Tue Feb 19 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.2.6:
  - Changes for 21.2.6:
    * http://erlang.org/download/OTP-21.2.6.README
    * erts: When using the {linger,{true,T}} option;
    gen_tcp:listen/2 used the full linger time before
    returning for example eaddrinuse. This bug has now been
    corrected.
    * stdlib: Optimize pretty printing of terms. The slower behaviour
    was introduced in Erlang/OTP 20.
* Thu Feb 07 2019 matwey.kornilov@gmail.com
  - Drop unsupported openSUSE versions
* Tue Feb 05 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - Update to 21.2.5:
  - Changes for 21.2.5:
    * http://erlang.org/download/OTP-21.2.5.README
    * inets: Fixed bug that causes a crash in http client when using
    hostnames (e.g. localhost) with the the option
    ipv6_host_with_brackets set to true.
    This change also fixes a regression: httpc:request
    fails with connection error (nxdomain) if option
    ipv6_host_with_brackets set to true and host component
    of the URI is an IPv6 address.
* Fri Jan 25 2019 Gabriele Santomaggio <g.santomaggio@gmail.com>
  - update to 21.2.4:
  - Changes for 21.2.4:
    * http://erlang.org/download/OTP-21.2.4.README
    * erts: Fix bug where doing a gen_tcp:send on a socket with
    delay_send set to true could cause a segfault if the
    other side closes the connection.
    Bug was introduced in erts-10.2 (OTP-21.2).
    * erts: Fix a race condition when a port program closes that
    could result in the next started port to hang during
    startup.
    Bug was introduced in erts-10.0 (OTP-21.0).
    * erts: Fix a bug where polling for external events could be
    delayed for a very long time if all active schedulers
    were 100% loaded.
    Bug was introduced in erts-10.2 (OTP-21.2).
    * inets: Make sure ipv6 addresses with brackets in URIs are
    converted correctly before passing to lower level
    functions like gen_tcp and ssl functions. Could cause
    connection to fail.
  - update to 21.2.3:
  - Changes for 21.2.3:
    * http://erlang.org/download/OTP-21.2.3.README
    * compiler: An optimization that avoided allocation of a stack
    frame for some case expressions was introduced in OTP
    21. (ERL-504/OTP-14808) It turns out that in rare
    circumstances, this optimization is not safe.
    Therefore, this optimization has been disabled.
    * erts: Fixed a crash when dangling files were closed after
    init:restart/0.
    * erts: A bug that could cause dirty schedulers to become
    unresponsive has been fixed.
    * ssl: Fix encoding of the SRP extension length field in ssl.
    The old encoding of the SRP extension length could
    cause interoperability problems with third party SSL
    implementations when SRP was used.
    * ssl: Guarantee active once data delivery, handling TCP
    stream properly.
    Correct gen_statem returns for some error cases
    * xmerl: The charset detection parsing crash in some cases when
    the XML directive is not syntactic correct.

Files

/usr/lib64/erlang/lib/diameter-2.2.7/src
/usr/lib64/erlang/lib/diameter-2.2.7/src/base
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_app.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_callback.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_capx.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_codec.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_config.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_config_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_dist.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_gen.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_internal.hrl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_lib.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_misc_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_peer.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_peer_fsm.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_peer_fsm_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_reg.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_service.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_service_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_session.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_stats.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_sync.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_traffic.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_types.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_watchdog.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/base/diameter_watchdog_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_codegen.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_dict_parser.yrl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_dict_scanner.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_dict_util.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_exprecs.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_forms.hrl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_make.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/compiler/diameter_vsn.hrl
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/acct_rfc6733.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/base_accounting.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/base_rfc3588.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/base_rfc6733.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/doic_rfc7683.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/dict/relay.dia
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_dict_parser.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_acct_rfc6733.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_base_accounting.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_base_rfc3588.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_base_rfc6733.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_doic_rfc7683.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/gen/diameter_gen_relay.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_etcp.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_etcp_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_sctp.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_sctp_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_tcp.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_tcp_sup.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_transport.erl
/usr/lib64/erlang/lib/diameter-2.2.7/src/transport/diameter_transport_sup.erl


Generated by rpm2html 1.8.1

Fabrice Bellet, Sat Mar 9 12:50:11 2024