7773 lines
391 KiB
Plaintext
7773 lines
391 KiB
Plaintext
-------------------------------------------------------------------
|
||
Tue Dec 10 12:33:11 UTC 2024 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 27.1.3:
|
||
* public_key: If both ext-key-usage and key-usage are defined for
|
||
a certificate it should be checked that these usages are
|
||
consistent with each other. This will have the affect that such
|
||
certificates where the ext-key-usages is marked as critical and
|
||
the usages is consistent with the key-use it can be considered
|
||
valid without mandatory application specific checks for the
|
||
ext-key-useage extension.
|
||
* public_key: Handle decoding of EDDSA key properly, when
|
||
decoding a PEM file that contains only the public EDDSA key.
|
||
* erts: gen_udp:send on domain local can leak inet_reply
|
||
messages.
|
||
* erts: net:getifaddrs does not properly report the running flag
|
||
on windows.
|
||
* compiler: In rare circumstances, the destructive tuple update
|
||
optimization could be applied when it was unsafe.
|
||
* compiler: In rare circumstances involving appending to multiple
|
||
binaries, the compile could emit unsafe code that would crash
|
||
the runtime system.
|
||
* ssh: With this change, ssh connection does not crash upon
|
||
receiving exit-signal message for an already terminated
|
||
channel.
|
||
* kernel: On windows the socket:recv could return with success
|
||
({ok, Data}) even though not all data had been read.
|
||
* kernel: gen_udp:send on domain local can leak inet_reply
|
||
messages.
|
||
* kernel: Failure to create an UDP IPv6 socket when inet_backend
|
||
= socket with certain IPv6 socket options.
|
||
* kernel: net:getifaddrs does not properly report the running
|
||
flag on windows.
|
||
* ssl: Avoid generating an internal alert for case that should
|
||
have been an orderly shutdown by the supervisor.
|
||
* ssl: If present, extended key-usage TLS (SSL) role check (pk-
|
||
clientAuth, pk-serverAuth) should always be performed for peer-
|
||
cert. An intermediate CA cert may relax the requirement if
|
||
AnyExtendedKeyUsage purpose is present.
|
||
* ssl: Back port certificate_authorities option for TLS-1.3
|
||
servers to pre TLS-1.3 servers to enable them to disable the
|
||
sending of certificate authorities in their certificate
|
||
request. This will have same affect as the the TLS-1.3 server
|
||
option although it is handled by a different mechanism in these
|
||
versions, where the functionality is described to be more of a
|
||
guidance, although some pre TLS clients have proven to make it
|
||
mandatory as in TLS-1.3 extension handling.
|
||
* common_test: With this change, cth_surefire hook module handles
|
||
group path reduction for a skipped group. This fixes a bug
|
||
manifesting with improper group path for a group executed after
|
||
a group which was skipped.
|
||
* common_test: With this change, prefix option can be specified
|
||
in cth_conn_log option list. Option allows to specify how much
|
||
of additional information is added in raw log output.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 5 14:37:40 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- drop systemd_requires, see
|
||
https://en.opensuse.org/openSUSE:Systemd_packaging_guidelines#Runtime_requirements
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Nov 30 10:19:31 UTC 2024 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 27.1.2:
|
||
* stdlib: With this change, uri_string:normalize assumes empty
|
||
path (do not crash) when no path is provided in the URI map.
|
||
* stdlib: Fixed spec for json:format/3.
|
||
* kernel: A bug has been fixed where receiving an SCTP message
|
||
with gen_sctp could waste the first fragments of a message and
|
||
only deliver the last fragment.
|
||
* kernel: An boolean option non_block_send for SCTP, has ben
|
||
added to be able to achieve the old behaviour to avoid blocking
|
||
send operations by passing the OS network stack error message
|
||
({error,eagain} through.
|
||
* common_test: With this change, jquery and tablesorter licenses
|
||
are added to COPYRIGHT file. Also tablesorter is updated to
|
||
version 2.32.
|
||
* ssl: Refactor trying to also make some optimizations introduced
|
||
a bug in signature algorithms checks in OTP-26.2.1. This could
|
||
manifest itself in not being able to negotiate connections
|
||
using certificates needing to use some TLS-1.2 compatibility
|
||
legacy signature schemes.
|
||
* ssl: Correct timeout handling for termination code run for own
|
||
alerts, so that intended timeout is used instead of falling
|
||
back to OS TCP-stack timeout that is unreasonably long on some
|
||
platforms.
|
||
* ssl: Fix assertion so that works as intended. This could result
|
||
in that some TLS-1.2 clients would fail to connect to the the
|
||
erlang server. Bug introduced in OTP-27.1.1
|
||
* erts: A bug has been fixed where receiving an SCTP message with
|
||
gen_sctp could waste the first fragments of a message and only
|
||
deliver the last fragment.
|
||
* erts: An boolean option non_block_send for SCTP, has ben added
|
||
to be able to achieve the old behaviour to avoid blocking send
|
||
operations by passing the OS network stack error message
|
||
({error,eagain} through.
|
||
* erts: The call gen_tcp:send/2 could hang indefinitely despite
|
||
having set the send_timeout option for the following
|
||
unfortunate combination of circumstances:
|
||
* erts: In rare circumstances, in code that matches multiple
|
||
tuples, the JIT could generate code that would raise a badmatch
|
||
exception even if the given tuples were correct.
|
||
* erts: Fixed beam crash that could happen if resetting call_time
|
||
or call_memory trace counters of a function while it is called.
|
||
Bug exists since OTP R16.
|
||
* ssh: With this change, a race condition is removed from ssh
|
||
client connection setup procedure.
|
||
* ssh: With this change, ssh:connect is not affected by presence
|
||
of EXIT message in queue.
|
||
* ssh: With this change, ssh appends {active, false} option after
|
||
socket options received from user - so that false value is
|
||
always used.
|
||
- Changes for 27.1.1:
|
||
* public_key: Introduction of verify_fun/4 unfortunately
|
||
introduced an argument switch for some specific path validation
|
||
errors so that verify_fun/3 could under these circumstances be
|
||
called with a DER cert instead of a decod cert, also in this
|
||
situation the verify_fun/4 would have the certificates in
|
||
reverse order.
|
||
* public_key: Do not hide crypto badarg reason, this error
|
||
handling enhancement facilitates debugging. These kind of
|
||
runtime errors are not documented and should never be relied on
|
||
for matching, they are intended for catching input errors
|
||
early.
|
||
* stdlib: Remove whitespace stripping of returned binaries in
|
||
json:decode/3.
|
||
* stdlib: Fix zip:unzip/2 to not crash when extracting zip files
|
||
with garbage in the Zip64 extra header. This bug was introduced
|
||
in Erlang 27.1 and has so far only been seen on some archives
|
||
creates by MS Excel.
|
||
* stdlib: With this change, shutdown procedure handles a race
|
||
condition between supervisor executing a shutdown and child
|
||
process termination from other reason.
|
||
* common_test: With this change, HTML reports include jQuery
|
||
version 3.7.1.
|
||
* ssl: Starting from TLS-1.3 some server handshake alerts might
|
||
arrive after ssl:connection/2,3,4 has returned. If the socket
|
||
is in active mode the controlling process will get the alert
|
||
message, but passive sockets would only get {error, closed} on
|
||
next call to ssl:recv/2,3 or ssl/setopts/2. Passive sockets
|
||
calls will now return {error, error_alert()} instead.
|
||
* ssl: Servers configured to support only version (pre TLS-1.2)
|
||
should ignore hello version extension, as it is an unknown
|
||
extension to them, this will result in that new clients that do
|
||
not support the old server version will get an insufficient
|
||
security alert from the server and not a protocol version
|
||
alert, this is consistent with how old servers not able to
|
||
support higher protocol versions work.
|
||
* erts: On Windows, successive failed socket calls caused socket
|
||
to become "uninitialized".
|
||
* erts: The socket framework fails to start on a IPv6-only
|
||
Windows machine.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Sep 29 15:03:44 UTC 2024 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 27.1:
|
||
* crypto: crypto built with --enable-fips will now accept an
|
||
OpenSSL 3 lib without fips provider as long as fips mode is not
|
||
enabled.
|
||
* crypto: Added a warning in the documentation to avoid calling
|
||
crypto:start/0 as it does not work for FIPS mode. Use
|
||
application:start(crypto) instead.
|
||
* crypto: Deprecation of RSA encryption functions has been
|
||
reverted, as there still exists legitimate use cases with other
|
||
padding modes than PKCS-1.
|
||
* crypto: Compiler warnings for some removed functions have been
|
||
corrected to point out the correct replacement functions.
|
||
* ssh: The SSh daemon started with a TCP port number argument
|
||
will now re-try obtaining a listen socket before returning an
|
||
error to the user.
|
||
* ssh: Robustness has been improved by monitoring the connection
|
||
handler process before casting the socket control notification.
|
||
* ssl: A race in the kTLS flavour of SSL distribution has been
|
||
fixed so that inet_drv.c doesn't read ahead too much data,
|
||
which could cause the kTLS encryption to be activated too late
|
||
when some encrypted data had already been read into the
|
||
inet_drv.c buffer as unencrypted.
|
||
* ssl: All TLS-1.3 terminations are now graceful (previous TLS
|
||
version terminations already were).
|
||
* ssl: It is now possible to use a verification fun of arity 4,
|
||
giving the user fun access to both encoded and decoded versions
|
||
of the certificate. This is desirable as a workaround for
|
||
encoding errors preventing re-encoding from being reliable.
|
||
This also saves some work load if the encoded version is
|
||
needed.
|
||
* ssl: Compiler warnings for some removed functions have been
|
||
corrected to point out the correct replacement functions.
|
||
* ssl: Include more information in logging of SNI (Server Name
|
||
Indication) mismatch error.
|
||
* diameter: Function specs for the main API module has been
|
||
updated.
|
||
* diameter: Man pages are now available for erl, erlc, dialyzer,
|
||
and all other programs that are included in Erlang/OTP.
|
||
* diameter: diameter:stop_service/1 has been made more
|
||
synchronous.
|
||
* wx: Documentation has been improved.
|
||
* public_key: For completeness handle rsa_pss implicit default
|
||
value, although this will probably not be commonly used as it
|
||
provides very weak security.
|
||
* public_key: The public_key:cacerts_load() function could in
|
||
some error cases return undefined instead of {error, Reason}.
|
||
* public_key: Added support for DragonFly.
|
||
* public_key: Deprecation of RSA encryption functions has been
|
||
reverted, as there still exists legitimate use cases with other
|
||
padding modes than PKCS-1.
|
||
* public_key: It is now possible to use a verification fun of
|
||
arity 4, giving the user fun access to both encoded and decoded
|
||
versions of the certificate. This is desirable as a workaround
|
||
for encoding errors preventing re-encoding from being reliable.
|
||
This also saves some work load if the encoded version is
|
||
needed.
|
||
* snmp: Man pages are now available for erl, erlc, dialyzer, and
|
||
all other programs that are included in Erlang/OTP.
|
||
* snmp: Figures in the documentation have been improved.
|
||
* tftp: The legacy dependency to m:error_logger has been removed.
|
||
m:logger is now used.
|
||
* ftp: Eliminated a race condition that sometimes resulted in
|
||
ftp:recv_bin/2 returning ok instead of {ok, Data}.
|
||
* odbc: Figures in the documentation have been improved.
|
||
* compiler: Fixed a crash in an optimization pass relating to
|
||
appending binaries.
|
||
* compiler: Fixed a bug in the compiler's alias analysis pass
|
||
that could make it emit unsafe code.
|
||
* common_test: Groups with empty list specifying groups and test
|
||
cases no longer crash execution.
|
||
* common_test: The Common_Test documentation and type specs have
|
||
been polished.
|
||
* common_test: Man pages are now available for erl, erlc,
|
||
dialyzer, and all other programs that are included in
|
||
Erlang/OTP.
|
||
* dialyzer: Man pages are now available for erl, erlc, dialyzer,
|
||
and all other programs that are included in Erlang/OTP.
|
||
* xmerl: Corrected export functions from internal structure to
|
||
XML so xmlText items of type cdata are handled correctly. They
|
||
were just exported as normal text instead of output in a CDATA
|
||
section.
|
||
* xmerl: The type spec for xmerl_sax_parser:file/2 has been
|
||
corrected to indicate that it can return an {error, _} tuple.
|
||
* runtime_tools: Fixed a bug where dbg sessions on remote nodes
|
||
were terminated prematurely.
|
||
* inets: The documentation for the m:httpd module has been
|
||
improved, along with correction of headings and types.
|
||
* inets: Userinfo is now properly percent-decoded before usage in
|
||
headers.
|
||
* stdlib: The help printout for incorrect t:io:format/0 strings
|
||
now handles the k modifier correctly.
|
||
* stdlib: Fixed a bug that caused the shell completion to crash
|
||
when keyword and tuple appeared on the same line.
|
||
* stdlib: Due to PR-7419/OTP-18671, the cached internal value of
|
||
the callback_mode started leaking out to logger reports, which
|
||
could cause logger handlers to crash. This has now been fixed
|
||
to show the value that was set, as before caching.
|
||
* stdlib: Fixed an emulator crash relating to compressed ETS
|
||
tables.
|
||
* stdlib: The error description for maps:update/3 will no longer
|
||
insist that the third argument is not a map when a key could
|
||
not be found
|
||
* stdlib: Multiple issues have been corrected in the markdown
|
||
parser that creates documentation for the shell.
|
||
* stdlib: Fixed category for some codepoint ranges in
|
||
unicode_util.
|
||
* stdlib: Fixed m:argparse to print sub-commands help when
|
||
available.
|
||
* stdlib: Class annotation to HTML from fenced blocks have been
|
||
added.
|
||
* stdlib: Added JSON formatting functions for indented output.
|
||
* stdlib: Improved illegal pattern error for accidental map
|
||
associations.
|
||
* stdlib: Progress reports for a dynamically started supervisor
|
||
will now be logged at debug level.
|
||
* stdlib: The m:zip module has been updated with support for:
|
||
* edoc: Broken links in release notes have been mended.
|
||
* tools: m:tprof no longer crashes when using
|
||
pause/restart/continue when profiling all modules.
|
||
* tools: On systems supporting native coverage, calls to m:cover
|
||
could hang or crash if cover-compiled module had been reloaded
|
||
from outside cover. This has been corrected so that cover now
|
||
recovers from the error and and sends a report to the logger
|
||
about the failure to retrieve coverage information.
|
||
* tools: Figures in the documentation have been improved.
|
||
* erts: The erl -man example has been corrected to not consider
|
||
values set in ERL_ZFLAGS and stop parsing arguments when a --
|
||
is encountered.
|
||
* erts: Compiler warnings for Windows I/O back-end have been
|
||
silenced.
|
||
* erts: Bugs related to return_to trace have been fixed. It did
|
||
not work for more than once trace session and it did sometimes
|
||
not trigger for exceptions.
|
||
* erts: Potential deadlocks while writing a crash dump have been
|
||
eliminated.
|
||
* erts: When loading a damaged or too old BEAM file, the runtime
|
||
system could crash.
|
||
* erts: A scheduler thread could get stuck when deleting a memory
|
||
allocator carrier when adjacent carriers were deleted and/or
|
||
inserted simultaneously by other schedulers. This in turn could
|
||
cause the other schedulers to get stuck as well.
|
||
* erts: Statistics for number of carriers in a shared pool after
|
||
calling instrument:allocations or instrument:carriers are now
|
||
correct. Also, a potential bug in carrier block scanning was
|
||
eliminated.
|
||
* erts: A race in the kTLS flavour of SSL distribution has been
|
||
fixed so that inet_drv.c doesn't read ahead too much data,
|
||
which could cause the kTLS encryption to be activated too late
|
||
when some encrypted data had already been read into the
|
||
inet_drv.c buffer as unencrypted.
|
||
* erts: Fixed an emulator crash relating to compressed ETS
|
||
tables.
|
||
* erts: A function (encode_sockaddr) was called with superfluous
|
||
argument, on Windows, in the net nif.
|
||
* erts: Fixed a crash that could happen on reallocation failure.
|
||
* erts: Man pages are now available for erl, erlc, dialyzer, and
|
||
all other programs that are included in Erlang/OTP.
|
||
* erts: A previous correction in the Erlang/OTP 27.0.1 emergency
|
||
patch had the unfortunate side effect of sometimes causing an
|
||
unnecessary fullsweep (major) garbage collection instead of a
|
||
generation (minor) garbage collection. This has been corrected.
|
||
* erts: Fixed trace matchspec functions trace and enable_trace to
|
||
use the session tracer when enabling trace flags on untraced
|
||
processes.
|
||
* erts: Fixed a typo in the type spec for
|
||
t:erlang:garbage_collection_defaults/0.
|
||
* erts: Corrected socket:ioctl for genaddr (SIOCGENADDR).
|
||
* erts: The support for Transparent Huge Pages has been disabled
|
||
on non-amd64 Linux systems.
|
||
* erts: Fixed a race condition on Windows when upgrading from
|
||
-noshell to a shell that would cause Erlang to crash with the
|
||
error:
|
||
* erts: Added functions getservbyname and getservbyport to the
|
||
net module.
|
||
* erts: Introduced enet | esock variants of m:inet functions,
|
||
either when called with sockets, with explicit inet_backend
|
||
config or with the e inet_backend kernel config option.
|
||
* erts: Optimize process and port creation when such tracing is
|
||
not enabled by any trace session.
|
||
* erts: Compiler warnings for some removed functions have been
|
||
corrected to point out the correct replacement functions.
|
||
* erts: A boolean option read_ahead has been implemented for
|
||
gen_tcp, default true, to facilitate not reading past (caching
|
||
data) the end of a packet. In particular, for kTLS, caching
|
||
data could read in data that was supposed to be decrypted by
|
||
the platform's network stack, before crypto parameters could be
|
||
activated.
|
||
* erts: The m:zip module has been updated with support for:
|
||
* kernel: A faulty assertion was corrected in the prim_tty
|
||
module. This assertion could trigger when invalid UTF-8 was
|
||
read from stdin just as the mode was changed from unicode to
|
||
latin1.
|
||
* kernel: Opening a disk_log file and combining head_func with
|
||
rotate options did not work.
|
||
* kernel: Fixed an error info printout for
|
||
erlang:is_process_alive/1 on non-local pids.
|
||
* kernel: A race in the kTLS flavour of SSL distribution has been
|
||
fixed so that inet_drv.c doesn't read ahead too much data,
|
||
which could cause the kTLS encryption to be activated too late
|
||
when some encrypted data had already been read into the
|
||
inet_drv.c buffer as unencrypted.
|
||
* kernel: Fixed a deadlock when an application crashes during
|
||
startup and log messages were sent to standard out. Logger
|
||
would fail to print the messages to standard out and instead
|
||
print them to standard error.
|
||
* kernel: The -proto_dist init parameter will no longer be
|
||
ignored when specified multiple times. It will now log a
|
||
warning and use the first specified value.
|
||
* kernel: Corrected socket:ioctl for genaddr (SIOCGENADDR).
|
||
* kernel: Added functions getservbyname and getservbyport to the
|
||
net module.
|
||
* kernel: Introduced enet | esock variants of m:inet functions,
|
||
either when called with sockets, with explicit inet_backend
|
||
config or with the e inet_backend kernel config option.
|
||
* kernel: The function socket:i/0 now uses the m:net module
|
||
(instead of the m:inet module) for service translation.
|
||
* kernel: A boolean option read_ahead has been implemented for
|
||
gen_tcp, default true, to facilitate not reading past (caching
|
||
data) the end of a packet. In particular, for kTLS, caching
|
||
data could read in data that was supposed to be decrypted by
|
||
the platform's network stack, before crypto parameters could be
|
||
activated.
|
||
* syntax_tools: The documentation for syntax_tools has been
|
||
polished after the migration to the new documentation system.
|
||
* asn1: Fixed a cosmetic but harmless issue with the ASN.1
|
||
compiler passing on the undec_rest option to the Erlang
|
||
compiler.
|
||
- Changes for 27.0.1:
|
||
* ssh: With this change, race condition between connection
|
||
closing and automatic window adjustment is fixed.
|
||
* ssl: Check for TLS-1.3 support should check minimum
|
||
requirements.
|
||
* ssl: If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2
|
||
negotiated convert TLS-1.3 ECDSA schemes to TLS-1.2 hash and
|
||
signature pairs for increased interoperability.
|
||
* ssl: TLS-1.3 negotiation now uses SNI based options correctly
|
||
instead of ignoring them.
|
||
* ssl: Make it easier to distinguish between a invalid signature
|
||
and unsupported signature.
|
||
* ssl: Enhance ALERT logs to help understand what causes the
|
||
alert.
|
||
* ssl: When the default value for signature_algs is used, default
|
||
the signature_algs_cert to the default value + rsa_pkcs1_sha1
|
||
to allow this algorithms for certificates but not for the TLS
|
||
protocol. This is for better interoperability. If
|
||
signature_algs is set explicitly signature_algs_cert must also
|
||
be set explicitly if they should be different.
|
||
* public_key: Fix bug in dnsName constraint check, could cause
|
||
valid cert to be considered bad during path validation.
|
||
* compiler: One of the compiler's optimization passes would get
|
||
very slow when compiling certain modules. The compiler will now
|
||
automatically disable that pass for input that would trigger
|
||
the slowdown.
|
||
* compiler: Fix +deterministic to work properly with
|
||
documentation attributes.
|
||
* stdlib: Fix so that missing -doc({file, File}) files only
|
||
result in a warning and not an error.
|
||
* stdlib: Fixed m:json bugs, json:encode_key_value_list/2 did not
|
||
generate arrays and json:decode/3 did not invoke the user
|
||
callback for 0.
|
||
* edoc: Fix broken makefile dependency when building HTML
|
||
documentation.
|
||
* erts: In rare circumstances the JIT could do an unsafe in-place
|
||
update of a tuple.
|
||
* erts: When a port command crashed in the inet driver during
|
||
gen_tcp:send/2, a monitor 'DOWN' message could be left
|
||
lingering in the caller's mailbox. This has now been fixed.
|
||
* erts: 'DOWN' messages originating from a monitored port,
|
||
contained the atom process instead of the atom port as the
|
||
third element when the exit reason was not an immediate term.
|
||
* erts: Fix so that the options to enable Transparent Huge Page
|
||
alignment of the Erlang VM executable are only applied to the
|
||
Erlang VM and not other native programs such as erlc and
|
||
dialyzer. This bug was introduced in Erlang/OTP 27.0.
|
||
* erts: When [*no time warp mode*](time_correction.md#no-time-
|
||
warp-mode) was enabled, a smaller Erlang monotonic time could
|
||
be read than a previously read time, i.e., breaking the
|
||
monotonic property. The runtime system will abort when
|
||
detecting an issue like this since OTP 24.3.4.17 and OTP 25.0.
|
||
* erts: When calling trace:function(Session, _, true, [meta]) the
|
||
meta tracer was incorrectly set to be the calling process. Now
|
||
it's set to the session tracer as expected.
|
||
* kernel: Polish the m:logger documentation.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Sep 20 15:42:43 UTC 2024 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Version 27.0:
|
||
* Triple-Quoted Strings has been implemented as per EEP 64 to
|
||
allow a string to encompass a complete paragraph.
|
||
* Adjacent string literals without intervening white space is now
|
||
a syntax error, to avoid possible confusion with triple-quoted
|
||
strings.
|
||
* Sigils on string literals (both ordinary and triple-quoted)
|
||
have been implemented as per EEP 66. For example, ~"Björn" or
|
||
~b"Björn" are now equivalent to <<"Björn"/utf8>>.
|
||
* The compiler will now merge consecutive updates of the same
|
||
record.
|
||
* Safe destructive update of tuples has been implemented in the
|
||
compiler and runtime system. This allows the VM to update
|
||
tuples in-place when it is safe to do so, thus improving
|
||
performance by doing less copying but also by producing less
|
||
garbage.
|
||
* The maybe expression is now enabled by default, eliminating the
|
||
need for enabling the maybe_expr feature.
|
||
* Native coverage support has been implemented in the JIT. It
|
||
will automatically be used by the cover tool to reduce the
|
||
execution overhead when running cover-compiled code. There are
|
||
also new APIs to support native coverage without using the
|
||
cover tool.
|
||
* The compiler will now raise a warning when updating record/map
|
||
literals to catch a common mistake. For example, the compiler
|
||
will now emit a warning for #r{a=1}#r{b=2}.
|
||
* The erl command now supports the -S flag, which is similar to
|
||
the -run flag, but with some of the rough edges filed off.
|
||
* By default, escripts will now be compiled instead of
|
||
interpreted. That means that the compiler application must be
|
||
installed.
|
||
* The default process limit has been raised to 1048576 processes.
|
||
* The erlang:system_monitor/2 functionality is now able to
|
||
monitor long message queues in the system.
|
||
* The obsolete and undocumented support for opening a port to an
|
||
external resource by passing an atom (or a string) as first
|
||
argument to open_port(), implemented by the vanilla driver, has
|
||
been removed. This feature has been scheduled for removal in
|
||
OTP 27 since the release of OTP 26.
|
||
* The pid field has been removed from erlang:fun_info/1,2.
|
||
Multiple trace sessions are now supported.
|
||
* There is a new module json for encoding and decoding JSON.
|
||
* Several new functions that accept funs have been added to module timer.
|
||
* The functions is_equal/2, map/2, and filtermap/2 have been
|
||
added to the modules sets, ordsets, and gb_sets.
|
||
* There are new efficient ets traversal functions with guaranteed
|
||
atomicity. For example, ets:next/2 followed by ets:lookup/2 can
|
||
now be replaced with ets:next_lookup/1.
|
||
* The new function ets:update_element/4 is similar to
|
||
ets:update_element/3, but takes a default tuple as the fourth
|
||
argument, which will be inserted if no previous record with
|
||
that key exists.
|
||
* binary:replace/3,4 now supports using a fun for supplying the
|
||
replacement binary.
|
||
* The new function proc_lib:set_label/1 can be used to add a
|
||
descriptive term to any process that does not have a registered
|
||
name. The name will be shown by tools such as c:i/0 and
|
||
observer, and it will be included in crash reports produced by
|
||
processes using gen_server, gen_statem, gen_event, and gen_fsm.
|
||
* Added functions to retrieve the next higher or lower
|
||
key/element from gb_trees and gb_sets, as well as returning
|
||
iterators that start at given keys/elements.
|
||
* common_test: Calls to ct:capture_start/0 and ct:capture_stop/0
|
||
are now synchronous to ensure that all output is captured.
|
||
* common_test: The default CSS will now include a basic dark mode
|
||
handling if it is preferred by the browser.
|
||
* crypto: The functions crypto_dyn_iv_init/3 and
|
||
crypto_dyn_iv_update/3 that were marked as deprecated in
|
||
Erlang/OTP 25 have been removed.
|
||
* dialyzer: The --gui option for Dialyzer has been removed.
|
||
* ssl: The ssl client can negotiate and handle certificate status
|
||
request (OCSP stapling support on the client side).
|
||
* tools: There is a new tool tprof, which combines the
|
||
functionality of eprof and cprof under one interface. It also
|
||
adds heap profiling.
|
||
* xmerl: As an alternative to xmerl_xml, a new export module
|
||
xmerl_xml_indent that provides out-of-the box indented output
|
||
has been added.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Aug 03 07:23:34 UTC 2024 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 26.2.5.2:
|
||
* erts: When no time warp mode was enabled, a smaller Erlang
|
||
monotonic time could be read than a previously read time, i.e.,
|
||
breaking the monotonic property. The runtime system will abort
|
||
when detecting an issue like this since OTP 24.3.4.17 and OTP
|
||
25.0. Up until OTP 25 no time warp mode is the default. As of
|
||
OTP 26 multi time warp mode is the default.
|
||
* erts: A scheduler thread could get stuck when deleting a memory
|
||
allocator carrier when adjacent carriers were deleted and/or
|
||
inserted simultaneously by other schedulers. This in turn could
|
||
cause the other schedulers to get stuck as well.
|
||
* crypto: Add warning in documentation to avoid crypto:start/0 as
|
||
it does not work for FIPS mode. Use application:start(crypto)
|
||
instead.
|
||
* stdlib: Fixed a bug that caused the shell completion to crash
|
||
when keyword and tuple appeared on the same line.
|
||
* ssl: When the default value for signature_algs is used, default
|
||
the signature_algs_cert to the default value + rsa_pkcs1_sha1
|
||
to allow this algorithms for certificates but not for the TLS
|
||
protocol. This is for better interoperability. If
|
||
signature_algs is set explicitly signature_algs_cert must also
|
||
be set explicitly if they should be different.
|
||
- Changes for 26.2.5.1:
|
||
* erts: A call to socket:[recv|recvfrom|recvmsg]/* with Timeout =
|
||
0 on Windows could cause a (case clause) crash if data is
|
||
immediately available.
|
||
* erts: When a port command crashed in the inet driver during
|
||
gen_tcp:send/2, a monitor 'DOWN' message could be left
|
||
lingering in the caller's mailbox. This has now been fixed.
|
||
* erts: 'DOWN' messages originating from a monitored port,
|
||
contained the atom process instead of the atom port as the
|
||
third element when the exit reason was not an immediate term.
|
||
* public_key: Fix bug in dnsName constraint check, could cause
|
||
valid cert to be considered bad during path validation.
|
||
* diameter: Pick peer can now also handle request of type
|
||
#diameter_packet{}.
|
||
* kernel: A call to socket:[recv|recvfrom|recvmsg]/* with Timeout
|
||
= 0 on Windows could cause a (case clause) crash if data is
|
||
immediately available.
|
||
* kernel: Open a disk_log file and combining head_func with
|
||
rotate options did not work.
|
||
* ssh: With this change, ssh client will automatically adjust
|
||
transfer window size for commands executed remotely over SSH.
|
||
* ssh: With this change, race condition between connection
|
||
closing and automatic window adjustment is fixed.
|
||
* ssl: Check for TLS-1.3 support should check minimum
|
||
requirements.
|
||
* ssl: If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2
|
||
negotiated convert TLS-1.3 ECDSA schemes to TLS-1.2 hash and
|
||
signature pairs for increased interoperability.
|
||
* ssl: TLS-1.3 negotiation now uses SNI based options correctly
|
||
instead of ignoring them.
|
||
* ssl: Make it easier to distinguish between a invalid signature
|
||
and unsupported signature.
|
||
* ssl: Enhance ALERT logs to help understand what causes the
|
||
alert.
|
||
- Changes for 26.2.5:
|
||
* erts: gen_sctp:send/3,4 now waits for the send to complete
|
||
instead of returning an OS result such as {error, ewouldblock}.
|
||
* erts: ETS functions did not properly handle keys containing
|
||
maps, sometimes matching too many or too few objects.
|
||
* erts: Fix CPU quota determination for cgroups. The bug was
|
||
introduced through OTP-18999.
|
||
* erts: Added a warning to open_port/2 regarding the BadBatBut
|
||
attack affecting Windows.
|
||
* dialyzer: Fixed an issue with bitstring type inference on
|
||
segments following UTF-8/16/32 segments.
|
||
* kernel: Fix the shell Job Control Mode to not crash when typing
|
||
TAB or CTRL+R.
|
||
* kernel: Fix calls to blocking application APIs to throw an
|
||
exception with reason terminating if called when the system is
|
||
terminating. This is done in order to avoid deadlocks during
|
||
shutdown or restart.
|
||
* stdlib: Fix shell expansion of -type a() :: $a. in the erlang
|
||
shell.
|
||
* stdlib: Fix the shell Job Control Mode to not crash when typing
|
||
TAB or CTRL+R.
|
||
* ssl: Fix certificate authorities check so that CA closest to
|
||
peer is not lost. It could manifest itself in a failed
|
||
connection as the client failed to realize it had a valid
|
||
certificate chain to send to the server.
|
||
* ssl: ssl:signature_algs/2 did not list some legacy algorithm
|
||
schemes correctly when listing all algorithms available.
|
||
* mnesia: Mnesia could crash during startup if del_table_copy/2
|
||
and add_table_copy/3 was invoked when the table was loading.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Apr 16 06:33:05 UTC 2024 - Simon Lees <sflees@suse.de>
|
||
|
||
- Changes for 26.2.4
|
||
* asn1: An ASN.1 module that contains named BIT STRING values
|
||
would fail to compiled if both the BER and JER
|
||
back-ends were enabled.
|
||
* Compiler: In rare circumstances, the compiler code generate
|
||
unsafe code for a bit syntax match.
|
||
* Compiler: In rare circumstances, binary matches that were
|
||
supposed to succeed failed.
|
||
* Compiler: Fixed a bug where a fun's environment could be
|
||
overridden by an argument in some cases.
|
||
* Crypto: Fix building with --enable-fips with OpenSSL 3 on
|
||
MacOS.
|
||
* Debugger: Guards with nested record expression could wrongly
|
||
evaluate to false.
|
||
* Diameter: Reduce the impact of calling service_info by not
|
||
counting the binaries (on the heap) info, This is done
|
||
by introducing an option, bins_info, which controls
|
||
this.
|
||
* erts: Fixed CPU quota determination for cgroup version 2
|
||
* erts: Fix faulty reduction counting in exiting process which
|
||
could cause it to do unnecessary yielding.
|
||
* erts: Fix bug in re:run/3 where if an invalid UTF-8 subject
|
||
was given, re:run could get stuck in an infinite loop.
|
||
Bug was introduced in Erlang/OTP 22.1.
|
||
* erts: On AArch64 (ARM64), Erlang code using bit syntax
|
||
construction compiled using Erlang/OTP 24 could crash
|
||
the runtime system when run in Erlang/OTP 26.2.3.
|
||
* erts: Calling erlang:trace/3 with first argument one of
|
||
ports, processes, existing_ports, existing_processes,
|
||
existing or all, could cause emulator crash if a dirty
|
||
scheduler was executing a simultaneous trace action.
|
||
* erts: Fixed an integer overflow when the monotonic time unit
|
||
reported by the operating system was greater than 10
|
||
and lower than 100 microseconds.
|
||
* erts: Fix option reuseaddr for FreeBSD 14
|
||
* erts: When a traced process executing on a dirty scheduler
|
||
received an exit signal, the dirty scheduler could use
|
||
the wrong thread specific data which could lead to a
|
||
crash.
|
||
* erts: Fixed a more or less harmless bug that caused time
|
||
correction of Erlang monotonic time to become slightly
|
||
off on Windows platforms when QueryPerformanceCounter()
|
||
was used as OS monotonic time source.
|
||
|
||
erlang:system_info(os_monotonic_time_source) now also
|
||
returns information about used resolution which not
|
||
always corresponds to the resolution of the OS
|
||
monotonic time source.
|
||
* erts: When using IPv6, classic gen_udp failed to add (group)
|
||
membership (drop was used instead).
|
||
* erts: Fix bug on Windows where "Unknown event: 2" would be
|
||
printed to the console.
|
||
* erts: Checks for monotonicity of monotonic time have been
|
||
improved so that Erlang and OS monotonic time are
|
||
checked separately.
|
||
* erts: For severe errors, when the `socket` module terminates
|
||
the Erlang VM, now an erl_crash.dump is produced, to
|
||
facilitate post mortem debugging.
|
||
* kernel: When using IPv6, classic gen_udp failed to add (group)
|
||
membership (drop was used instead).
|
||
* kernel: The check in inet_res of the RD bit has been relaxed
|
||
slightly.
|
||
* ssh: With this change, owner and group file attributes
|
||
decoding is fixed and results with value of integer
|
||
type.
|
||
* ssl: Cleanup and close all connections in DTLS when the
|
||
listen socket owner dies.
|
||
Improved IPv6 handling in DTLS.
|
||
* ssl: Fixed a crash in dtls accept.
|
||
* stdlib: Attempting to use the maybe construct in a macro
|
||
argument could crash the compiler.
|
||
|
||
- Changes for 26.2.3
|
||
* otp: Quote uninstall path in registry when installing on
|
||
windows.
|
||
* compiler: In rare circumstances, an unsafe optimization could
|
||
cause the compiler to generate incorrect code for list
|
||
matching.
|
||
* compiler: Fix the compilation server to restart if the
|
||
applications in its lib dir changes inbetween erlc
|
||
invokations.
|
||
* crypto: Fix compile error when OPENSSL_NO_DES is defined.
|
||
* crypto: The function crypto:pbkdf2_hmac will no longer block
|
||
the main schedulers. If the iteration count or block
|
||
size parameters are such that the function is likely to
|
||
take a long time to execute, the function will be
|
||
scheduled to run on a dirty CPU scheduler.
|
||
* erts: Fixed compile warning in erl_nif.c for gcc-13.
|
||
* erts: Fix C++ compile error for macros enif_select_read and
|
||
friends.
|
||
* erts: Fixed a name clash on Solaris that prevented the JIT
|
||
from being built.
|
||
* erts: Fix termcap detection on solaris.
|
||
* erts: Fix heap corruption bug that could cause runaway memory
|
||
consumption due to circular offheap list at process
|
||
exit. Other symptoms may also be possible. Bug exists
|
||
since OTP 25.0.
|
||
* erts: Do not clear tracing in old module instance if load
|
||
fails with 'not_purged'.
|
||
* erts: When exceeding the `max_heap_size` limit in a garbage
|
||
collection initiated by some bit syntax operations, the
|
||
process would not always terminate immediately.
|
||
* erts: The code server could be hanging if a module with
|
||
on_load function was loaded at the same time as another
|
||
module was purged using erlang:purge_module directly.
|
||
* erts: A process optimized for parallel signal delivery could
|
||
under some circumstances lose wakeup information. That
|
||
is, the processes was not woken up to take care of the
|
||
signal, so the signal would not be taken care of until
|
||
the process was woken by another signal. Only processes
|
||
configured with message_queue_data set to off_heap
|
||
utilize this optimization.
|
||
* erts: Fix segfault when generating crashdump containing a fun
|
||
places in persistent_term storage.
|
||
* erts: By default the JIT is disabled on Intel Macs, because
|
||
of annoying poups on macOS Sonoma. It is now possible
|
||
to explicitly enable the JIT on Intel Macs. Here is
|
||
how: ./configure --enable-jit
|
||
* kernel: Fix performance bug when using io:fread to read from
|
||
standard_io. This regression was introduced in OTP
|
||
26.0.
|
||
* kernel: A bug in the code server could cause it to crash in
|
||
some concurrent scenarios. This bug was introduced in
|
||
26.1.
|
||
* kernel: Fixed gen_udp:open/2 type spec to include already
|
||
supported module socket address types.
|
||
* kernel: Fix reading of password for ssh client when in
|
||
user_interactive mode.
|
||
* odbc: Use spec for API doc
|
||
* public_key: Hostname prefix with X number of dots should not be
|
||
accepted.
|
||
* ssh: With this change, acceptor_sup is not started for ssh
|
||
client as it is not needed in that role.
|
||
* ssh: With this change, more secure algorithms are preferred
|
||
by ssh and documentation is updated to reflect that.
|
||
* ssh: With this change, KEX strict terminal message is
|
||
emitted with debug verbosity.
|
||
* ssh: Fix reading of password for ssh client when in
|
||
user_interactive mode.
|
||
* ssl: ssl:prf/5, will start working instead of hanging in a
|
||
TLS-1.3 context if called appropriately. Note that the
|
||
implementation has changed and in OTP-27 a more
|
||
adequate API will be documented.
|
||
* ssl: Server name verification didn't work if a connection
|
||
was made with IP-address as a string.
|
||
* ssl: The fallback after "dh" ssl option was undefined was to
|
||
get "dh" from ssl options again. This is clearly wrong
|
||
and now changed to the documented fallback "dhfile" ssl
|
||
option.
|
||
* ssl: Correct default value selection for DTLS. Will only
|
||
affect users linked with really old version of
|
||
cryptolib library.
|
||
* ssl: Adhere elliptic curves with RFC 8422 pre TLS-1.3, that
|
||
is Edwards curves are added to curves that can be used
|
||
for key exchange, and documentation and implementation
|
||
of eccs/0,1 are aligned.
|
||
* ssl: Improve alert reason when ecdhe_rsa key_exchange does
|
||
not have any common curves to use
|
||
* stdlib: The help texts shown by argparse will now display
|
||
sub-command arguments in the correct order.
|
||
* stdlib: Clarified the argparse documentation regarding the
|
||
user-defined help template.
|
||
* stdlib: Fix shell expansion to not crash when expanding invalid
|
||
using invalid atoms.
|
||
* wx: Add option to silence wx depracation macros.
|
||
|
||
- Changes for 26.2.2
|
||
* common_test: Fix how CT finds Erlang/OTP releases for compatability
|
||
testing. This functionality is only used to test
|
||
Erlang/OTP.
|
||
* erl_interface: Fix bug where the system installed openssl/md5.h would
|
||
be confused with the vendored md5.h.
|
||
* erts: 32-bit runtime systems on most Unix like platforms
|
||
could crash if a BIF timer was set with a huge timeout
|
||
of more than 68 years into the future. In order for the
|
||
crash to occur, the huge timer (at a later time than
|
||
when it was set) had to become the nearest active timer
|
||
set on the specific scheduler on which it was set. This
|
||
could not happen on a system with only one scheduler
|
||
since there would always be shorter timers in the
|
||
system.
|
||
|
||
Setting a timer larger than 49 days on Windows could
|
||
under rare circumstances cause the timeout to be
|
||
delayed.
|
||
* erts: Fix bug where the system installed openssl/md5.h would
|
||
be confused with the vendored md5.h.
|
||
* erts: The JIT has now been disabled on x86 Macs to prevent
|
||
annoying the "verifying shm-xyz" popups introduced in
|
||
MacOS Sonoma.
|
||
ARM Macs are unaffected.
|
||
* erts: Garbage collection of a process on a dirty scheduler
|
||
could collide with signal handling for that process
|
||
causing a crash of the runtime system. This bug was
|
||
introduced in OTP 25.3.2.8 and OTP 26.2.
|
||
* kernel: Fix group (that is the shell) to properly handle when
|
||
an get_until callback function returned {done, eof, []}
|
||
when an eof was detected.
|
||
* ssh: With this change, Curve25519 and Curve448 KEX methods
|
||
become most preferred (related to RFC8731).
|
||
* ssl: Legacy name handling could cause interop problems
|
||
between TLS-1.3/1.2 client and TLS-1.2 server.
|
||
- Fix for bsc#1222591
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 22 11:41:18 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- Use %patch -P N instead of deprecated %patchN.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jan 23 09:35:11 UTC 2024 - Simon Lees <sflees@suse.de>
|
||
|
||
- Disable rpmlint tests on SLE-15 where they currently fail
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jan 23 01:27:26 UTC 2024 - Simon Lees <sflees@suse.de>
|
||
|
||
- This codestream wasn't affected by bsc#1207113
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 11 06:09:29 UTC 2024 - Simon Lees <sflees@suse.de>
|
||
|
||
- Changes for 26.2.1:
|
||
* erts: Removed unnecessary PCRE source tar-ball.
|
||
* ssh: With this change (being response to CVE-2023-48795),
|
||
ssh can negotiate "strict KEX" OpenSSH extension with
|
||
peers supporting it; also
|
||
'chacha20-poly1305@openssh.com' algorithm becomes a
|
||
less preferred cipher.
|
||
If strict KEX availability cannot be ensured on both
|
||
connection sides, affected encryption modes(CHACHA and
|
||
CBC) can be disabled with standard ssh configuration.
|
||
This will provide protection against vulnerability, but
|
||
at a cost of affecting interoperability. See
|
||
Configuring algorithms in SSH. (bsc#1218192, CVE-2023-48795)
|
||
- Changes for 26.2:
|
||
* all: Replaced unintentional Erlang Public License 1.1
|
||
headers in some files with the intended Apache License
|
||
2.0 header.
|
||
* otp: The removal of the deprecated slave module, originally
|
||
planned for OTP 27, has been postponed to OTP 29.
|
||
* asn1: Fix benign warning from gcc 11 about mismatching call
|
||
to free().
|
||
* crypto: Enable engine support for OpenSSL versions 3.
|
||
* edoc: Emit <code> instead of <tt>.
|
||
- Disable test suite for now, it has many false positives and
|
||
takes a very long time.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Oct 25 15:15:02 UTC 2023 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 26.1.2:
|
||
* erts: If the external term format encoding of an argument list
|
||
part of a distributed spawn operation was faulty, the newly
|
||
spawned remote process could misbehave. The misbehavior
|
||
included hanging or interpret an incoming message as an
|
||
argument list to use. This was very unlikely to happen unless
|
||
using an alternate implementation of the distribution protocol
|
||
which made a faulty encoding of the argument list. The child
|
||
process will now detect this error and terminate before
|
||
executing the user specified code.
|
||
* erts: Fix bugs where if the body of a matchspec would return a
|
||
map with a variable ('$1', '$_' etc) as one of the keys or
|
||
values and the variable was not an immidiate, the term would
|
||
not be copied to the receiving processes heap. This would later
|
||
corrupt the term in the table as the GC could place move
|
||
markers in it, which in turn would cause the VM to crash. Bug
|
||
has been present for since OTP 17.0.
|
||
* xmerl: The xmerl version 1.3.32 was released in OTP 26.0.1, but
|
||
the incorrect version number of 1.3.31.1 was used for it. This
|
||
incorrect version number continued to appear in OTP 26.0.2, OTP
|
||
26.1, and OTP 26.1.1. The actual xmerl code in these OTP
|
||
versions however corresponds to xmerl version 1.3.32.
|
||
- Changes for 26.1.1:
|
||
* wx: The wx application would fail to build on macOS with Xcode
|
||
15.
|
||
* compiler: The compiler could become extremely slow for modules
|
||
containing huge functions.
|
||
* stdlib: Garbage collect the shell process when reducing the
|
||
amount of saved history and results.
|
||
- Changes for 26.1:
|
||
* crypto: Fix VM crash caused by crypto being purged and reloaded
|
||
(by init:restart for example) on OS with musl libc (such as
|
||
Alpine linux).
|
||
* crypto: Improved understanding of LibreSSL versions. Support
|
||
chacha20 and chacha20_poly1305 for LibreSSL 3.7. Reflect
|
||
removal of support for the DSS/DSA algorithm which was done in
|
||
LibreSSL 2.6.1.
|
||
* crypto: FIPS supported by crypto for OpenSSL 3.0.* and 3.1.*.
|
||
* asn1: The ASN.1 compiler would ignore a constraint such as
|
||
(SIZE (1..4), ...), causing incorrect behavior of the encoding
|
||
and decoding function for the PER and UPER backends. Corrected
|
||
to handle the constraint in the same way as (SIZE (1..4, ...)).
|
||
* asn1: The JER backend has been internally refactored in a way
|
||
that is compatible for applications that use the documented
|
||
API. However, for a group of ASN.1 modules that depend on each
|
||
other (for example, S1AP-PDU-Descriptions, S1AP-Contents, and
|
||
so on), all modules in the group must be recompiled if on of
|
||
the group members is recompiled.
|
||
* observer: Closing the trace log window via the menu did not
|
||
work.
|
||
* erts: maps:put with existing key and identical value was not
|
||
optimized as a no-op correctly if having the same 32-bit hash
|
||
as another key in the map. In practice very rare and harmless.
|
||
* erts: Fixed an issue with truncated crash slogans on failed
|
||
emulator start.
|
||
* erts: Fixed a bug where the emulator was unable to determine
|
||
the current cgroup CPU quota.
|
||
* erts: A process optimized for parallel signal delivery could
|
||
under some circumstances lose wakeup information. That is, the
|
||
processes was not woken up to take care of the signal, so the
|
||
signal would not be taken care of until the process was woken
|
||
by another signal. Only processes configured with
|
||
message_queue_data set to off_heap utilize this optimization.
|
||
* erts: Function socket:close/1 could cause a VM crash on
|
||
Windows.
|
||
* erts: Fixed a bug in the ARM JIT where it could accidentally
|
||
add garbage trailing bits when creating bitstrings whose size
|
||
wasn't an even multiple of 8 bits.
|
||
* erts: Fix erlang:system_info/1 documentation to show correct
|
||
types.
|
||
* erts: Expanded the documentation about how to use the
|
||
standard_io, standard_error and user I/O devices. Added the
|
||
types io:standard_io/0, io:standard:error/0 and io:user/0.
|
||
* erts: Fix compilation with GNU termcap.
|
||
* erts: Delivery time of message signals to a process not
|
||
executing any receive expressions could become very long,
|
||
potentially infinite. For example, a process checking for
|
||
messages using process_info(self(), message_queue_len) or
|
||
process_info(self(), messages) and avoiding to execute a
|
||
receive expression matching on messages could be very slow in
|
||
detecting new messages. Note that you are still discouraged
|
||
from using process_info() this way. A process that wants to
|
||
check if there are messages available to handle should execute
|
||
a receive expression matching on messages.
|
||
* erts: On AArch64 (ARM64), when calculating both the quotient
|
||
and remainder with a divisor begin a power two, the remainder
|
||
could be incorrectly calculated.
|
||
* erts: Fix bug causing "magic" references in a compressed ETS
|
||
table to not keep the referred object alive. The symptom would
|
||
be the referred object being garbage collected prematurely and
|
||
the reference appearing stale, not referring to anything.
|
||
Examples of such magically referred objects are atomics and NIF
|
||
resources.
|
||
* erts: Matching out short bitstrings with a fixed size not
|
||
divisible by 8 could could lead to the runtime system
|
||
terminating with an "Overrun heap and stack" error.
|
||
* erts: A constant flow of incoming non-message signals could
|
||
prevent a process needing to execute dirty from doing so.
|
||
* erts: A BEAM file usually contains a chunk with the tag "Type"
|
||
containing type information that can be used by the JIT. The
|
||
beam_lib:strip/1 takes care to preserve that chunk, but a
|
||
build/release tool that does customized stripping could
|
||
accidentally remove the chunk. Loading a BEAM file without the
|
||
"Type" chunk could cause incorrect behavior of the loaded code.
|
||
* erts: gen_udp:recv/* for Unix Domain Socket in binary mode and
|
||
passive mode has been fixed to not crash.
|
||
* erts: The cleanup operation of not yet delivered signals to a
|
||
terminated process yielded excessively.
|
||
* erts: Fixed minor hashing issue with the local option of
|
||
term_to_binary()/term_to_iovec().
|
||
* erts: Update gen_tcp_socket and gen_udp_socket to handle
|
||
'completion' (socket on Windows).
|
||
* erts: Add support for Unix Domain Sockets (only for STREAM
|
||
sockets) on Windows for 'socket'.
|
||
* erts: In Erlang/OTP 27, by default escripts will be compiled
|
||
before being executed. That means that the compiler application
|
||
must be installed. It is possible to force the escript to be
|
||
interpreted by adding the directive -mode(interpret). to the
|
||
escript file. In Erlang/OTP 28, support for interpreting an
|
||
escript will be removed.
|
||
* erts: Add basic support for socket ioctl on Windows.
|
||
* erts: Removed erts/etc/darwin/Info.plist, as it is no longer
|
||
necessary after macos 10.12
|
||
* erts: Add support for (Windows) socket option exclusiveaddruse.
|
||
* erts: [socket] Add support for the 'nopush' option.
|
||
* erts: Add support for socket option 'BSP STATE'.
|
||
* erts: Add tcp socket options 'keepcnt', 'keepidle' and
|
||
'keepintvl'.
|
||
* erts: Add support for misc (Windows) socket options
|
||
('max_msg_size' and 'maxdg').
|
||
* compiler: The compiler could run forever when compiling a call
|
||
to is_record/3 with a huge positive tuple size. The call
|
||
is_record(A, a, 0) would crash the compiler when used in a
|
||
function body. When used in a guard the compiler would emit
|
||
incorrect code that would accept {a> as a record.
|
||
* compiler: Fixed a bug that caused dialyzer to crash when
|
||
analyzing bogus code that contained the literal atom undefined
|
||
in segment sizes.
|
||
* compiler: The compiler would crash when compiling some modules
|
||
that contained a call to erlang:load_nif/2.
|
||
* compiler: Fixed a bug that caused the compiler to crash on
|
||
legal code.
|
||
* compiler: The compiler could crash when attempting to compile a
|
||
call to is_list/1 in a complex expression.
|
||
* compiler: A complex guard expression using the or operator
|
||
could succeed when it was supposed to fail.
|
||
* compiler: Compiling nested try/catch and catch expression could
|
||
result in an internal compiler error.
|
||
* compiler: Using the bnot operator in a complex expression could
|
||
cause the compiler to terminate with an internal consistency
|
||
failure diagnostic.
|
||
* compiler: Fixed a bug that caused the compiler to crash in a
|
||
binary optimization pass.
|
||
* compiler: The compiler could terminate with an internal error
|
||
when attempting to compile a binary pattern that could not
|
||
possibly match.
|
||
* compiler: Fixed various performance issues related to the alias
|
||
optimization pass.
|
||
* erl_docgen: Expanded the documentation about how to use the
|
||
standard_io, standard_error and user I/O devices. Added the
|
||
types io:standard_io/0, io:standard:error/0 and io:user/0.
|
||
* mnesia: Do not delete old backup file if the new backup fails.
|
||
* megaco: Make megaco transports handle gen_tcp | gen_udp with
|
||
socket backend on Windows (completion).
|
||
* common_test: With this change, ct_hooks manual refers to CTH
|
||
execution order section in user guide.
|
||
* common_test: With this change, Config data from
|
||
pre_end_per_testcase hook is delivered to post_end_per_testcase
|
||
callback in case of testcase timetrap or linked process crash.
|
||
* common_test: With this change, remaining references to not
|
||
supported vts tool in ct_run are removed (mainly relates to
|
||
docs and ct_run help message).
|
||
* common_test: With this change, prompt search functionality in
|
||
ct_telnet handles unicode input.
|
||
* common_test: Expanded the documentation about how to use the
|
||
standard_io, standard_error and user I/O devices. Added the
|
||
types io:standard_io/0, io:standard:error/0 and io:user/0.
|
||
* stdlib: The compiler could run forever when compiling a call to
|
||
is_record/3 with a huge positive tuple size. The call
|
||
is_record(A, a, 0) would crash the compiler when used in a
|
||
function body. When used in a guard the compiler would emit
|
||
incorrect code that would accept {a> as a record.
|
||
* stdlib: Fix bug in ets:tab2file that could make it fail if
|
||
another Erlang process created the same file at the same time.
|
||
* stdlib: An {else_clause,Value} exception will now be reported
|
||
nicely in the shell.
|
||
* stdlib: Correct return value for error case, so that it matches
|
||
the documented and intended return value {error,
|
||
{already_started, pid()} when local registered names are used.
|
||
* stdlib: sys:get_state/1,2 and sys:replace_state/2,3 has been
|
||
corrected to handle a state named error as a state name, not as
|
||
a failed system callback. For the standard server behaviours
|
||
this was an issue only for gen_statem (and gen_fsm) when the
|
||
state name was error, and for gen_server if the complete state
|
||
was {error,_}.
|
||
* stdlib: Multiple problems were fixed in
|
||
filelib:safe_relative_path/2. If its second argument was a path
|
||
that contained symbolic links, an incorrect result patch could
|
||
be returned. Also, paths were sometimes falsely considered
|
||
unsafe.
|
||
* stdlib: Fix deadlock when erl.exe is used as part of a pipe on
|
||
Windows and trying to set the encoding of the standard_io
|
||
device.
|
||
* stdlib: Expanded the documentation about how to use the
|
||
standard_io, standard_error and user I/O devices. Added the
|
||
types io:standard_io/0, io:standard:error/0 and io:user/0.
|
||
* stdlib: Fix h/2,3 to properly render multi-clause
|
||
documentation.
|
||
* stdlib: Timers created by timer:apply_after/4,
|
||
apply_interval/4, and apply_repeatedly/4 would silently fail to
|
||
do the apply if it was not possible to spawn a process when the
|
||
timer expired. This has now been corrected, and if the spawn
|
||
fails, the system will be taken down producing a crash dump.
|
||
* stdlib: When an Erlang source file lacked a module definition,
|
||
there would be a spurious "module name must not be empty"
|
||
diagnostic for each spec in the file.
|
||
* stdlib: The argument descriptions for option types in argparse
|
||
have been made less ambiguous.
|
||
* stdlib: Clarified the documentation of normal shutdown reason
|
||
on gen_server:call/2,3
|
||
* stdlib: Pattern matching and equivalence (=:=, =/=) comparisons
|
||
on 0.0 will now raise a warning, as it will no longer be
|
||
considered equivalent to -0.0 in OTP 27. If a match on 0.0
|
||
specifically is desired (distinct from -0.0), the warning can
|
||
be suppressed by writing +0.0 instead. The arithmetic
|
||
comparison operators are unaffected, including arithmetic
|
||
equality (==). *** POTENTIAL INCOMPATIBILITY ***
|
||
* stdlib: The semantics of the gen_{server,statem,event}
|
||
behaviour's synchronous start behaviour introduced in OTP-26.0
|
||
with OTP-18471, has been clarified in the documentation.
|
||
* stdlib: Added functionality to set a custom multiline prompt.
|
||
* stdlib: A warning for (accidental use of) Triple-Quoted Strings
|
||
has been implemented as per EEP 64. *** POTENTIAL
|
||
INCOMPATIBILITY ***
|
||
* stdlib: The keyboard shortcuts for the shell are now
|
||
configurable.
|
||
* kernel: Fixed an issue with truncated crash slogans on failed
|
||
emulator start.
|
||
* kernel: Fix shell:start_interactive function specification.
|
||
* kernel: Fix code:get_doc/1 to return missing, when it can't
|
||
find erts instead of crashing.
|
||
* kernel: Function socket:close/1 could cause a VM crash on
|
||
Windows.
|
||
* kernel: Fix deadlock when erl.exe is used as part of a pipe on
|
||
Windows and trying to set the encoding of the standard_io
|
||
device.
|
||
* kernel: Expanded the documentation about how to use the
|
||
standard_io, standard_error and user I/O devices. Added the
|
||
types io:standard_io/0, io:standard:error/0 and io:user/0.
|
||
* kernel: Fix logger's overload protection mechanism to only
|
||
fetch memory used by messages when needed.
|
||
* kernel: Fixed a number of socket-related issues causing
|
||
incompatibilities with gen_tcp and gen_udp respectively.
|
||
* kernel: gen_tcp:connect with socket address and socket (inet-)
|
||
backend fails because of missing callback function.
|
||
* kernel: The DNS RR cache used by `inet_res` has been fixed to
|
||
preserve insert order, which is beneficial when the DNS server
|
||
returns RRs in some specific order for e.g load balancing
|
||
purposes.
|
||
* kernel: The options `reuseport`, `reuseport_lb` and
|
||
`exclusiveaddruse` were accidentally not allowed for e.g
|
||
`gen_udp:open/1,2`, which has now been corrected.
|
||
* kernel: gen_udp:recv/* for Unix Domain Socket in binary mode
|
||
and passive mode has been fixed to not crash.
|
||
* kernel: Fixed issue where cursor would not be placed at the end
|
||
of the expression when navigating shell history.
|
||
* kernel: Update gen_tcp_socket and gen_udp_socket to handle
|
||
'completion' (socket on Windows).
|
||
* kernel: Add support for Unix Domain Sockets (only for STREAM
|
||
sockets) on Windows for 'socket'.
|
||
* kernel: Add basic support for socket ioctl on Windows.
|
||
* kernel: The file:location/0 type is now exported.
|
||
* kernel: Add support for (Windows) socket option
|
||
exclusiveaddruse.
|
||
* kernel: [socket] Add support for the 'nopush' option.
|
||
* kernel: Add support for socket option 'BSP STATE'.
|
||
* kernel: Add tcp socket options 'keepcnt', 'keepidle' and
|
||
'keepintvl'.
|
||
* kernel: Add support for misc (Windows) socket options
|
||
('max_msg_size' and 'maxdg').
|
||
* kernel: The keyboard shortcuts for the shell are now
|
||
configurable.
|
||
* kernel: Optimized code_server to reduce repeated work when
|
||
loading the same module concurrently.
|
||
* debugger: The call int:no_break(Module) did not remove any
|
||
breakpoints.
|
||
* debugger: The maybe expression is now supported in the
|
||
Debugger.
|
||
* debugger: The maybe expression is now supported in the
|
||
Debugger.
|
||
* debugger: The call int:no_break(Module) did not remove any
|
||
breakpoints.
|
||
* ssl: Avoid function clause error in ssl:getopts/2 by handling
|
||
that inet:getopts may return an empty list during some
|
||
circumstances, such as the socket being in a closing state.
|
||
* ssl: The API function `ssl:recv/3` has been tightened to
|
||
disallow negative length, which has never been documented to
|
||
work, but was passed through and caused strange errors.
|
||
* ssl: When a client initiated renegotiation was rejected and the
|
||
client socket was in active mode the expected error message to
|
||
the controlling process was not sent.
|
||
* ssl: Add some guidance for signature algorithms configuration
|
||
in ssl applications users guide.
|
||
* snmp: Make snmp handle gen_udp with socket backend on Windows
|
||
(completion).
|
||
* public_key: Country name comparison shall be case insensitive
|
||
* public_key: Add check to disallow duplicate certs in a path
|
||
* inets: With this change, re_write httpd works as expected and
|
||
does not return error.
|
||
* inets: Fixed a bug so httpd does not crash when stopped at the
|
||
wrong time during TLS connection negotiation, or any other
|
||
theoretically as slow connection setup.
|
||
* inets: Enhance error handling and avoid that the HTTP client
|
||
hangs on headers provided on the wrong format.
|
||
* inets: With this change, error report generated by httpd during
|
||
connection setup contains socket type information.
|
||
* inets: Stop and restart of the httpd server in the Inets
|
||
application has been refactored to a more synchronous and OTP
|
||
supervisor friendly approach. This should increase stability
|
||
and for example avoid a supervisor report from
|
||
httpd_connection_sup about killed child process(es) in some
|
||
cases when stopping or restarting httpd.
|
||
* dialyzer: Fixed a bug that caused dialyzer to crash when
|
||
analyzing bogus code that contained the literal atom undefined
|
||
in segment sizes.
|
||
* dialyzer: Dialyzer could crash when attempting to analyze a
|
||
module that defined a type called product/.
|
||
- Changes for 26.0.2:
|
||
* erts: Fix using the IME (Input Method Editor) to enter text in
|
||
cmd.exe and powershell.exe on Windows.
|
||
* erts: Multiple socket:accept calls issue. When making multiple
|
||
accept calls, only the last call is active.
|
||
* erts: Fix the shell to ignore terminal delay when the terminal
|
||
capabilities report that they should be used.
|
||
* erts: Fix "oldshell" to echo characters while typing on
|
||
Windows.
|
||
* erts: On Windows, a call to the function socket:close, when
|
||
there are waiting active calls to read, write or accept
|
||
functions, could hang.
|
||
* erts: Fix issues when reading or configuring standard_io on
|
||
Windows when erl.exe is started using -noshell flag.
|
||
* erts: The following functions are now much faster when given a
|
||
long list or binary:
|
||
* erts: On AArch64 (ARM64), equality and non-equality tests with
|
||
literal bitstrings could succeed when they should fail and vice
|
||
versa.
|
||
* compiler: Fixed a type handling bug that would cause an
|
||
internal consistence failure for correct code.
|
||
* compiler: Fixed a bug that could cause the stack trace of throw
|
||
exceptions to be erroneously optimized out.
|
||
* compiler: Complex guard expression using 'or' were not always
|
||
fully evaluated, making guards that were supposed to fail
|
||
succeed.
|
||
* stdlib: Fix bug where when you entered Alt+Enter in the
|
||
terminal, the cursor would move to the last line, instead of
|
||
moving to the next line.
|
||
* stdlib: Fix eof handling when reading from stdin when erlang is
|
||
started using -noshell.
|
||
* stdlib: Fixed problem where output would disappear if it was
|
||
received after a prompt was written in the shell.
|
||
* stdlib: The following functions are now much faster when given
|
||
a long list or binary:
|
||
* kernel: Fix bug where when you entered Alt+Enter in the
|
||
terminal, the cursor would move to the last line, instead of
|
||
moving to the next line.
|
||
* kernel: Fix so that the shell does not crash on startup when
|
||
termcap is not available.
|
||
* kernel: Multiple socket:accept calls issue. When making
|
||
multiple accept calls, only the last call is active.
|
||
* kernel: Fix the shell to ignore terminal delay when the
|
||
terminal capabilities report that they should be used.
|
||
* kernel: Fix "oldshell" to echo characters while typing on
|
||
Windows.
|
||
* kernel: Fix eof handling when reading from stdin when erlang is
|
||
started using -noshell.
|
||
* kernel: On Windows, a call to the function socket:close, when
|
||
there are waiting active calls to read, write or accept
|
||
functions, could hang.
|
||
* kernel: Fix issues when reading or configuring standard_io on
|
||
Windows when erl.exe is started using -noshell flag.
|
||
* kernel: gen_udp:connect with inet_backend = socket fails when
|
||
the Address is a hostname (string or atom).
|
||
* kernel: Fixed problem which would cause shell to crash if
|
||
particular escape sequence was written to stdout.
|
||
* kernel: Fixed problem where output would disappear if it was
|
||
received after a prompt was written in the shell.
|
||
* kernel: Fix a crash where the location of erts could not be
|
||
found in rebar3 dev builds.
|
||
* kernel: Introduce the KERNEL application parameter
|
||
standard_io_encoding that can be used to set the default
|
||
encoding for standard_io. This option needs to be set to latin1
|
||
if the application wants to treat all input data as bytes
|
||
rather than utf-8 encoded characters.
|
||
* ssl: Added keylog information to all protocol versions in
|
||
ssl:connection_information/2.
|
||
* ssl: Add RFC-6083 considerations for DTLS to enable gen_sctp
|
||
based callback for the transport.
|
||
* ssh: Added multiline editing support to ssh clients connected
|
||
through OTP ssh daemon.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jun 24 11:03:03 UTC 2023 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Changes for 26.0.1:
|
||
* erts: Build of the socket nif failed on Solaris 11.
|
||
* erts: Fixed two reduction-counting bugs relating to binaries.
|
||
* erts: Constructing a binary segment not aligned with a byte
|
||
boundary, with a size not fitting in 31 bits, and with a value
|
||
not fitting in a 64-bit word could crash the runtime system.
|
||
* erts: When a binary construction failed because of bad size for
|
||
a segment, the error information was not always correct.
|
||
* erts: Fixed a crash when calling a fun that was defined in a
|
||
module that had been upgraded.
|
||
* kernel: The POSIX error exdev was sometimes incorrectly
|
||
described as "cross domain link" in some error messages.
|
||
* kernel: Corrected the socket send function description (send
|
||
with Timeout = nowait). The send function(s) could not return
|
||
{ok, {RestData, SelectInfo}}
|
||
* stdlib: The POSIX error exdev was sometimes incorrectly
|
||
described as "cross domain link" in some error messages.
|
||
* ssl: Make sure that selection of client certificates handle
|
||
both TLS-1.3 and TLS-1.2 names correctly. Could cause valid
|
||
client certificate to not be selected, and an empty client
|
||
certificate message to be sent to server.
|
||
* ssl: Improved ssl:format_error/1 to handle more error tuples.
|
||
* ssl: Fixed hanging ssl:connect when ssl application is not
|
||
started.
|
||
* ssl: Correct handling of retransmission timers, current
|
||
behavior could cause unwanted delays.
|
||
* inets: Do not make the default ssl options by calling
|
||
httpc:ssl_verify_host_options(true) if ssl options are supplied
|
||
by the user.
|
||
* xmerl: New options to xmerl_scan and xmerl_sax_parser so one
|
||
can limit the behaviour of the parsers to avoid some XML
|
||
security issues. xmerl_scan gets one new option:
|
||
xmerl_sax_parser gets the following options: The old option
|
||
skip_external_dtd is still valid and the same as
|
||
{external_entities, none} and {fail_undeclared_ref, false} but
|
||
just affects DTD's and not other external references.
|
||
* compiler: Fixed a bug where a failing bsl expression in a guard
|
||
threw an exception instead of causing the guard to fail.
|
||
* compiler: Fixed a bug that would case the validator to reject
|
||
legal code.
|
||
* compiler: The compiler could re-order clauses matching binaries
|
||
so that the incorrect clause would match. That could only
|
||
happen for code that used the option {error_location,line} or
|
||
for code without line or column number information (e.g.
|
||
generated by a parse transform).
|
||
* compiler: Complex guard expression using the or operator and
|
||
guard BIFs that can fail could sometimes be miscompiled so that
|
||
the guard would succeed even if a call to a guard BIF failed.
|
||
* compiler: With optimizations disabled, a try/catch construct
|
||
could return an incorrect value.
|
||
* compiler: In rare circumstance, a combination of binary
|
||
construction and binary_part/3 would cause the compiler to
|
||
generate unsafe code that would crash the runtime system.
|
||
* compiler: The compiler could be very slow when compiling guards
|
||
with multiple guard tests separated with 'or' or ';'.
|
||
* compiler: Complex guard expressions using 'or' and map updates
|
||
could succeed even if the map update failed.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jun 24 10:18:24 UTC 2023 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Version 26.0:
|
||
* Leex has been extended with optional column number support.
|
||
* The family of enumeration functions in module lists has been
|
||
extended with enumerate/3 that allows a step value to be
|
||
supplied.
|
||
* Update Unicode to version 15.0.0.
|
||
* proc_lib:start*/* has become synchronous when the started
|
||
process fails. This requires that a failing process use a new
|
||
function proc_lib:init_fail/2,3, or exits, to indicate failure. All
|
||
OTP behaviours have been fixed to do this.
|
||
* auto-complete of variables, record names, record fields names,
|
||
map keys, function parameter types and filenames.
|
||
* Open external editor in the shell to edit the current
|
||
expression.
|
||
* defining records (with types), functions, specs and types in
|
||
the shell.
|
||
* Creation and matching of binaries with segments of fixed sizes
|
||
have been optimized.
|
||
* Creation and matching of UTF-8 segments have been optimized.
|
||
* Appending to binaries has been optimized.
|
||
* The compiler and JIT now generate better code for creation of
|
||
small maps where all keys are literals known at compile time.
|
||
* Thanks to the optimizations above the performance of the base64
|
||
module has been significantly improved. For example, on an
|
||
x86_64 system with the JIT both encode and decode are almost
|
||
three times faster than in Erlang/OTP 25.
|
||
* Map comprehensions as suggested in EEP 58 has now been
|
||
implemented.
|
||
* Some map operations have been optimized by changing the
|
||
internal sort order of atom keys. This changes the
|
||
(undocumented) order of how atom keys in small maps are printed
|
||
and returned by maps:to_list/1 and maps:next/1. The new order
|
||
is unpredictable and may change between different invocations
|
||
of the Erlang VM.
|
||
* Introducing the new function maps:iterator/2 for creating an
|
||
interator that return the map elements in a deterministic
|
||
order. There are also new modifiers k and K for the format
|
||
string in io:format() to support printing map elements ordered.
|
||
* Added the new built-in type dynamic() introduced in EEP 61, PR
|
||
introducing EEP 61 improving support for gradual type checkers.
|
||
* Dialyzer has a new incremental mode that be invoked by giving
|
||
the --incremental option when running Dialyzer. This new
|
||
incremental mode is likely to become the default in a future
|
||
release.
|
||
* Multi time warp mode is now enabled by default. This assumes
|
||
that all code executing on the system is time warp safe.
|
||
* Support for UTF-8 atoms and strings in the NIF interface
|
||
including new functions enif_make_new_atom,
|
||
enif_make_new_atom_len and enif_get_string_length.
|
||
* The BIFs min/2 and max/2 are now allowed to be used in guards
|
||
and match specs.
|
||
* Improved the selective receive optimization, which can now be
|
||
enabled for references returned from other functions. This
|
||
greatly improves the performance of gen_server:send_request/3,
|
||
gen_server:wait_response/2, and similar functions.
|
||
* It is no longer necessary to enable a feature in the runtime
|
||
system in order to load modules that are using it. It is
|
||
sufficient to enable the feature in the compiler when compiling
|
||
it.
|
||
* inet:setopts/2 has got 3 new options: reuseport, reuseport_lb
|
||
and exclusiveaddruse.
|
||
* Fix so that -fno-omit-frame-pointer is applied to all of the
|
||
Erlang VM when using the JIT so that tools, such as perf, can
|
||
crawl the process stacks.
|
||
* In the lists module, the zip family of functions now takes
|
||
options to allow handling lists of different lengths.
|
||
* Added the zip:zip_get_crc32/2 function to retrieve the CRC32
|
||
checksum from an opened ZIP archive. gen_server optimized by
|
||
caching callback functions
|
||
* The modules Erlang DNS resolver inet_res and helper modules
|
||
have been updated for RFC6891; to handle OPT RR with DNSSEC OK
|
||
(DO) bit.
|
||
* Introduced application:get_supervisor/1.
|
||
* Cache OTP boot code paths, to limit how many folders that are
|
||
being accessed during a module lookup. Can be disabled with
|
||
-cache_boot_path false.
|
||
* Support for Kernel TLS (kTLS), has been added to the SSL
|
||
application, for TLS distribution (-proto_dist inet_tls), the
|
||
SSL option {ktls, true}.
|
||
* Improved error checking and handling of ssl options.
|
||
* Mitigate memory usage from large certificate chains by lowering
|
||
the maximum handshake size. This should not effect the common
|
||
cases, if needed it can be configured to a higher value.
|
||
* For security reasons the SHA1 and DSA algorithms are no longer
|
||
among the default values.
|
||
* Add encoding and decoding of use_srtp hello extension to
|
||
facilitate for DTLS users to implement SRTP functionality.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 23 19:39:26 UTC 2023 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 25.3.2.2:
|
||
* compiler: The compiler could be very slow when compiling guards
|
||
with multiple guard tests separated with 'or' or ';'.
|
||
- Changes for 25.3.2.1:
|
||
* xmerl: New options to xmerl_scan and xmerl_sax_parser so one
|
||
can limit the behaviour of the parsers to avoid some XML
|
||
security issues. xmerl_scan gets one new option:
|
||
xmerl_sax_parser gets the following options: The old option
|
||
skip_external_dtd is still valid and the same as
|
||
{external_entities, none} and {fail_undeclared_ref, false} but
|
||
just affects DTD's and not other external references.
|
||
* erts: Fixed a crash during tracing on certain platforms that
|
||
cannot use the machine stack for Erlang code (mainly OpenBSD
|
||
and Linux with musl).
|
||
* erts: Constructing a binary segment not aligned with a byte
|
||
boundary, with a size not fitting in 31 bits, and with a value
|
||
not fitting in a 64-bit word could crash the runtime system.
|
||
* erts: Further robustify implementation of large maps (> 32
|
||
keys). Keys that happen to have same internal 32-bit hash
|
||
values are now put in collision nodes which are traversed with
|
||
linear search. This removes the demand for the internal hash
|
||
function when salted to eventually produce different hashes for
|
||
all possible pairs of unequal terms.
|
||
* stdlib: Static supervisors are very idle processes after they
|
||
have started so they will now be hibernated after start to
|
||
improve resource management.
|
||
* compiler: Fixed a bug where a failing bsl expression in a guard
|
||
threw an exception instead of causing the guard to fail.
|
||
* compiler: Complex guard expression using the or operator and
|
||
guard BIFs that can fail could sometimes be miscompiled so that
|
||
the guard would succeed even if a call to a guard BIF failed.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun May 07 09:41:11 UTC 2023 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 25.3.2:
|
||
* compiler: Fixed type handling bugs that could cause an internal
|
||
error in the compiler for correct code.
|
||
* os_mon: Avoid error report from failing erlang:port_close at
|
||
shutdown of cpu_sup and memsup. Bug exists since OTP 25.3
|
||
(os_mon-2.8.1).
|
||
* erts: If a runtime system which was starting the distribution
|
||
already had existing pids, ports, or references referring to a
|
||
node with the same nodename/creation pair that the runtime
|
||
system was about to use, these already existing pids, ports, or
|
||
references would not work as expected in various situations
|
||
after the node had gone alive. This could only occur if the
|
||
runtime system was communicated such pids, ports, or references
|
||
prior to the distribution was started. That is, it was
|
||
extremely unlikely to happen unless the distribution was
|
||
started dynamically and was even then very unlikely to happen.
|
||
The runtime system now checks for already existing pids, ports,
|
||
and references with the same nodename/creation pair that it is
|
||
about to use. If such are found another creation will be chosen
|
||
in order to avoid these issues.
|
||
- Changes for 25.3.1:
|
||
* snmp: Attempts to minimize the number of the error reports
|
||
during a failed agent init.
|
||
* compiler: When a map update such as #{}#{key:=value} that
|
||
should fail with an exception was unused, the exception would
|
||
be lost.
|
||
* compiler: Fixed bug in the validator that made it reject valid
|
||
code.
|
||
* crypto: With this change, random errors are fixed for
|
||
crypto:generate_key calls with OpenSSL 3.
|
||
* erts: Fixed a bug in the loader that prevented certain modules
|
||
compiled with no_ssa_opt from being loaded.
|
||
* erts: Implementations of the call() driver callback that
|
||
returned a faulty encoded result could cause a memory leak and
|
||
could cause invalid data on the heap of the processes calling
|
||
erlang:port_call/3.
|
||
* erts: Fixed a memory corruption issue when upgrading code. The
|
||
bug was introduced in OTP 25.3
|
||
* erts: Fixed configure tests for a few ARM-specific
|
||
instructions, which prevented the emulator from being built on
|
||
some platforms.
|
||
* erts: Aliases created in combination with a monitor using the
|
||
{alias, explicit_unalias} option stopped working from remote
|
||
nodes when a 'DOWN' signal had been received due to the monitor
|
||
or if the monitor was removed using the erlang:demonitor() BIF.
|
||
This bug was introduced in OTP 24.3.4.10 and OTP 25.3.
|
||
* erts: In rare circumstances, bit syntax matching of an invalid
|
||
code point for a utf32 would crash the runtime system.
|
||
* erts: Building the runtime system failed when native atomic
|
||
support was missing. Note that execution on such systems have
|
||
only been rudimentary tested.
|
||
* erl_interface: Fixed configure tests for a few ARM-specific
|
||
instructions, which prevented the emulator from being built on
|
||
some platforms.
|
||
* eldap: Added a new function eldap:info/1 that returns the
|
||
socket and the transport protocol for the eldap connection.
|
||
* inets: Correct timing related pipelining/keepalive queue bug,
|
||
that could result in unexpected "socket_remotly_closed" errors.
|
||
* inets: With this change, upon remote socket closure current
|
||
request is added to a retried queue (either pipeline or
|
||
keep_alive, but not both).
|
||
* ssl: With this change, ssl:connection_information/2 returns
|
||
correct keylog data after TLS1.3 key update.
|
||
* ssl: Client signature algorithm list input order is now honored
|
||
again , it was accidently reversed by a previous fix.
|
||
* stdlib: The type specs in the erl_parse module has been updated
|
||
to include the maybe construct and the ! operator.
|
||
* wx: Improve debug prints from the nifs. Some minor fixes for
|
||
wxWidgets-3.2. Fixed OpenGL debug functions.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Mar 25 10:06:34 UTC 2023 - matwey.kornilov@gmail.com
|
||
|
||
- Changes for 25.3:
|
||
* reltool: Fixed a bug that would cause analysis to crash.
|
||
* stdlib: Fixed a bug that would cause analysis to crash.
|
||
* stdlib: Fixed a crash when formatting stack traces for error
|
||
reports.
|
||
* stdlib: Instead of crashing, the list_to_integer/1 and
|
||
list_to_integer/2 BIFs now raise the system_limit exception for
|
||
overlong lists that can't be converted to integers. Similarly,
|
||
the string:to_integer/1 BIF now returns {error,system_limit}
|
||
for overlong lists.
|
||
* stdlib: Removal of non-necessary undefined types added to the
|
||
state's supervisor record.
|
||
* compiler: Fixed a bug that would cause the compiler to hang.
|
||
* compiler: Fixed a crash when compiling code that contained
|
||
maybe expressions.
|
||
* compiler: Constructing a binary with an explicit size of all
|
||
for a binary segment would crash the compiler.
|
||
* compiler: The compiler would generate incorrect code for the
|
||
following type of expression: Pattern = BoundVar1 = . . . =
|
||
BoundVarN = Expression An exception should be raised if any of
|
||
the bound variables have different values than Expression. The
|
||
compiler would generate code that would cause the bound
|
||
variables to be bound to the value of Expressionwhether the
|
||
value matched or not.
|
||
* xmerl: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* megaco: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* debugger: Fixed a bug that would cause analysis to crash.
|
||
* erts: Fixed a bug on Windows where file:read_file_info/1 would
|
||
fail for files with corrupt metadata.
|
||
* erts: Fix process_info(_, binary) to again include "writable
|
||
binaries" which were lost in OTP-25.0. Writable binaries are an
|
||
optimization used when binaries are appended upon in a loop.
|
||
* erts: Fix rare race when receiving fragmented messages on a
|
||
terminating connection. Could potentially cause memory leaks as
|
||
well as double free crashes. Bug exists since OTP 22.0.
|
||
* erts: Fixed bug that could maybe cause problems when a file
|
||
descriptor number is closed by a linked in driver and then
|
||
opened (reused) and passed to enif_select by a NIF. No actual
|
||
symptoms seen, only failed internal assertions in debug build.
|
||
* erts: The runtime system could crash when tracing a process
|
||
executing on a dirty scheduler.
|
||
* erts: In the binary syntax, attempting to match out integers
|
||
with size exceeding 2 GiB could crash the runtime system.
|
||
* erts: Fixed edge case in floating-point negation where A = 0.0,
|
||
B = -A did not produce B = -0.0 on x86_64 JIT.
|
||
* erts: Fixed an issue in the JIT that could crash the emulator
|
||
on some platforms.
|
||
* erts: Added meta data to the windows installer.
|
||
* erts: Fixed ETS insertion order into bag and duplicate_bag of
|
||
tuples with identical keys when passed in a list to
|
||
ets:insert/2. The insert order has been head-to-tail but was
|
||
accidentally changed in OTP 23.0. For bag it was reverted
|
||
(tail-to-head), while for duplicate_bag it was sometimes
|
||
reverted depending on the length of the list and number of
|
||
"reductions" left for the calling process. This fix changes the
|
||
insert order of ets:insert/2 back to always be head-to-tail of
|
||
the list argument.
|
||
* erts: With the JIT for AArch64 (AMD64), calling bxor in with
|
||
non-integer arguments in a guard would crash the runtime
|
||
system.
|
||
* erts: Fix bug regarding process flag max_heap_size. Could cause
|
||
strange behavior when a process was killed due to exceeding the
|
||
limit.
|
||
* erts: Fixed binary comprehensions to be similar to other
|
||
creation of binary data with respect to its contribution of
|
||
triggering garbage collection.
|
||
* erts: In rare circumstances, when a process exceeded its
|
||
allowed heap size set by option max_heap_size, it would not be
|
||
killed as it should be, but instead enter a kind of zombie
|
||
state it would never get out of.
|
||
* erts: Instead of crashing, the list_to_integer/1 and
|
||
list_to_integer/2 BIFs now raise the system_limit exception for
|
||
overlong lists that can't be converted to integers. Similarly,
|
||
the string:to_integer/1 BIF now returns {error,system_limit}
|
||
for overlong lists.
|
||
* erts: Active process aliases of a process at its termination
|
||
leaked memory.
|
||
* erts: Support for fully asynchronous distributed signaling
|
||
where send operations never block. This functionality is by
|
||
default disabled and can be enabled per process. For more
|
||
information see the documentation of process_flag(async_dist,
|
||
Bool).
|
||
* erts: Added the +JPperf no_fp option to explicitly disable
|
||
Erlang frame pointers otherwise added when using the +JPperf
|
||
map option.
|
||
* erl_interface: Accept connection setup from OTP 23 and 24 nodes
|
||
that are not using epmd.
|
||
* 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.
|
||
* syntax_tools: erl_syntax_lib:annotate_bindings/1,2 will now
|
||
properly annotate named functions and their arguments.
|
||
* kernel: Fixed a bug on Windows where file:read_file_info/1
|
||
would fail for files with corrupt metadata.
|
||
* kernel: Accept connection setup from OTP 23 and 24 nodes that
|
||
are not using epmd.
|
||
* public_key: As different solutions of verifying certificate
|
||
revocation exists move the decode of 'CRLDistributionPoints' so
|
||
that it will only be decode. When it is actually used in the
|
||
verification process. This would enable interoperability with
|
||
systems that use certificates with an invalid empty
|
||
CRLDistributionPoints extension that they want to ignore and
|
||
make verification by other means.
|
||
* public_key: public_key:pkix_path_validation validates
|
||
certificates expiring after 2050
|
||
* public_key: Do not leave exit message in message queue after
|
||
calling cacerts_load() on MacOS.
|
||
* public_key: Replace size/1 with either tuple_size/1 or
|
||
byte_size/1 The size/1 BIF is not optimized by the JIT, and its
|
||
use can result in worse types for Dialyzer. When one knows that
|
||
the value being tested must be a tuple, tuple_size/1 should
|
||
always be preferred. When one knows that the value being tested
|
||
must be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* ssl: Fixed that new dtls connections from the same client ip
|
||
port combination works. If there is a process waiting for
|
||
accept the new connection will connect to that, otherwise it
|
||
will try to re-connect to the old server connection.
|
||
* ssl: When shutting down a node that uses SSL distribution
|
||
(-proto_dist inet_tls), a confusing error message about an
|
||
unexpected process exit was printed. This particular message is
|
||
no longer generated.
|
||
* ssl: fixes the type spec for ssl:format_error/1
|
||
* ssl: Replace size/1 with either tuple_size/1 or byte_size/1 The
|
||
size/1 BIF is not optimized by the JIT, and its use can result
|
||
in worse types for Dialyzer. When one knows that the value
|
||
being tested must be a tuple, tuple_size/1 should always be
|
||
preferred. When one knows that the value being tested must be a
|
||
binary, byte_size/1 should be preferred. However, byte_size/1
|
||
also accepts a bitstring (rounding up size to a whole number of
|
||
bytes), so one must make sure that the call to byte_size/ is
|
||
preceded by a call to is_binary/1 to ensure that bitstrings are
|
||
rejected. Note that the compiler removes redundant calls to
|
||
is_binary/1, so if one is not sure whether previous code had
|
||
made sure that the argument is a binary, it does not harm to
|
||
add an is_binary/1 test immediately before the call to
|
||
byte_size/1.
|
||
* jinterface: Accept connection setup from OTP 23 and 24 nodes
|
||
that are not using epmd.
|
||
* os_mon: The port programs used by cpu_sup and memsup are now
|
||
gracefully shut down when cpu_sup and memsup are shut down.
|
||
* eunit: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* crypto: A user defined runtime library path configured using
|
||
--with-ssl-rpath=<PATHS> could fail to be enabled.
|
||
* crypto: Ensure that configure fails if a user defined runtime
|
||
library path has been passed by the user, but cannot set.
|
||
* mnesia: Improved consistency for dirty writes when a table was
|
||
added with add_table_copy/3. Fixed a problem with sticky write,
|
||
which could lead to inconsistent data.
|
||
* mnesia: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* common_test: Renamed undocumented macro CT_PEER/3 to
|
||
CT_PEER_REL/3.
|
||
* ssh: With this change, PKCS8 formatted private key file is
|
||
properly decoded and SSH daemon with such key can be started.
|
||
* ssh: Replace size/1 with either tuple_size/1 or byte_size/1 The
|
||
size/1 BIF is not optimized by the JIT, and its use can result
|
||
in worse types for Dialyzer. When one knows that the value
|
||
being tested must be a tuple, tuple_size/1 should always be
|
||
preferred. When one knows that the value being tested must be a
|
||
binary, byte_size/1 should be preferred. However, byte_size/1
|
||
also accepts a bitstring (rounding up size to a whole number of
|
||
bytes), so one must make sure that the call to byte_size/ is
|
||
preceded by a call to is_binary/1 to ensure that bitstrings are
|
||
rejected. Note that the compiler removes redundant calls to
|
||
is_binary/1, so if one is not sure whether previous code had
|
||
made sure that the argument is a binary, it does not harm to
|
||
add an is_binary/1 test immediately before the call to
|
||
byte_size/1.
|
||
* inets: With this change, handling of URI to a folder, with
|
||
missing trailing / and a query component present is fixed.
|
||
* inets: Adds more type information to the inets app, thus
|
||
improving the errors that static analysis tools can detect. The
|
||
addition of type information to records and the updates to
|
||
function heads help static analysis tools to understand that
|
||
some values in the records cannot be 'undefined', thus making
|
||
static tools to type check correctly more modules in the inets
|
||
app
|
||
* inets: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* snmp: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* ftp: Replace size/1 with either tuple_size/1 or byte_size/1 The
|
||
size/1 BIF is not optimized by the JIT, and its use can result
|
||
in worse types for Dialyzer. When one knows that the value
|
||
being tested must be a tuple, tuple_size/1 should always be
|
||
preferred. When one knows that the value being tested must be a
|
||
binary, byte_size/1 should be preferred. However, byte_size/1
|
||
also accepts a bitstring (rounding up size to a whole number of
|
||
bytes), so one must make sure that the call to byte_size/ is
|
||
preceded by a call to is_binary/1 to ensure that bitstrings are
|
||
rejected. Note that the compiler removes redundant calls to
|
||
is_binary/1, so if one is not sure whether previous code had
|
||
made sure that the argument is a binary, it does not harm to
|
||
add an is_binary/1 test immediately before the call to
|
||
byte_size/1.
|
||
* dialyzer: Fixed a bug that would cause analysis to crash.
|
||
* dialyzer: Replace size/1 with either tuple_size/1 or
|
||
byte_size/1 The size/1 BIF is not optimized by the JIT, and its
|
||
use can result in worse types for Dialyzer. When one knows that
|
||
the value being tested must be a tuple, tuple_size/1 should
|
||
always be preferred. When one knows that the value being tested
|
||
must be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
* tftp: Replace size/1 with either tuple_size/1 or byte_size/1
|
||
The size/1 BIF is not optimized by the JIT, and its use can
|
||
result in worse types for Dialyzer. When one knows that the
|
||
value being tested must be a tuple, tuple_size/1 should always
|
||
be preferred. When one knows that the value being tested must
|
||
be a binary, byte_size/1 should be preferred. However,
|
||
byte_size/1 also accepts a bitstring (rounding up size to a
|
||
whole number of bytes), so one must make sure that the call to
|
||
byte_size/ is preceded by a call to is_binary/1 to ensure that
|
||
bitstrings are rejected. Note that the compiler removes
|
||
redundant calls to is_binary/1, so if one is not sure whether
|
||
previous code had made sure that the argument is a binary, it
|
||
does not harm to add an is_binary/1 test immediately before the
|
||
call to byte_size/1.
|
||
- Changes for 25.2.3:
|
||
* erts: Comparisons between small numbers and pids or ports would
|
||
in some edge cases say that the number was greater than the pid
|
||
or port, violating the term order.
|
||
* erts: process_info(Pid, status) when Pid /= self() could return
|
||
an erroneous result.
|
||
* ssl: Maximize compatibility by ignoring change_cipher_spec
|
||
during handshake even if middle_box_mode is not negotiated
|
||
(mandated by client)
|
||
* ssl: Move assert of middlebox message after an
|
||
hello_retry_request to maximize interoperability. Does not
|
||
changes semantics of the protocol only allows unexpected
|
||
message delay from server.
|
||
* ssh: With this change, ssh application does not crash when
|
||
formatting some of info reports for unsuccessful connections.
|
||
* ssh: With this change, ssh does not log extensively long
|
||
messages.
|
||
* inets: Ensure graceful shutdown
|
||
* inets: Return type of the type specification for function
|
||
httpc:cookie_header/{1,2,3} has been fixed from -spec
|
||
cookie_header(url()) -> [{ field(), value() }] | {error,
|
||
Reason} to -spec cookie_header(url()) -> { field(), value() } |
|
||
{error, Reason}
|
||
- Changes for 25.2.2:
|
||
* ftp: Fixes calls to ftp:nlist/2 returning {error, epath} when
|
||
the file / folder exists
|
||
- Changes for 25.2.1:
|
||
* compiler: Fixed a bug that could cause legal code to fail
|
||
validation.
|
||
* compiler: Eliminated a rare crash in the beam_types module.
|
||
* erts: Fixed a bug in selective receive optimization that could
|
||
crash 32-bit emulators.
|
||
* erts: A race condition which was very rarely triggered could
|
||
cause the signal queue of a process to become inconsistent
|
||
causing the runtime system to crash.
|
||
* kernel: The tcp connect option 'bind_to_device' could not be
|
||
used with inet_backend = 'socket'. 'inet' requires value type
|
||
binarry() and 'socket' requires value type 'string()'.
|
||
* kernel: Minor issue processing options when calling
|
||
gen_tcp:connect with a sockaddr() and inet_backend = socket.
|
||
* common_test: Change timeout to infinity for gen_server calls in
|
||
cth_log_redirect
|
||
* inets: fixes a missing case of the type specification for
|
||
httpd:info/2/3/4
|
||
* snmp: Single threaded agent crash when vacm table not properly
|
||
initiated.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Dec 18 08:45:06 UTC 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 17:37:54 UTC 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 16:02:52 UTC 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}.
|
||
(bsc#1205318)
|
||
* 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 07:16:06 UTC 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 08:24:52 UTC 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 09:28:47 UTC 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 11:19:11 UTC 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 6 17:29:51 UTC 2022 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Fix build for Factory. Currently, any Java version
|
||
is fine for Erlang.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 27 10:40:39 UTC 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 07:18:42 UTC 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 18:12:08 UTC 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 21:11:53 UTC 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 13:10:47 UTC 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 07:19:32 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
|
||
|
||
- Added hardening to systemd service(s) (bsc#1181400). Modified:
|
||
* epmd.service
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Aug 04 16:05:03 UTC 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 09:21:53 UTC 2021 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Fix more directories not owned by the package (boo#1187546)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jul 05 20:15:51 UTC 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 11:26:43 UTC 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 10:27:13 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
|
||
|
||
- Install RPM macros file to %{_rpmmacrodir} (boo#1185667)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri May 21 18:55:19 UTC 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 11:39:09 UTC 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 8 16:27:35 UTC 2021 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Pack doc/chunks into %{_libdir} (boo#1184492)
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jan 17 07:33:55 UTC 2021 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Use wxWidgets < 3.1 (boo#1180488)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jan 15 14:39:59 UTC 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 20:20:39 UTC 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 10:17:04 UTC 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 10:20:01 UTC 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 07:24:09 UTC 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 06:36:45 UTC 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 08:48:44 UTC 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 2 13:48:03 UTC 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 14:06:40 UTC 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 09:40:37 UTC 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 7 09:01:17 UTC 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 3 07:59:55 UTC 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 08:08:38 UTC 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 08:34:03 UTC 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 16:04:42 UTC 2019 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- BuildRequire pkgconfig(libsystemd) instead of systemd-devel:
|
||
Allow OBS to shortcut through the -mini flavors.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 12 07:55:22 UTC 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 09:00:15 UTC 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 11:22:05 UTC 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 12:29:00 UTC 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 14:06:06 UTC 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 16:35:54 UTC 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 08:21:20 UTC 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 08:16:38 UTC 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 10:51:47 UTC 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 08:15:47 UTC 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 4 13:13:17 UTC 2019 - Matwey Kornilov <matwey.kornilov@gmail.com>
|
||
|
||
- Drop priv/obj directories: boo#1140404
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 25 10:23:44 UTC 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 07:47:56 UTC 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 09:47:44 UTC 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 09:48:44 UTC 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 12:04:44 UTC 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 09:56:44 UTC 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 09:13:44 UTC 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 12:05:44 UTC 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 09:18:44 UTC 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 11:32:44 UTC 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 10:37:44 UTC 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 7 18:20:58 UTC 2019 - matwey.kornilov@gmail.com
|
||
|
||
- Drop unsupported openSUSE versions
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 5 10:43:37 UTC 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 15:26:37 UTC 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 31 17:59:37 UTC 2018 - Gabriele Santomaggio <g.santomaggio@gmail.com>
|
||
|
||
- update to 21.2.2:
|
||
- Changes for 21.2.2:
|
||
* http://erlang.org/download/OTP-21.2.2.README
|
||
* ssh: Fixed port leakage if a ssh:daemon call failed.
|
||
- update to 21.2.1:
|
||
- Changes for 21.2.1:
|
||
* http://erlang.org/download/OTP-21.2.1.README
|
||
* erts: Fixed bug on big endian architectures when changing
|
||
file permissions or ownership with file:change_mode,
|
||
change_owner, change_group or write_file_info. Bug
|
||
exists since OTP-21.0.
|
||
* erts: Fixed bug in operator band of two negative operands
|
||
causing erroneous result if the absolute value of one
|
||
of the operands have the lowest N*W bits as zero and
|
||
the other absolute value is not larger than N*W bits. N
|
||
is an integer of 1 or larger and W is 32 or 64
|
||
depending on word size.
|
||
* ssl: Fixed renegotiation bug. Client did not handle server
|
||
initiated renegotiation correctly after rewrite to two
|
||
connection processes, due to ERL-622 commit
|
||
d87ac1c55188f5ba5cdf72384125d94d42118c18. This could
|
||
manifest it self as a " bad_record_mac" alert.
|
||
Also included are some optimizations
|
||
- update to 21.2:
|
||
- Changes for 21.2:
|
||
* http://erlang.org/download/OTP-21.2.README
|
||
* HIGHLIGHTS
|
||
* erts, sasl: New counters and atomics modules supplies access to
|
||
highly efficient operations on mutable fixed word sized
|
||
variables.
|
||
* erts: There is a new module persistent_term that implements a
|
||
term storage suitable for terms that are frequently
|
||
used but never or infrequently updated. Lookups are
|
||
done in constant time without copying the terms.
|
||
* ssh: Requires OpenSSL 1.1.1 or higher as cryptolib under the
|
||
OTP application crypto.
|
||
* ssl: *** POTENTIAL INCOMPATIBILITY ***
|
||
ssl now uses active n internally to boost performance.
|
||
Old active once behavior can be restored by setting
|
||
application variable see manual page for ssl
|
||
application (man 6).
|
||
* erts: Add a new pollset that is made to handle sockets that
|
||
use {active, true} or {active, N}. The new pollset will
|
||
not be polled by a pollthread, but instead polled by a
|
||
normal scheduler.
|
||
This change was made because of the overhead associated
|
||
with constantly having to re-apply the ONESHOT
|
||
mechanism on fds that all input events were
|
||
interesting.
|
||
The new pollset is only active on platforms that
|
||
support concurrent kernel poll updates, i.e. Linux and
|
||
BSD.
|
||
* POTENTIAL INCOMPATIBILITIES:
|
||
kernel: A new function, logger:update_handler_config/3 is
|
||
added, and the handler callback changing_config now has
|
||
a new argument, SetOrUpdate, which indicates if the
|
||
configuration change comes from set_handler_config/2,3
|
||
or update_handler_config/2,3.
|
||
This allows the handler to consistently merge the new
|
||
configuration with the old (if the change comes from
|
||
update_handler_config/2,3) or with the default (if the
|
||
change comes from set_handler_config/2,3).
|
||
The built-in handlers logger_std_h and
|
||
logger_disk_log_h are updated accordingly. A bug which
|
||
could cause inconsistency between the handlers'
|
||
internal state and the stored configuration is also
|
||
corrected.
|
||
* ssl: ssl now uses active n internally to boost performance.
|
||
Old active once behavior can be restored by setting
|
||
application variable see manual page for ssl
|
||
application (man 6).
|
||
* full relase notes here: http://erlang.org/download/OTP-21.2.README
|
||
-------------------------------------------------------------------
|
||
Wed Dec 12 19:11:37 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Drop crypto.patch: isn't required anymore
|
||
Reported by Gabriele Santomaggio
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Dec 2 21:09:41 UTC 2018 - Gabriele Santomaggio <g.santomaggio@gmail.com>
|
||
- update to 21.1.4:
|
||
- Changes for 21.1.4:
|
||
* http://erlang.org/download/OTP-21.1.4.README
|
||
* kernel: Fix bug causing net_kernel process crash on connection
|
||
attempt from node with name identical to local node.
|
||
- update to 21.1.3:
|
||
- Changes for 21.1.3:
|
||
* http://erlang.org/download/OTP-21.1.3.README
|
||
* erts: Added an optional ./configure flag to compile the
|
||
emulator with spectre mitigation:
|
||
--with-spectre-mitigation
|
||
Note that this requires a recent version of GCC with
|
||
support for spectre mitigation and the
|
||
--mindirect-branch=thunk flag, such as 8.1.
|
||
-------------------------------------------------------------------
|
||
Wed Nov 25 15:40:59 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Pack /etc/init.d/epmd only for systemd-less cases (boo#1116009)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Nov 17 22:39:41 UTC 2018 - Gabriele Santomaggio <g.santomaggio@gmail.com>
|
||
- update to 21.1.2:
|
||
- Changes for 21.1.2:
|
||
* http://erlang.org/download/OTP-21.1.2.README
|
||
* compiler: Fixed a bug where incorrect code was generated
|
||
following a binary match guard.
|
||
* erts: Fixed a rare bug where files could be closed on a
|
||
normal instead of an IO scheduler, resulting in system
|
||
instability if the operation blocked.
|
||
* public_key: Add DSA SHA2 oids in public_keys ASN1-spec and
|
||
public_key:pkix_sign_types/1
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 8 17:16:08 UTC 2018 - Markos Chandras <mchandras@suse.de>
|
||
|
||
- Fix instructions for changing address for epmd.socket service. The
|
||
ListenStream option needs to be completely overriden otherwise the
|
||
socket will be started with multiple ListenStream options and it
|
||
will fail.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Nov 2 21:24:41 UTC 2018 - Gabriele Santomaggio <g.santomaggio@gmail.com>
|
||
|
||
- update to 21.1.1:
|
||
- Changes for 21.1.1:
|
||
- http://erlang.org/download/OTP-21.1.1.README
|
||
* erts: Fixed a memory leak on errors when reading files.
|
||
* ssl: From ssl-9.0.2. CLOSE ALERTS could under some
|
||
circumstances be encoded using an incorrect cipher
|
||
state. This would cause the peer to regard them as
|
||
unknown messages.
|
||
* ssl: Correct handling of socket packet option with new TLS
|
||
sender process, from ssl-9.0.2. When changing the
|
||
socket option {packet, 1|2|3|4} with ssl:setopts/2 the
|
||
option must internally be propagated to the sender
|
||
process as well as the reader process as this
|
||
particular option also affects the data to be sent.
|
||
* eldap: A race condition at close could cause the eldap client
|
||
to exit with a badarg message as cause.
|
||
- Changes for 21.1:
|
||
- http://erlang.org/download/OTP-21.1.README
|
||
* ssh: The key exchange methods
|
||
'curve25519-sha256@libssh.org', 'curve25519-sha256' and
|
||
'curve448-sha512' are implemented. The last two are
|
||
defined in
|
||
https://tools.ietf.org/html/draft-ietf-curdle-ssh-curves
|
||
They all depends on that OpenSSL 1.1.1 or higher is
|
||
used as cryptolib.
|
||
* crypto: The typing in the CRYPTO and PUBLIC_KEY applications
|
||
are reworked and a few mistakes are corrected.
|
||
The documentation is now generated from the typing and
|
||
some clarifications are made.
|
||
A new chapter on Algorithm Details such as key sizes
|
||
and availability is added to the CRYPTO User's Guide.
|
||
* erts: The socket options recvtos, recvttl, recvtclass and
|
||
pktoptions have been implemented in the socket modules.
|
||
See the documentation for the gen_tcp, gen_udp and inet
|
||
modules. Note that support for these in the runtime
|
||
system is platform dependent. Especially for pktoptions
|
||
which is very Linux specific and obsoleted by the RFCs
|
||
that defined it.
|
||
* ssh: The cipher 'chacha20-poly1305@openssh.com' is now
|
||
supported if OpenSSL 1.1.1 or higher is used as
|
||
cryptolib.
|
||
- Changes for 21.0.9:
|
||
- http://erlang.org/download/OTP-21.0.9.README
|
||
* compiler: Fix a regression in OTP-15204 that removed .beam file
|
||
metadata that some external build tools relied on.
|
||
* erts: As of ERTS version 10.0 (OTP 21.0) the erl_child_setup
|
||
program, which creates port programs, ignores TERM
|
||
signals. This setting was unintentionally inherited by
|
||
port programs. Handling of TERM signals in port
|
||
programs has now been restored to the default behavior.
|
||
That is, terminate the process.
|
||
* erts: The fix made for OTP-15279 in erts-10.07 (OTP-21.0.8)
|
||
was not complete. It could cause a new connection
|
||
attempt to be incorrectly aborted in certain cases.
|
||
This fix will amend that flaw.
|
||
- Changes for 21.0.8:
|
||
- http://erlang.org/download/OTP-21.0.8.
|
||
* erts: A process could get stuck in an infinite rescheduling
|
||
loop between normal and dirty schedulers. This bug was
|
||
introduced in ERTS version 10.0.
|
||
* erts: Garbage collection of a distribution entry could cause
|
||
an emulator crash if net_kernel had not brought
|
||
previous connection attempts on it down properly.
|
||
* kernel: Fixed bug in net_kernel that could cause an emulator
|
||
crash if certain connection attempts failed. Bug exists
|
||
since kernel-6.0 (OTP-21.0).
|
||
- Changes for 21.0.7:
|
||
- http://erlang.org/download/OTP-21.0.7.
|
||
* erts: A race between termination of a process and resume of
|
||
the same process via erlang:resume_process/1 could
|
||
cause the VM to crash. This bug was introduced in erts
|
||
version 10.0 (OTP 21.0).
|
||
* erts: When tracing on running, in trace events could be lost
|
||
when a process was rescheduled between a dirty and a
|
||
normal scheduler.
|
||
- Changes for 21.0.6:
|
||
- http://erlang.org/download/OTP-21.0.6.README
|
||
* crypto: Update the crypto engine functions to handle multiple
|
||
loads of an engine.
|
||
* inets: Change status code for no mod found to handle request
|
||
to 501
|
||
* ssl: Correct cipher suite handling for ECDHE_*, the
|
||
incorrect handling could cause an incorrrect suite to
|
||
be selected and most likly fail the handshake.
|
||
- Changes for 21.0.5:
|
||
- http://erlang.org/download/OTP-21.0.5.README
|
||
* POTENTIAL INCOMPATIBILITIES erts:
|
||
Fixed a bug causing some Erlang references to be
|
||
inconsistently ordered. This could for example cause
|
||
failure to look up certain elements with references as
|
||
keys in search data structures. This bug was introduced
|
||
in R13B02.
|
||
* compiler: Fixed an issue where files compiled with the
|
||
+deterministic option differed if they were compiled in
|
||
a different directory but were otherwise identical.
|
||
* crypto: Fixed a node crash in crypto:compute_key(ecdh, ...)
|
||
when passing a wrongly typed Others argument.
|
||
* erts: Fixed a bug which caused an emulator crash when
|
||
enif_send() was called by a NIF that executed on a
|
||
dirty scheduler. The bug was either triggered when the
|
||
NIF called enif_send() without a message environment,
|
||
or when the process executing the NIF was send traced.
|
||
- Changes for 21.0.4:
|
||
- http://erlang.org/download/OTP-21.0.4.README
|
||
* erts: Fixed a crash when matching directly against a literal
|
||
map using a single key that had been saved on the
|
||
stack.
|
||
* erts: Fix node crash when passing a bad time option to
|
||
file:read_file_info/2.
|
||
- Changes for 21.0.3:
|
||
- http://erlang.org/download/OTP-21.0.3.README
|
||
* otp: Build support for the erlang/corba repository.
|
||
* erts: Fixed a scheduler bug that caused normal schedulers to
|
||
run dirty code.
|
||
* erts: Fixed a bug in erlang:trace_info/2 which caused the
|
||
emulator to crash when a bad argument was passed. The
|
||
bug was introduced in ERTS version 10.0.
|
||
- Changes for 21.0.2:
|
||
- http://erlang.org/download/OTP-21.0.2.README
|
||
* compiler: In rare cases involving matching of binary literal
|
||
strings, the compiler could optimize away code that
|
||
should be executed.
|
||
* compiler:There could be an internal consistency check failure
|
||
when compiling code that called map_get(Key, Map) and
|
||
then updated the same map.
|
||
* compiler: In rare circumstances, the compiler could crash in
|
||
beam_jump when compiling a floating point operation.
|
||
* erts: Fixed a rare bug that could cause processes to be
|
||
scheduled after they had been freed
|
||
* erts: Fixed a race condition in the inet driver that could
|
||
cause receive to hang when the emulator was compiled
|
||
with gcc 8.
|
||
* public_key: Fix some of the keylengths in the newly generated moduli
|
||
file in public_key are not universally supported. This
|
||
could cause the SSH key exchange
|
||
diffie-hellman-group-exchange-sha* to fail.
|
||
Those keylengths are now removed.
|
||
* stdlib: Fix a bug that could cause a crash when formatting a
|
||
list of non-characters using the control sequences p or
|
||
P and limiting the output with the option chars_limit.
|
||
- Changes for 21.0.1:
|
||
- http://erlang.org/download/OTP-21.0.1.
|
||
* compiler:The compiler could crash when compiling a
|
||
complicated function that used the binary syntax.
|
||
- Changes for 21.0:
|
||
- http://erlang.org/download/otp_src_21.0.readme
|
||
* Erlang/OTP 21 is a new major release with new features, improvements as well as incompatibilities.
|
||
* Potential Incompatibilities:
|
||
- All Corba applications are now moved from the OTP repository
|
||
- A new Corba repository will be created https://github.com/erlang
|
||
- New applications ftp and tftp, moved from inets
|
||
- ssl no longer supports 3_DES cipher suites or RSA-key exchange cipher suites by default
|
||
- Erlang:monitor on a primitive node (erl_interface, jinterface, etc) will no longer fail with badarg exception.
|
||
Instead a monitor will be created, but it will only supervise the connection to the node.
|
||
* Highlights:
|
||
* Erts:
|
||
- Enhanced IO scalability
|
||
- Support for usage of distribution controller processes for alternative transports, routing etc
|
||
- compact instructions on 64bit systems for code below 4GB 20% less memory for loaded code
|
||
- Rewrite of the efile-driver with NIFs and "Dirty schedulers" resulting in faster file operations
|
||
non-smp VM removed
|
||
- link and monitor optimized for scalability
|
||
-------------------------------------------------------------------
|
||
Sun Sep 30 07:20:57 UTC 2018 - Dirk Mueller <dmueller@suse.com>
|
||
|
||
- update to 20.3.8.9:
|
||
- Changes for 20.3.8.9:
|
||
- http://erlang.org/download/OTP-20.3.8.9.README
|
||
* Fix a regression in OTP-15204 that removed .beam file metadata
|
||
- Changes for 20.3.8.8:
|
||
- http://erlang.org/download/OTP-20.3.8.8.README
|
||
* inets: Do not use chunked-encoding with 1xx, 204 and 304
|
||
responses when using mod_esi
|
||
* inets: Add robust handling of chunked-encoded HTTP responses
|
||
with an empty body (1xx, 204, 304)
|
||
- Changes for 20.3.8.7:
|
||
- http://erlang.org/download/OTP-20.3.8.7.README
|
||
* crypto: Update the crypto engine functions to handle multiple
|
||
loads of an engine
|
||
* mnesia: Fixed a bug where the bag table index data was not
|
||
deleted when objects were deleted.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Aug 15 11:27:27 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.3.8.6:
|
||
* inets: Change status code for no mod found to handle request
|
||
to 501
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Aug 14 18:57:58 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.3.8.5.
|
||
- Changes for 20.3.8.5:
|
||
* erts: Fixed a bug causing some Erlang references to be
|
||
inconsistently ordered. This could for example cause failure
|
||
to look up certain elements with references as keys in search
|
||
data structures. This bug was introduced in R13B02. Thanks to
|
||
Simon Cornish for finding the bug and supplying a fix.
|
||
* compiler: Fixed an issue where files compiled with the
|
||
+deterministic option differed if they were compiled in a
|
||
different directory but were otherwise identical.
|
||
* crypto: Fixed a node crash in crypto:compute_key(ecdh, ...)
|
||
when passing a wrongly typed Others argument.
|
||
* erts: Fixed a bug which caused an emulator crash when
|
||
enif_send() was called by a NIF that executed on a dirty
|
||
scheduler. The bug was either triggered when the NIF called
|
||
enif_send() without a message environment, or when the process
|
||
executing the NIF was send traced.
|
||
* erts: Fixed a bug causing some Erlang references to be
|
||
inconsistently ordered. This could for example cause failure
|
||
to look up certain elements with references as keys in search
|
||
data structures. This bug was introduced in R13B02. Thanks to
|
||
Simon Cornish for finding the bug and supplying a fix.
|
||
* mnesia: When master node is set do not force a load from
|
||
ram_copies replica when there are no available disc_copies,
|
||
since that would load an empty table. Wait until a disk
|
||
replica is available or until user explicitly force_loads the
|
||
table.
|
||
* mnesia: Allow to add replicas even if all other replicas are
|
||
down when the other replicase are not stored on disk.
|
||
* ssl: Correct handling of empty server SNI extension
|
||
* ssl: Correct cipher suite handling for ECDHE_*, the incorrect
|
||
handling could cause an incorrrect suite to be selected and
|
||
most likly fail the handshake.
|
||
|
||
- Changes for 20.3.8.4:
|
||
* asn1: A bug in ASN.1 BER decoding has been fixed. When
|
||
decoding a recursively enclosed term the length was not
|
||
propagated to that term decoding, so if the length of the
|
||
enclosed term was longer than the enclosing that error was not
|
||
dectected. A hard coded C stack limitation for decoding
|
||
recursive ASN.1 terms has been introduced. This is currently
|
||
set to 8 kWords giving a nesting depth of about 1000 levels.
|
||
Deeper terms can not be decoded, which should not be much of a
|
||
real world limitation.
|
||
|
||
- Changes for 20.3.8.3:
|
||
* erts: Fixed a race condition in the inet driver that could
|
||
cause receive to hang when the emulator was compiled with gcc8.
|
||
* erts: Fix bug in generation of erl_crash.dump, which could
|
||
cause VM to crash. Bug exist since erts-9.2 (OTP-20.2).
|
||
* ic: Fixed potential buffer overflow bugs in
|
||
oe_ei_encode_long/ulong/longlong/ulonglong functions on 64-bit
|
||
architectures. These functions expect 32 bit integers as the
|
||
IDL type "long" is defined as 32 bits. But there is nothing
|
||
preventing user code from "breaking" the interface and pass
|
||
larger values on 64-bit architectures where the C type "long"
|
||
is 64 bits.
|
||
* inets: Enhance error handling, that is mod_get will return 403
|
||
if a path is a directory and not a file.
|
||
* kernel: Non semantic change in dist_util.erl to silence
|
||
dialyzer warning.
|
||
* ssl: Improve cipher suite handling correcting ECC and TLS-1.2
|
||
requierments. Backport of solution for ERL-641
|
||
* ssl: Option keyfile defaults to certfile and should be trumped
|
||
with key. This failed for engine keys.
|
||
|
||
- Changes for 20.3.8.2:
|
||
* erl_interface: Make ei_connect and friends also accept state
|
||
ok_simultaneous during handshake, which means the other node
|
||
has initiated a connection setup that will be cancelled in
|
||
favor of this connection.
|
||
* erts: Fixed a rare bug that could cause processes to be
|
||
scheduled after they had been freed.
|
||
* ic: Fixed bug in ic causing potential buffer overrun in
|
||
funtion oe_ei_encode_atom. Bug exists since ic-4.4.4
|
||
(OTP-20.3.4).
|
||
* kernel: Fix some potential buggy behavior in how ticks are
|
||
sent on inter node distribution connections. Tick is now sent
|
||
to c-node even if there are unsent buffered data, as c-nodes
|
||
need ticks in order to send reply ticks. The amount of sent
|
||
data was also calculated wrongly when ticks were suppressed
|
||
due to unsent buffered data.
|
||
|
||
- Changes for 20.3.8.1:
|
||
* inets: Options added for setting low-level properties on the
|
||
underlying TCP connections. The options are: sock_ctrl,
|
||
sock_data_act and sock_data_pass. See the manual for details.
|
||
* ssh: SFTP clients reported the error reason "" if a non-OTP
|
||
sftp server was killed during a long file transmission. Now
|
||
the signal name (for example "KILL") will be the error reason
|
||
if the server's reason is empty. The documentation also lacked
|
||
type information about this class of errors.
|
||
* ssh: Fix ssh_sftp decode error for sftp protocol version 4
|
||
* syntax_tools: Fix a bug regarding reverting map types.
|
||
|
||
- Changes for 20.3.8:
|
||
* erts: Fixed bug in ets that could cause VM crash if process A
|
||
terminates after fixating a table and process B deletes the
|
||
table at "the same time". The table fixation could be done
|
||
with ets:safe_fixtable or if process A terminates in the
|
||
middle of a long running select or match call.
|
||
* snmp: The Snmp MIB compiler now allows using a
|
||
TEXTUAL-CONVENTION type before defining it.
|
||
|
||
- Changes for 20.3.7:
|
||
* erl_docgen: Update makefile so db_funcs.xsl is a part of the
|
||
installed application.
|
||
* erts: Fixed bug in enif_binary_to_term which could cause
|
||
memory corruption for immediate terms (atoms, small integers,
|
||
pids, ports, empty lists).
|
||
* erts: Fixed bug in erlang:system_profile/2 that could cause
|
||
superfluous {profile,_,active,_,_} messages for terminating
|
||
processes.
|
||
* inets: The option max_headers operated on the individual
|
||
header length instead of the total length of all headers. Also
|
||
headers with empty keys are now discarded.
|
||
|
||
- Changes for 20.3.6:
|
||
* crypto: If OPENSSL_NO_EC was set, the compilation of the
|
||
crypto nifs failed.
|
||
* crypto: C-compile errors for LibreSSL 2.7.0 - 2.7.2 fixed
|
||
* ssh: Host key hash erroneously calculated for clients
|
||
following draft-00 of RFC 4419, for example PuTTY
|
||
* ssh: Renegotiation could fail in some states
|
||
|
||
- Changes for 20.3.5:
|
||
* erts: Fixed a crash in heart:get_cmd/0 when the stored command
|
||
was too long.
|
||
* ssl: Proper handling of clients that choose to send an empty
|
||
answer to a certificate request.
|
||
|
||
- Changes for 20.3.4:
|
||
* erl_interface: Fix bug in ei_connect functions that may cause
|
||
failure due to insufficient buffer space for gethostbyname_r.
|
||
* erl_interface, ic: Optimize encoding/decoding for pure 7-bit
|
||
ascii atoms.
|
||
* inets: Fix broken options handling in httpc (ERL-441).
|
||
* ssh: An ssh_sftp server (running version 6) could fail if it
|
||
is told to remove a file which in fact is a directory.
|
||
* ssh: Fix rare spurios shutdowns of ssh servers when receiveing
|
||
{'EXIT',_,normal} messages.
|
||
|
||
- Changes for 20.3.3:
|
||
* sasl: When upgrading with instruction 'restart_new_emulator',
|
||
the generated temporary boot file used 'kernelProcess'
|
||
statements from the old release instead of the new release.
|
||
This is now corrected.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Apr 14 10:51:00 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.3.2
|
||
* ssl: Added new API functions to facilitate cipher suite handling
|
||
* erts, observer: More crash dump info such as: process binary
|
||
virtual heap stats, full info for process causing out-of-mem
|
||
during GC, more port related info, and dirty scheduler info.
|
||
* inets: Add support for unix domain sockets in the http client.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 1 09:08:16 UTC 2018 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.2.2.
|
||
- Changes for 20.2.2:
|
||
* mnesia: Removed a quadratic behavior in startup. This change
|
||
implies that backend plugins (if used) must be set when the
|
||
schema is created or via configuration parameters before mnesia
|
||
is started.
|
||
* mnesia: Bad timing could crash mnesia after a checkpoint was
|
||
deactivated and reactivated with the same checkpoint name on
|
||
different tables.
|
||
- Changes for 20.2.1:
|
||
* ssh: Fix problem with OpenSSH 7.2 (and later) clients that has
|
||
used sha1 instead of sha2 for rsa-sha-256/512 user's public
|
||
keys.
|
||
- Highlighted changes for 20.2:
|
||
* crypto, ssl: The crypto API is extended to use private/public
|
||
keys stored in an Engine for sign/verify or encrypt/decrypt
|
||
operations. The ssl application provides an API to use this new
|
||
engine concept in TLS.
|
||
* ssh: SSH can now fetch the host key from the private keys stored
|
||
in an Engine. See the crypto application for details about
|
||
Engines.
|
||
* ssl: A new command line option -ssl_dist_optfile has been added
|
||
to facilitate specifying the many options needed when using SSL
|
||
as the distribution protocol.
|
||
* stdlib: Improve performance of the new string functionality when
|
||
handling ASCII characters.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Nov 27 07:46:03 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.1.5:
|
||
* erts: Fixed a regression in zlib:gunzip/1 that prevented it
|
||
from working when the decompressed size was a perfect multiple
|
||
of 16384. This regression was introduced in 20.1.1
|
||
* erts: Fixed a memory corruption bug in enif_inspect_iovec;
|
||
writable binaries stayed writable after entering the iovec.
|
||
* erts: Fixed a crash in enif_inspect_iovec on encountering empty
|
||
binaries.
|
||
* erts: zlib:deflateParams/3 will no longer return buf_error when
|
||
called after zlib:deflate/2 with zlib 1.2.11.
|
||
* inets: Correct the handling of location headers so that the
|
||
status code is not hard coded. This should have been fixed by
|
||
commit 2cc5ba70cbbc6b3ace81a2a0324417c3b65265bb but
|
||
unfortunately was broken during a code refactoring and
|
||
unnoticed due to a faulty placed test case.
|
||
|
||
- Update to 20.1.4:
|
||
* inets: Fix broken handling of POST requests
|
||
* inets: Make sure ints:stop/2 of the service httpd is
|
||
synchronous
|
||
* inets: Honor status code returned by ESI script and modernize
|
||
"location" header handling.
|
||
|
||
- Update to 20.1.3:
|
||
* diameter: A fault introduced in diameter 2.1 could cause decode
|
||
errors to be ignored in AVPs following the header of aGrouped
|
||
AVP.
|
||
* erts: Added zlib:set_controlling_process/2 to move a zstream()
|
||
between processes.
|
||
* erts: Fix so that schedulers are bound correctly when the first
|
||
available cpu is not the first detected cpu. e.g. when using
|
||
"taskset -c X..Y" when X is not equal to 0.
|
||
* snmp: The recbuf configuration option was not propagated
|
||
correctly to the socket for the SNMP Manager.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 23 13:49:29 UTC 2017 - rbrown@suse.com
|
||
|
||
- Replace references to /var/adm/fillup-templates with new
|
||
%_fillupdir macro (boo#1069468)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 19 10:40:11 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 21.1.2:
|
||
* diameter: An inadvertently removed monitor in diameter 2.1
|
||
caused the ets table diameter_reg to leak entries, and caused
|
||
service restart and more to fail.
|
||
* erts: Fixed bug that could cause a VM crash when a corrupt
|
||
message is received on distribution channel from other node.
|
||
|
||
- Update to 20.1.1:
|
||
* compiler: The compiler could issue an incorrect internal
|
||
consistency failure diagnostic for some complicated bit syntax
|
||
maches.
|
||
* erts: The new zlib module returned a data_error when inflating
|
||
concatenated streams, which was incompatible with the old
|
||
module's behavior of returning the uncompressed data up to the
|
||
end of the first stream.
|
||
* erts: zlib:gunzip/1 will no longer stop at the end of the first
|
||
stream when decompressing concatenated gzip files.
|
||
* ssh: Fixed broken printout
|
||
* ssh: Disable aes_gcm ciphers if peer is OpenSSH 6.2 which is
|
||
known to have trouble with them in some cases.
|
||
|
||
- Update to 20.1:
|
||
* crypto, public_key: Extend crypto and public_key functions
|
||
sign and verify with: support for RSASSA-PS padding for
|
||
signatures and for saltlength setting X9.31 RSA padding. sha,
|
||
sha224, sha256, sha384, and sha512 for dss signatures as
|
||
mentioned in NIST SP 800-57 Part 1. ripemd160 to be used for
|
||
rsa signatures. A new tuple in crypto:supports/0 reports
|
||
supported MAC algorithms.
|
||
* diameter: Add service option decode_format to allow incoming
|
||
messages to be decoded into maps instead of records. Decode
|
||
performance has been improved. Add service/transport option
|
||
avp_dictionaries to give better support for dictionaries only
|
||
defining AVPs.
|
||
* erts: Upgraded the ERTS internal PCRE library from version
|
||
8.40 to version 8.41.
|
||
* erts, kernel, tools: Profiling with lock counting can now be
|
||
fully toggled at runtime in the lock counting emulator
|
||
(-emu_type lcnt). Everything is enabled by default to match
|
||
the old behavior, but specific categories can be toggled at
|
||
will with minimal runtime overhead when disabled. Refer to the
|
||
documentation on lcnt:rt_mask/1 for details.
|
||
* lcnt:collect and lcnt:clear will no longer block all other
|
||
threads in the runtime system. This makes it possible to run
|
||
the lock counting under heavier load.
|
||
* erts: The zlib module has been refactored and all its
|
||
operations will now yield appropriately, allowing them to be
|
||
used freely in concurrent applications.
|
||
* erts, tools: Add erlang:iolist_to_iovec/1, which converts an
|
||
iolist() to an erlang:iovec(), which is suitable for use with
|
||
enif_inspect_iovec().
|
||
* erts: Add new nif API functions for managing an I/O Queue. The
|
||
added functions are: enif_ioq_create(), enif_ioq_destroy(),
|
||
enif_ioq_enq_binary(), enif_ioq_enqv(), enif_ioq_deq(),
|
||
enif_ioq_peek(), enif_inspect_iovec(), enif_free_iovec()
|
||
* observer/crashdump_viewer: Reading of crash dumps with many
|
||
binaries is optimized. A progress bar is shown when the detail
|
||
view for a process is opened. The cdv script now sets
|
||
ERL_CRASH_DUMP_SECONDS=0 to avoid generating a new crash dump
|
||
from the node running the Crashdump Viewer.
|
||
* observer: Add system statistics and limits to frontpage in
|
||
observer.
|
||
* public_key, ssl**: Improved error propagation and reports
|
||
* ssh: A new option modify_algorithms is implemented. It enables
|
||
specifying changes on the default algorithms list. See the
|
||
reference manual and the SSH User's Guide chapter "Configuring
|
||
algorithms in SSH".
|
||
* tools/xref: The predefined Xref analysis locals_not_used now
|
||
understands the -on_load() attribute and does not report
|
||
unused functions.
|
||
* tools/fprof: When sampling multiple processes and analyzing
|
||
with totals set to true, the output now sums together all
|
||
caller and callee entries which concerns the same function.
|
||
Previous behaviour was to report each contributing entry
|
||
separately.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 14 20:36:14 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Only Java 1.6 is supported by Erlang since 18.0 release
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 14 20:05:23 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.0.5:
|
||
* erts: Fixed bug in binary_to_term and binary_to_atom that could
|
||
cause VM crash. Typically happens when the last character of an
|
||
UTF8 string is in the range 128 to 255, but truncated to only
|
||
one byte. Bug exists in binary_to_term since ERTS version
|
||
5.10.2 (OTP_R16B01) and binary_to_atom since ERTS version 9.0
|
||
(OTP-20.0).
|
||
* inets: http_uri aligned to follow RFC 3986 and not convert "+"
|
||
to space when decoding URIs.
|
||
* inets: Added new option max_client_body_chunk to httpd server
|
||
to allow chunked delivery of PUT and POST data to mod_esi
|
||
callback. Note, new mod_esi callback implementation is
|
||
required. Also correct value provided by server_name
|
||
environment variable.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Aug 27 14:19:49 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.0.4:
|
||
* dializer: Fix a bug where merging PLT:s could lose info. The
|
||
bug was introduced in Erlang/OTP 20.0.
|
||
* erts: A timer internal bit-field used for storing scheduler id
|
||
was too small. As a result, VM internal timer data structures
|
||
could become inconsistent when using 1024 schedulers on the
|
||
system. Note that systems with less than 1024 schedulers are
|
||
not effected by this bug. This bug was introduced in ERTS
|
||
version 7.0 (OTP 18.0).
|
||
* erts: Automatic cleanup of a BIF timer, when the owner process
|
||
terminated, could race with the timeout of the timer. This
|
||
could cause the VM internal data structures to become
|
||
inconsistent which very likely caused a VM crash. This bug was
|
||
introduced in ERTS version 9.0 (OTP 20.0).
|
||
|
||
- Update to 20.0.3:
|
||
* asn1: Default values now work in extension for PER, so if you
|
||
give the atom asn1_DEFAULT instead of a value it will become
|
||
the default value.
|
||
* compiler: Fail labels on guard BIFs weren't taken into account
|
||
during an optimization pass, and a bug in the validation pass
|
||
sometimes prevented this from being noticed when a fault
|
||
occurred.
|
||
* erts: Binary append operations did not check for overflow,
|
||
resulting in nonsensical results when huge binaries were
|
||
appended.
|
||
* ssh: All unknown options are sent to the transport handler
|
||
regardless of type.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Aug 20 06:28:17 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.0.2:
|
||
* asn: Fixed compilation error of generated code caused by a
|
||
missing quotation of function names as part of an external call for
|
||
encoding.
|
||
* erts: Added missing release notes for OTP-14491 ("performance
|
||
bug in pre-allocators") which was included in erts-9.0.1 (OTP-20.0.1).
|
||
* erts: Fixed a bug that prevented TCP sockets from being
|
||
closed properly on send timeouts.
|
||
* erts: Fixed bug in operator bxor causing erroneuos result
|
||
when one operand is a big *negative* integer with the lowest N*W bits as
|
||
zero and the other operand not larger than N*W bits. N is an integer of 1
|
||
or larger and W is 32 or 64 depending on word size.
|
||
* kernel: The documentation for the 'quiet' option in
|
||
disk_log:open/1 had an incorrect default value.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jul 31 17:02:58 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- erlang-gs application has been depricated
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jul 17 14:24:49 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 20.0.1:
|
||
* erts: Fixed a bug in gen_tcp:send where it never returned when
|
||
repeatedly called on a remotely closed TCP socket.
|
||
* erts: Fixed segfault that could happen during cleanup of aborted
|
||
erlang:port_command/3 calls. A port_command is aborted if the
|
||
port is closed at the same time as the port_command was issued.
|
||
This bug was introduced in erts-8.0.
|
||
* erts: Fixed implementation of statistics(wall_clock) and
|
||
statistics(runtime) so that values do not unnecessarily wrap due
|
||
to the emulator. Note that the values returned by
|
||
statistics(runtime) may still wrap due to limitations in the
|
||
underlying functionality provided by the operating system.
|
||
* erts: Fix performance bug in pre-allocators that could cause
|
||
them to permanently fall back on normal more expensive memory
|
||
allocation. Pre-allocators are used for quick allocation of
|
||
short lived meta data used by messages and other scheduled
|
||
tasks. Bug exists since OTP_R15B02.
|
||
* runtime_tools: A faulty encoding comment was added when saving
|
||
trace patterns to file. This is now corrected.
|
||
* stdlib: A bug in proc_lib:format() introduced in Erlang/OTP 20.0
|
||
is corrected.
|
||
* stdlib: Fix string:len/1 to be compatible with previous
|
||
versions.
|
||
* stdlib: In OTP-20.0, the behavior of c, make, and ct_make was
|
||
changed so that in some cases the beam files by default would be
|
||
written to the directory where the source files were found. This
|
||
is now changed back to the old behavior so beam files are by
|
||
default written to current directory.
|
||
|
||
- Update to 20.0.0:
|
||
* Potential Incompatibilities
|
||
* ERTS:
|
||
* The non SMP Erlang VM is deprecated and not built by default
|
||
* Remove deprecated erlang:hash/2
|
||
* erlang:statistics/1 with scheduler_wall_time now also
|
||
includes info about dirty CPU schedulers.
|
||
* The new purge strategy introduced in OTP 19.1 is mandatory
|
||
and slightly incompatible for processes holding funs
|
||
* see erlang:check_process_code/3.
|
||
* The NIF library reload is not supported anymore.
|
||
* Atoms can now contain arbitrary unicode characters which
|
||
means that the DFLAG_UTF8_ATOMS capability in the
|
||
distribution protocol must be supported if an OTP 20 node
|
||
should accept the connection with another node or library.
|
||
Third party libraries which uses the distribution protocol
|
||
need to be updated with this.
|
||
* Asn1: Deprecated module and functions removed (asn1rt,
|
||
asn1ct:encode/3 and decode/3)
|
||
* Ssh: client only option in a call to start a daemon will now fail
|
||
* Highlights
|
||
* Erts:
|
||
* Dirty schedulers enabled and supported on VM with SMP support.
|
||
* support for “dirty” BIFs and “dirty” GC.
|
||
* erlang:garbage_collect/2 for control of minor or major GC
|
||
* Erlang literals are no longer copied when sending messages.
|
||
* Improved performance for large ETS tables, >256 entries
|
||
(except ordered_set)
|
||
* erlang:system_info/1 atom_count and atom_limit
|
||
* Reduced memory pressure by converting sub-binaries to
|
||
heap-binaries during GC
|
||
* enif_select, map an external event to message
|
||
* Improvements of timers internally in the VM resulting in
|
||
reduced memory consumption and more efficient administration
|
||
for timers
|
||
* Compiler:
|
||
* Code generation for complicated guards is improved.
|
||
* Warnings for repeated identical map keys. #{'a'=>1, 'b'=>2,
|
||
'a'=>3} will warn for the repeated key a.
|
||
* By default there is now a warning when export_all is used.
|
||
Can be disabled
|
||
* Pattern matching for maps is optimized
|
||
* New option deterministic to omit path to source + options
|
||
info the BEAM file.
|
||
* Atoms may now contain arbitrary unicode characters.
|
||
* compile:file/2 has an option to include extra chunks in the
|
||
BEAM file.
|
||
* Misc other applications:
|
||
* Significantly updated string module with unicode support and
|
||
many new functions
|
||
* crypto now supports OpenSSL 1.1
|
||
* Unnamed ets tables optimized
|
||
* gen_fsm is deprecated and replaced by gen_statem
|
||
* A new event manager to handle a subset of OS signals in
|
||
Erlang
|
||
* Optimized sets add_element, del_element and union
|
||
* Added rand:jump/0-1
|
||
* When a gen_server crashes, the stacktrace for the client
|
||
will be printed to facilitate debugging.
|
||
* take/2 has been added to dict, orddict, and gb_trees.
|
||
* take_any/2 has been added to gb_trees
|
||
* erl_tar support for long path names and new file formats
|
||
* asn1: the new maps option changes the representation of
|
||
SEQUENCE to be maps instead of records
|
||
* A TLS client will by default call
|
||
public_key:pkix_verify_hostname/2 to verify the hostname
|
||
* ssl: DTLS documented in the API, experimental
|
||
* ssh: improving security, removing and adding algorithms
|
||
* New math:fmod/2
|
||
|
||
-------------------------------------------------------------------
|
||
Sat May 6 11:26:42 UTC 2017 - meissner@suse.com
|
||
|
||
- Disable global PIE for erlang, code is currently not fully
|
||
ready.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Apr 30 08:51:11 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.3.2:
|
||
* erts: The +Bi command line argument of erl erroneously caused
|
||
SIGTERM to be ignored by the VM as well as of all its child
|
||
processes. This bug was introduced in erts version 8.3.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 6 13:14:49 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.3.1:
|
||
* crypto: Fix a bug with AES CFB 128 for 192 and 256 bit keys.
|
||
Thanks to kellymclaughlin !
|
||
* erts: Trying to open a directory with file:read_file/1 on Unix
|
||
leaked a file descriptor. This bug has now been fixed.
|
||
* erts: Invoking init:stop/0 via the SIGTERM signal, in a non-SMP
|
||
BEAM, could cause BEAM to terminate with fatal error. This has
|
||
now been fixed and the BEAM will terminate normally when SIGTERM
|
||
is received.
|
||
* inets: Fixed a bug in ftp that made further operations after a
|
||
recv_chunk operation impossible.
|
||
* ssh: ssh:daemon_info/1 crashed if the listening IP was not 'any'
|
||
* ssl: Correct active once emulation, for TLS. Now all data
|
||
received by the connection process will be delivered through
|
||
active once, even when the active once arrives after that the
|
||
gen_tcp socket is closed by the peer.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 6 13:14:49 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Changes since 19.2:
|
||
* crypto, ssh: The implementation of the key exchange algorithms
|
||
diffie-hellman-group-exchange-sha* are optimized, up to a factor
|
||
of 11 for the slowest ( = biggest and safest) group size.
|
||
* dialyzer: The peak memory consumption is reduced. Analyzing
|
||
modules with binary construction with huge strings is now much
|
||
faster.
|
||
* erts: A received SIGTERM signal to beam will generate a 'stop'
|
||
message to the init process and terminate the Erlang VM nicely.
|
||
This is equivalent to calling init:stop/0.
|
||
* kernel: The functions in the file module that take a list of
|
||
paths (e.g. file:path_consult/2) will now continue to search in
|
||
the path if the path contains something that is not a directory.
|
||
* kernel: Two OTP processes that are known to receive many
|
||
messages are rex (used by rpc) and error_logger. Those processes
|
||
will now store unprocessed messages outside the process heap,
|
||
which will potentially decrease the cost of garbage collections.
|
||
* public_key: New function pkix_verify_hostname/2,3 implements
|
||
certificate hostname checking. See the manual and RFC 6125.-
|
||
* public_key, ssh: The ssh host key fingerprint generation now
|
||
also takes a list of algorithms and returns a list of
|
||
corresponding fingerprints. See
|
||
public_key:ssh_hostkey_fingerprint/2 and the option
|
||
silently_accept_hosts in ssh:connect.
|
||
* ssl: Move PEM cache to a dedicated process, to avoid making the
|
||
SSL manager process a bottleneck. This improves scalability of
|
||
TLS connections.
|
||
* stdlib: filename:safe_relative_path/1 to sanitize a relative
|
||
path has been added.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Mar 10 08:10:13 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Add missed scripts requires for erlang-epmd package
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 2 15:40:10 UTC 2017 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.2.2:
|
||
* mnesia: Fixed crash in checkpoint handling when table was
|
||
deleted during backup.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Dec 18 09:38:50 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.2:
|
||
* stdlib: The new behaviour gen_statem has been improved with 3
|
||
new features: the possibility to use old style non-proxy
|
||
timeouts for gen_statem:call/2,3, state entry code, and state
|
||
timeouts. These are backwards compatible. Minor code and
|
||
documentation improvements has been performed including a
|
||
borderline semantics correction of timeout zero handling.
|
||
* ssl: Experimental version of DTLS. It is runnable but not
|
||
complete and cannot be considered reliable for production usage.
|
||
To use DTLS add the option {protocol, dtls} to ssl:connect and
|
||
ssl:listen.
|
||
* ssh: Extended the option silently_accept_hosts for ssh:connect
|
||
to make it possible for the client to check the SSH host key
|
||
fingerprint string. Se the reference manual for SSH.
|
||
* ~40 contributions since the previous service release OTP 19.1
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 29 09:27:58 UTC 2016 - kruber@zib.de
|
||
|
||
- Update to 19.1:
|
||
* erts: Improved dirty scheduler support. A purge of a module
|
||
will not have to wait for completion of all ongoing dirty
|
||
NIF calls
|
||
* erts: Improved accuracy of timeouts on MacOS X
|
||
* kernel: Add net_kernel:setopts/2 and net_kernel:getopts/2 to
|
||
control options for distribution sockets in runtime
|
||
* asn1: Compiling multiple ASN.1 modules in the same directory
|
||
with parallel make (make -j) should now be safe
|
||
* httpd: support for PUT and DELETE in mod_esi
|
||
* ~30 contributions since 19.0
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Aug 12 18:20:31 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.0.4:
|
||
* erts: Fixed a race that could cause a lost wakeup of a process
|
||
that timed out in a receive ... after. This bug was introduced
|
||
in ERTS version 7.0.
|
||
* erts: Fixed segfault after writing an erl crash dump.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jun 26 09:01:32 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 19.0:
|
||
* compiler, stdlib: New preprocessor macros *?FUNCTION_NAME,
|
||
?FUNCTION_ARITY*. New preprocessor directives -error(Term) and
|
||
-warning(Term) to cause a compilation error or warning,
|
||
respectively.
|
||
* gen_statem: a new state machine behavior
|
||
* mnesia_ext: plugin of external storage solutions to mnesia
|
||
* crypto: uses EVP interface in OpenSSL resulting in generally
|
||
better performance and support for HW acceleration
|
||
* ssh: performance improvements, uses the new gen_statem behavior
|
||
* ssl: enhanced error log messages
|
||
* dialyzer: the support for maps is very much extended both
|
||
the type specification syntax and the type analysis.
|
||
* erts: erlang:open_port(spawn, ...) 3-5 times faster
|
||
* erts/kernel: Experimental support for Unix Domain Sockets
|
||
* ose: Deprecated application has been removed
|
||
* webtool: Deprecated application has been removed
|
||
* test_server: Deprecated application has been removed, use
|
||
common_test instead
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jun 20 21:35:57 UTC 2016 - jengelh@inai.de
|
||
|
||
- Do not suppress errors from useradd/groupadd
|
||
- Orthographic/typographical fixes
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 17 07:19:17 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.3.4:
|
||
* inets: Handle multiple \t in mime types file
|
||
* ssl: Correct ssl:prf/5 to use the negotiated cipher suite's prf
|
||
function in ssl:prf/5 instead of the default prf.
|
||
* ssl: Timeouts may have the value 0, guards have been corrected
|
||
to allow this
|
||
* ssl: Change of internal handling of hash sign pairs as the used
|
||
one enforced to much restrictions making some valid
|
||
combinations unavailable.
|
||
* ssl: Create a little randomness in sending of session
|
||
invalidation messages, to mitigate load when whole table is
|
||
invalidated.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun May 22 09:13:09 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Return diameter application: as for 18.3.3 it is distributed
|
||
under APL license
|
||
|
||
-------------------------------------------------------------------
|
||
Sun May 22 08:58:48 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.3.3:
|
||
* common_test: The nodelay option used to be enabled (true) by
|
||
default for sockets opened by the Common Test
|
||
telnet client.
|
||
* common_test: Fix bug in cth_surefire
|
||
* common_test: The ct:get_timetrap_info/0 function has been
|
||
updated to return more information about timetrap
|
||
scaling.
|
||
* common_test: A problem with stylesheet HTML tags getting
|
||
incorrectly escaped by Common Test has been
|
||
corrected.
|
||
* common_test: The ct_run start flag -no_esc_chars and
|
||
ct:run_test/1 start option {esc_chars,Bool} have
|
||
been introduced.
|
||
* inets: Put back unused module inets_regexp
|
||
* ssl: Correct cipher suites conversion and gaurd expression.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue May 3 16:53:07 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.3.2:
|
||
* inets: Add environment information item peer_cert to mod_esi
|
||
* ssl: Corrections to cipher suite handling using
|
||
the 3 and 4 tuple format
|
||
* ssl: Make values for the TLS-1.2 signature_algorithms
|
||
extension configurable
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 17 09:07:18 UTC 2016 - kruber@zib.de
|
||
|
||
- Update to 18.3:
|
||
* New statistics info about runnable and active processes &
|
||
ports. Call erlang:statistics with:
|
||
total_run_queue_lengths | run_queue_lengths | total_active_tasks
|
||
| active_tasks.
|
||
* Time warp improvements: dbg:p/2 and erlang:trace/3 with
|
||
monotonic_timestamp |strict_monotonic_timestamp.
|
||
* Introduced a validation callback for heart.
|
||
* The module overload in sasl has been deprecated.
|
||
* several bug fixes
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jan 30 14:49:55 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.2.3:
|
||
* inets: mod_alias now traverses all aliases picking
|
||
the longest match and not the first match.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jan 12 14:08:41 UTC 2016 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.2.2:
|
||
* ssh: The authentication method 'keyboard-interactive' failed
|
||
in the Erlang client when the server after successful
|
||
authentication continued by asking for zero more
|
||
passwords.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 28 08:50:34 UTC 2015 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.2.1:
|
||
* Due to a bug in the handling of paths on windows
|
||
none of the following would work with paths
|
||
containing a space: ct_run dialyzer erlc escript typer
|
||
This also contains a fix for HiPE enabled emulator for
|
||
FreeBSD.
|
||
- Update to 18.2:
|
||
* ssl: Add configurable upper limit for session
|
||
cache. erts: Add function enif_getenv to read OS
|
||
environment variables in a portable way from NIFs.
|
||
* kernel: Add {line_delim, byte()} option to
|
||
inet:setopts/2 and decode_packet/3
|
||
* ssh: The 'ecdsa-sha2-nistp256',
|
||
'ecdsa-sha2-nistp384' and 'ecdsa-sha2-nistp521'
|
||
signature algorithms for ssh are implemented. See RFC5656.
|
||
* ssh: The ssh:daemon option dh_gex_groups is
|
||
extended to read a user provided ssh moduli file
|
||
with generator-modulus pairs. The file is in openssh
|
||
format.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 17 17:37:16 CET 2015 - ro@suse.de
|
||
|
||
- disable hipe on s390/s390x to fix build
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 29 13:41:47 UTC 2015 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 18.1.3:
|
||
* ssl: Add possibility to downgrade an SSL/TLS connection to a
|
||
tcp connection, and give back the socket control to a user
|
||
process.
|
||
* ssh: The following new key exchange algorithms are
|
||
implemented:'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384',
|
||
'ecdh-sha2-nistp521','diffie-hellman-group14-sha1',
|
||
'diffie-hellman-group-exchange-sha1' and
|
||
'diffie-hellman-group-exchange-sha256'. This raises the
|
||
security level considerably.
|
||
* kernel,stdlib,sasl: A mechanism for limiting the amount of
|
||
text that the built-in error logger events will produce has
|
||
been introduced. It is useful for limiting both the size of
|
||
log files and the CPU time used to produce them. This
|
||
mechanism is experimental in the sense that it may be changed
|
||
based on feedback. See config parameter
|
||
error_logger_format_depth in the Kernel application.
|
||
- Removed erts_fix_unlock_status_lock.patch: fixed in upstream
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Sep 29 17:17:53 UTC 2015 - matwey.kornilov@gmail.com
|
||
|
||
- Rework wxWidgets BuildRequire: fix build for Leap 42.1
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Aug 26 17:23:03 UTC 2015 - kruber@zib.de
|
||
|
||
- update to 18.0.3:
|
||
* erts: Fixed a binary memory leak when printing to shell using
|
||
the tty driver (i.e. not -oldshell).
|
||
* erts: Fix a bug where the standard error port sometimes
|
||
crashes with eagain as the reason.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 13 14:11:34 UTC 2015 - kruber@zib.de
|
||
|
||
- add erts_fix_unlock_status_lock.patch to fix a rare deadlock in erts
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 24 15:38:54 UTC 2015 - seife+obs@b1-systems.com
|
||
|
||
- fix RHEL/CentOS 7 build
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jul 9 07:44:58 UTC 2015 - kruber@zib.de
|
||
|
||
- update to 18.0.2:
|
||
* Fix processes ending up in an inconsistent half exited state
|
||
in the runtime system without SMP support
|
||
* Remove unnecessary copying of data when retrieving corrected
|
||
Erlang monotonic time.
|
||
* POTENTIAL INCOMPATIBILITY:
|
||
Change default OS monotonic clock source chosen at build time.
|
||
This in order to improve performance. The behavior will now on
|
||
most systems be that (both OS and Erlang) monotonic time stops
|
||
when the system is suspended. (changeable via the
|
||
--enable-prefer-elapsed-monotonic-time-during-suspend
|
||
configure parameter)
|
||
* Fix erlang:system_info(end_time) returning a faulty value on
|
||
32-bit architectures.
|
||
* Fix the trace_file_drv not handling EINTR correctly which
|
||
caused it to fail when the runtime system received a signal.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 30 15:34:14 UTC 2015 - kruber@zib.de
|
||
|
||
- update to 18.0.1:
|
||
* Fix a rare hanging of the VM seen to happen just after
|
||
emulator start. Bug exists since R14.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 26 11:59:59 UTC 2015 - kruber@zib.de
|
||
|
||
- update to 18.0:
|
||
* new license: APL 2.0 (Apache Public License)
|
||
* erts: The time functionality has been extended. This includes
|
||
a new API for time, as well as "time warp" modes which
|
||
alters the behavior when system time changes. You are
|
||
strongly encouraged to use the new API instead of the
|
||
old API based on erlang:now/0. erlang:now/0 has been
|
||
deprecated since it is a scalability bottleneck. See
|
||
http://www.erlang.org/doc/apps/erts/time_correction.html
|
||
* erts: Beside the API changes and time warp modes a lot of
|
||
scalability and performance improvements regarding time
|
||
management has been made. Examples are:
|
||
+ scheduler specific timer wheels,
|
||
+ scheduler specific BIF timer management,
|
||
+ parallel retrieval of monotonic time and system time
|
||
on OS:es that support it.
|
||
* erts: The previously introduced "eager check I/O" feature is
|
||
now enabled by default.
|
||
* erts/compiler: enhanced support for maps. Big maps new uses a
|
||
HAMT (Hash Array Mapped Trie) representation internally
|
||
which makes them more efficient. There is now also
|
||
support for variables as map keys.
|
||
* dialyzer: The -dialyzer() attribute can be used for suppressing
|
||
warnings in a module by specifying functions or warning
|
||
options. It can also be used for requesting warnings in
|
||
a module.
|
||
* ssl: Remove default support for SSL-3.0 and added padding check
|
||
for TLS-1.0 due to the Poodle vulnerability.
|
||
* ssl: Remove default support for RC4 cipher suites, as they are
|
||
consider too weak.
|
||
* stdlib: Allow maps for supervisor flags and child specs
|
||
* stdlib: New functions in ets:
|
||
+ take/2: Works the same as ets:delete/2 but also returns
|
||
the deleted object(s).
|
||
+ update_counter/4 with a default object as argument
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 25 08:41:52 UTC 2015 - dmueller@suse.com
|
||
|
||
- update to 17.5.6:
|
||
* Fix broken relay counters
|
||
* Fix diameter_sctp listener race
|
||
- fix build for SLE_12
|
||
|
||
-------------------------------------------------------------------
|
||
Thu May 28 13:08:20 UTC 2015 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 17.5.4
|
||
|
||
-------------------------------------------------------------------
|
||
Mon May 4 10:01:30 UTC 2015 - dmueller@suse.com
|
||
|
||
- fix systemd service files for epmd:
|
||
* fix stop of epmd (epmd -kill is deprecated and ignored, so stop hangs)
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Apr 7 12:18:26 UTC 2015 - kruber@zib.de
|
||
|
||
- Update to 17.5:
|
||
* ERTS: Added command line argument option for setting the
|
||
initial size of process dictionaries.
|
||
* Diameter: configurable incoming_max len and string_decode for
|
||
diameter messages
|
||
* Bugfixes and minor small features in applications such as
|
||
compiler, common_test, crypto, debugger, eldap, erts, hipe,
|
||
inets, ssh, ssl, ...
|
||
- remoce ct-fix_incl-dirs.patch (included upstream)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Feb 23 09:27:18 UTC 2015 - kruber@zib.de
|
||
|
||
- add ct-fix_incl-dirs.patch (upstream patch for common test)
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Dec 13 12:12:16 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Version 17.4:
|
||
* eldap: Nearly all TCP options are possible to give in the eldap:open/2 call.
|
||
* ssh: Added API functions ptty_alloc/3 and ptty_alloc/4, to allocate a pseudo tty.
|
||
* ssl: Handle servers that may send an empty SNI extension to the client.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Nov 9 08:20:52 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- use wxWidgets 3.0
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Nov 09 03:36:00 UTC 2014 - Led <ledest@gmail.com>
|
||
|
||
- fix bashisms in pre script
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Sep 17 12:18:17 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 17.3:
|
||
* erts: Introduced enif_schedule_nif() which allows a long
|
||
running NIF to be broken into separate NIF invocations
|
||
without the help of a wrapper function written in Erlang
|
||
* common_test: Experimental support for running Quickcheck and
|
||
PropEr tests from common_test suites is added.
|
||
Examples of usage in the suites for the ssh and
|
||
inets applications
|
||
* Bugfixes and minor new features in applications such as asn1,
|
||
erts, kernel, stdlib, diameter, ssh, mnesia, ssl, jinterface
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Aug 26 11:34:10 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Enable Erlang-specific parts of rpmlint for openSUSE 13.2
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 27 17:56:13 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Starting from 17.1 explicit --enable-systemd required
|
||
- To remake configure is not required anymore (patches had been dropped)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 27 12:26:47 UTC 2014 - kruber@zib.de
|
||
|
||
- Update to 17.0:
|
||
* crypto: Add aes_cfb8 cypher to crypto:block_encrypt and
|
||
block_decrypt.
|
||
* diameter: Add result code counters for CEA, DWA, and DPA.
|
||
* erts: The following built in functions in the erlang and
|
||
binary modules now bump an appropriate amount
|
||
of reductions and yield when out of reductions:
|
||
binary_to_list/1, binary_to_list/3, bitstring_to_list/1,
|
||
list_to_binary/1, iolist_to_binary/1,
|
||
list_to_bitstring/1, binary:list_to_bin/1
|
||
* hipe: Handle Maps instructions get_map_elements, put_map_assoc,
|
||
put_map_exact in the HiPE native code compiler.
|
||
* mnesia: The time for inserting locks for a transaction with
|
||
large number of locks is reduced significantly.
|
||
* ssh: Option max_sessions added to ssh:daemon/{2,3}.
|
||
* stdlib: Add maps:get/3 to maps module. The function will
|
||
return the supplied default value if the key does not
|
||
exist in the map.
|
||
- Drop erlang-ppc.patch: has been upstreamed
|
||
- Drop fix-armv7hl.patch: has been upstreamed
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Apr 9 16:08:16 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Update to 17.0:
|
||
* Maps, a new dictionary data type (experimental)
|
||
* ASN.1 improvements and optimizations
|
||
* The {active, N} socket option for TCP, UDP, and SCTP
|
||
* A new (optional) scheduler utilization balancing mechanism
|
||
* Migration of memory carriers has been enabled by default on
|
||
all ERTS internal memory allocators
|
||
* Increased garbage collection tenure rate
|
||
* Experimental "dirty schedulers" functionality
|
||
* Funs can now be given names
|
||
* Miscellaneous unicode support enhancements
|
||
* A new version scheme for OTP its applications has been introduced
|
||
- Drop 0001-Add-systemd-option-to-empd.-Check-for-include-system.patch: has been upstreamed
|
||
- Drop 0002-Add-systemd-support-to-epmd.patch: has been upstreamed
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 27 18:09:29 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Invoking ./Install is not required.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 27 17:17:49 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Split EPMd to separate package in order to make it possible to
|
||
use alternative implementations of EPMd.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 23 07:51:54 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Add README.SUSE, modify epmd.socket: fix bnc#869112
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 23 06:46:23 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Add erlang-observer package (observer depends on wx)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 20 07:35:16 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Use %service_add_pre macro
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 19 07:23:07 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Fix names of epmd.service and epmd.socket files
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 6 12:12:26 UTC 2014 - matwey.kornilov@gmail.com
|
||
|
||
- Add User and Group to epmd.service
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Dec 21 11:05:07 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Add crypto.patch: fix compilation with openssl having EC disabled
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 20 19:51:06 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Fixing systemd.
|
||
- Warning: variables in /etc/sysconfig/erlang must be set and filled.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 20 14:51:25 UTC 2013 - kruber@zib.de
|
||
|
||
- update to R16B03 release:
|
||
+ A new memory allocation feature called "super carrier" has
|
||
been introduced. It can for example be used for pre-allocation
|
||
of all memory that the runtime system should be able to use.
|
||
It is enabled by passing the +MMscs (size in MB) command line
|
||
argument. For more information see the documentation of the
|
||
+MMsco, +MMscrfsd, +MMscrpm, +MMscs, +MMusac, and, +Mlpm
|
||
command line arguments in the erts_alloc(3) documentation.
|
||
+ The ldap client eldap now supports the start_tls operation.
|
||
This upgrades an existing tcp connection to encryption using
|
||
tls, see eldap:start_tls/2 and /3.
|
||
+ The ftp client (inets application) now supports ftp over tls
|
||
(ftps).
|
||
- adapt patch erlang-not-install-misc.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Oct 27 17:07:46 UTC 2013 - p.drouand@gmail.com
|
||
|
||
- Add systemd support for openSUSE >= 12.3
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 19 06:13:18 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- update to R16B02 release:
|
||
+ Lots of bug-fixes
|
||
+ A new test scope
|
||
+ Added application:ensure_all_started/1-2
|
||
+ New erl option +SP to set schedulers by percentages.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 21 20:11:27 UTC 2013 - kruber@zib.de
|
||
|
||
- update to R16B01 release:
|
||
+ Migration of memory carriers between allocator instances, when
|
||
enabled it will result in reduced memory footprint when the
|
||
memory load is unevenly distributed between scheduler specific
|
||
allocator instances.
|
||
+ Interruptible term_to_binary, (thanks to Erik Stenman)
|
||
+ Added the +sfwi <interval> Scheduler Forced Wakeup Interval
|
||
+ All crypto functions except the block chipers will now chunk
|
||
large input into several calls to avoid blocking the scheduler
|
||
for too long.
|
||
+ Elliptic curve support in crypto, ssl and ssh
|
||
(thanks to Andreas Schultz)
|
||
+ Lift static limitation (FD_SETSIZE) for file descriptors on
|
||
Mac OS X. (thanks to Anthony Ramine)
|
||
+ Removed a lock around GC statistics counter
|
||
+ Many small improvements and in Diameter
|
||
+ 60 user contributions
|
||
- adapted fix-armv7hl.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jun 15 18:10:56 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- dialyzer requires graphviz (see dialyzer_callgraph:to_ps/3)
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jun 15 17:28:03 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- move dialyzer binaries into separate package
|
||
|
||
-------------------------------------------------------------------
|
||
Thu May 23 11:11:31 UTC 2013 - mrueckert@suse.de
|
||
|
||
- added rcepmd symlinks for the init script
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 4 08:23:56 UTC 2013 - speilicke@suse.com
|
||
|
||
- Drop rebar-specific RPM macros, these belong into erlang-rebar
|
||
(seperate package)
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 31 07:28:23 UTC 2013 - schwab@suse.de
|
||
|
||
- Fix ppc and arm patches so that they don't conflict
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Mar 8 12:21:26 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Fix erlang-src orphaned directories.
|
||
erlang-src has been split according to erlang package.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Mar 8 09:01:19 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Add erlang-no-install-misc.patch:
|
||
initial Fedora name was too long for us:
|
||
otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch
|
||
this patch is
|
||
* to remove generating of erlang/man/cat? directories (which were not even market as %ghost) at %post.
|
||
The man-files is gz-pped (by SUSE) and because of that, script misc/format_man_pages has been failing its job for a long time;
|
||
* to remove unused scripts from misc.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 27 14:52:47 UTC 2013 - kruber@zib.de
|
||
|
||
- update to R16B release:
|
||
+ Optimized handling of processes in the VM
|
||
* New internal process table allowing for parallel reads and
|
||
writes
|
||
* optimized run queue management
|
||
* optimized process state changes
|
||
+ "Non-blocking" code loading
|
||
+ New internal port table, and rewrite of scheduling of port
|
||
tasks.
|
||
+ Dynamic allocation of port structures, allowing the default
|
||
for maximum ports to be raised to 65536 (from 1024)
|
||
+ Support for UTF-8 encoded Unicode characters in source files.
|
||
+ Inets application: The http client now support HTTPS through a
|
||
proxy
|
||
+ Asn1 application: Major cleanup of back ends and optimizations
|
||
of mainly decode for PER and UPER.
|
||
+ The experimental features parameterized modules and packages
|
||
are removed. An alternative compatible solution for
|
||
parameterized modules is provided here
|
||
https://github.com/erlang/pmod_transform.
|
||
+ All built in functions BIF's (even if they are implemented in
|
||
C as part of the VM) are now visible in the source code of the
|
||
module they belong to, including their type specs.
|
||
+ The Wx application now compiles and is usable with the
|
||
unstable development branch of wxWidgets-2.9.
|
||
This means that wx can now be built on 64 bit MacOsX as well.
|
||
- update otp-R15B02-rpath.patch to otp-R16B-rpath.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 7 18:07:06 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Add macros.erlang with some RPM macros for erlang packaging
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Feb 4 10:54:07 UTC 2013 - kruber@zib.de
|
||
|
||
- update to R15B03-1 release:
|
||
+ integrated fix for a bug in ssl that affected accept calls
|
||
with timeouts
|
||
+ ERL_CRASH_DUMP_SECONDS only needs to be set when using heart,
|
||
all other invocations of the Erlang VM will crashdump on fatal
|
||
errors as they did in R15B02
|
||
+ systems using heart still have to define a maximum time for
|
||
crashdumps using the ERL_CRASH_DUMP_SECONDS environment
|
||
variable
|
||
- dropped otp-R15B03-fix_ssl_accept_timeout.patch
|
||
(fixed in release)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jan 7 12:40:48 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- Add fix-armv7hl.patch - temporary fix build at armv7hl
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jan 5 19:39:43 UTC 2013 - matwey.kornilov@gmail.com
|
||
|
||
- add make clean before build. it clears .beam files bundled with
|
||
sources. our aim is to build everything from sources.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 3 23:31:33 UTC 2012 - mrueckert@suse.de
|
||
|
||
- fixed typo in epmd init script:
|
||
echo -e needed to get the "\n" printed properly.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 3 18:07:40 UTC 2012 - kruber@zib.de
|
||
|
||
- update to R15B03 release:
|
||
+ mainly bug fixes
|
||
+ ERL_CRASH_DUMP_SECONDS must be set in order to get any Erlang
|
||
crash dump (potential incompatibility introduced to fix the
|
||
use of "-heart" in combination with the Erlang crash dump
|
||
+ details: http://www.erlang.org/download/otp_src_R15B03.readme
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Nov 19 18:41:15 UTC 2012 - dimstar@opensuse.org
|
||
|
||
- Fix useradd invocation: -o is useless without -u and newer
|
||
versions of pwdutils/shadowutils fail on this now.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Nov 17 13:36:31 UTC 2012 - matwey.kornilov@gmail.com
|
||
|
||
- fixed 'executable-docs' lint error
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Nov 16 22:51:00 MSK 2012 - matwey.kornilov@gmail.com
|
||
|
||
- directory /usr/share/man/man1 is handled by filesystem package,
|
||
we don't have to package it twice
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Nov 9 11:54:55 UTC 2012 - saschpe@suse.de
|
||
|
||
- Symlink man-pages for binaries (1) into %_mandir (bnc#788027)
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Nov 6 14:00:09 UTC 2012 - saschpe@suse.de
|
||
|
||
- Use SPDX-style license (ErlPL-1.1)
|
||
- Merge changes from devel:languages:misc/erlang, which is still the
|
||
devel project for Factory.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Oct 31 14:55:39 UTC 2012 - saschpe@suse.de
|
||
|
||
- Set same permissions for the following files (bnc#784670):
|
||
/usr/lib64/erlang/bin/start_erl
|
||
/usr/lib64/erlang/erts-5.8.5/bin/start_erl.src
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 8 09:40:46 UTC 2012 - saschpe@suse.de
|
||
|
||
- Avoid shipping libraries with licensing issues (see bnc#728667)
|
||
+ Neither ship 'diameter' source or binary and remove the corresponding
|
||
but useless man pages
|
||
+ The xmerl binary (library) is safe to ship, but not it's sources
|
||
(fixes bnc#776060)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 27 01:16:22 UTC 2012 - mrueckert@suse.de
|
||
|
||
- epmd should not run under the service that needs it first:
|
||
- add init script to launch epmd under the newly added epmd
|
||
user/group.
|
||
- added /etc/sysconfig/erlang to configure the port and the
|
||
listening IP
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Sep 10 09:26:31 UTC 2012 - kruber@zib.de
|
||
|
||
- require generic java-devel package for all distros (>= 1.5.0)
|
||
- fixed javac define for openjdk7
|
||
- enabled parallel build again
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 6 09:00:14 UTC 2012 - kruber@zib.de
|
||
|
||
- update to R15B02 release:
|
||
+ Highlights:
|
||
* Dialyzer: The type analysis tool Dialyzer is optimized to be
|
||
generally faster. - It can now also run in parallel (default)
|
||
on SMP systems and by this perform the analysis significantly
|
||
faster (Thanks to Stavros Aronis and Kostis Sagonas)
|
||
* The SSL application now has experimental support for the
|
||
TLS 1.1 and 1.2 standards as well (Thanks to Andreas Schultz).
|
||
* CommonTest: It is now possible to sort the generated html
|
||
tables. A Netconf client (ct_netconf) which support basic
|
||
netconf over ssh is added
|
||
* Diameter: Statistics counters related to Diameter messages can
|
||
now be retrieved by calling the diameter:service_info/2 function.
|
||
* Various smaller optimizations in the Erlang VM
|
||
* This release also contains 66 contributions from users outside
|
||
the Ericsson team
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jul 25 14:05:47 UTC 2012 - dvaleev@suse.com
|
||
|
||
- Add erlang-ppc.patch: Fix PPC architecture detection
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 26 13:46:36 UTC 2012 - mvyskocil@suse.cz
|
||
|
||
- Simply use java-devel >= 1.6.0 as it expands to correct jdk on every
|
||
distribution
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Apr 16 16:15:13 UTC 2012 - kruber@zib.de
|
||
|
||
- updated to R15B01 release:
|
||
+ Highlights from R15B01:
|
||
* Added erlang:statistics(scheduler_wall_time) to ensure correct
|
||
determination of scheduler utilization. Measuring scheduler
|
||
utilization is strongly preferred over CPU utilization, since
|
||
CPU utilization gives very poor indications of actual
|
||
scheduler/vm usage.
|
||
* Changed ssh implementation to use the public_key application
|
||
for all public key handling. This is also a first step for
|
||
enabling a callback API for supplying public keys and handling
|
||
keys protected with password phrases. Additionally the test
|
||
suites where improved so that they do not copy the users keys
|
||
to test server directories as this is a security liability.
|
||
Also ipv6 and file access issues found in the process has been
|
||
fixed.
|
||
* When an escript ends now all printout to standard output and
|
||
standard error gets out on the terminal. This bug has been
|
||
corrected by changing the behaviour of erlang:halt/0,1, which
|
||
should fix the same problem for other escript-like applications,
|
||
i.e. that data stored in the output port driver buffers got
|
||
lost when printing on a TTY and exiting through erlang:halt/0,1.
|
||
The BIF:s erlang:halt/0,1 has gotten improved semantics and
|
||
there is a new BIF erlang:halt/2 to accomplish something like
|
||
the old semantics. See the documentation.
|
||
* The DTrace source patch from Scott Lystig Fritchie is
|
||
integrated in the source tree. Using an emulator with dtrace
|
||
probe is still not supported for production use, but may be a
|
||
valuable debugging tool. Configure with
|
||
--with-dynamic-trace=dtrace (or --with-dynamic-trace=systemtap)
|
||
to create a build with dtrace probes enabled. See runtime_tools
|
||
for documentation and examples
|
||
* Added Torbjörn Törnkvists LDAP client as a new application
|
||
called eldap.
|
||
* Added options for the ssh client to support user keys files
|
||
that are password protected.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 14 22:07:03 UTC 2011 - alex@simonov.me
|
||
|
||
- updated to R15B release
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 10 12:28:20 UTC 2011 - saschpe@suse.de
|
||
|
||
- Drop files with propriatery license (diameter and xmerl) (bnc#728667)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 10 20:20:58 UTC 2011 - kruber@zib.de
|
||
|
||
- updated to R14B04 release
|
||
+ mainly a stabilization of the R14B03 release
|
||
(but as usual there is some new functionality as well)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 29 23:47:56 UTC 2011 - saschpe@suse.de
|
||
|
||
- BuildRequire java-1_6_0-openjdk-devel on 12.1 or newer,
|
||
java-1_6_0-sun was dropped
|
||
- Added a spec file license header (needed for Factory)
|
||
- No need to require %{version}-%{release}, %{version} is enough
|
||
- Remove outdated sections (%clean), use %make_install macro
|
||
- Don't package INSTALL file
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 25 23:45:33 UTC 2011 - kruber@zib.de
|
||
|
||
- updated to R14B03 release
|
||
+ Highlights from R14B03:
|
||
* Diameter is a brand new application in this release.
|
||
The application support the diameter protocol specified in
|
||
RFC 3588 and is intended to provide an Authentication,
|
||
Authorization and Accounting (AAA) framework for applications.
|
||
* The documentation for stdlib and kernel now uses type
|
||
specifications from the source modules which should guarantee
|
||
that the documentation and code are consistent with regard to
|
||
the type information.
|
||
+ Higlights from R14B02:
|
||
* OTP-8525 It is now possible to use Erlang specifications and
|
||
types in EDoc documentation.
|
||
* OTP-8768 All tests in Erlang/OTP have been converted to be run
|
||
with Common Test as the backend instead of Test Server
|
||
* OTP-8941 The previously experimental halfword emulator is now
|
||
official (it is not supported by HiPE though).
|
||
* OTP-9065 Dependency generation for Makefiles has been added
|
||
to the erts compiler and erlc
|
||
+ Higlights from R14B01:
|
||
* OTP-8922 new ETS option compressed
|
||
* OTP-8926 new function inet:getifaddrs/0 modeled after C library
|
||
function getifaddrs() on BSD and Linux
|
||
(replaces inet:getiflist/0 and inet:ifget/2)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Feb 14 10:52:49 UTC 2011 - mrueckert@suse.de
|
||
|
||
- fix operator in some recommends
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Sep 27 12:26:56 UTC 2010 - kruber@zib.de
|
||
|
||
- updated to R14B release
|
||
+ Higlights:
|
||
* OTP-8544: re-writted large parts of the ethread library
|
||
* OTP-8763: auto-imported the following BIFs:
|
||
monitor/2, monitor/3, demonitor/2, demonitor/3, error/1,
|
||
error/2, integer_to_list/2, list_to_integer/2
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 4 10:10:52 UTC 2010 - kruber@zib.de
|
||
|
||
- fixed parsing of the TOOLS_VERSION (fixes wrong erlang.el file
|
||
for emacs)
|
||
- also made sure that this could not happen with the other version
|
||
extractions
|
||
|
||
-------------------------------------------------------------------
|
||
Mon May 3 12:35:11 UTC 2010 - kruber@zib.de
|
||
|
||
- instead of removing all sources, create a sub-package with them
|
||
- include java_src and c_src as well
|
||
- fixed tv being packaged twice
|
||
|
||
-------------------------------------------------------------------
|
||
Mon May 3 08:06:35 UTC 2010 - kruber@zib.de
|
||
|
||
- added a fix from Arch Linux for their bug 17001 (wx not working)
|
||
- install common_test helper script per default
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 23 08:30:46 UTC 2010 - aj@suse.de
|
||
|
||
- Split up packages so that tcl/tk and wxGTK requirements are in sub
|
||
packages.
|
||
- Do not package erlang sources.
|
||
- Link against shared zlib.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Mar 1 2010 kruber@zib.de
|
||
|
||
- fixed emacs support
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 25 2010 kruber@zib.de
|
||
|
||
- update to R13B04, highlights:
|
||
* documentation can now be built from the source
|
||
* enhanced Native Implemented Functions (NIFs) (but still beta)
|
||
* enhanced garbage collection of binaries
|
||
* support for user defined prompt in the shell
|
||
* enhanced cross compilation support
|
||
- clean repo from old versions
|
||
- added emacs erlang support
|
||
- reduced package size (hardlink duplicates)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 26 2009 kruber@zib.de
|
||
|
||
- update to R13B03, highlights:
|
||
* Native Implemented Functions (NIFs) still experimental but very useful.
|
||
* The documentation is built in a new way using xsltproc and Apache FOP.
|
||
The layout is changed both in HTML and PDF versions. This is the first step,
|
||
more changes and improvements will come in the following releases.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 12 2009 nico.laus.2001@gmx.de
|
||
|
||
- update to R13B02, highlights:
|
||
* Dialyzer can now refer to types defined in another module, using the syntax
|
||
Module:Type().
|
||
* There is a new function file:read_line/1 to facilitate reading entire lines
|
||
in raw mode.
|
||
* There is new section in the Efficiency Guide about drivers.
|
||
-------------------------------------------------------------------
|
||
* Thu Aug 20 2009 nico.laus.2001@gmx.de
|
||
|
||
- use RPM_OPT_FLAGS for distributions other than openSUSE 11.0 or Fedora 9
|
||
(adding this for those was not possible due to a bug in GCC)
|
||
|
||
-------------------------------------------------------------------
|
||
* Sat Aug 1 2009 alex@simonov.in.ua
|
||
|
||
- update to R13B01
|
||
- clean repo from old versions
|
||
- integrated compiler patch that fixes an "Internal consistency check failed" error
|
||
see http://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1335:200906:hbcibacodggnfnj
|
||
- version of java must be equal or great then 1.5.0
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 10 2009 alex@simonov.in.ua
|
||
|
||
- add OTP-7738 patch
|
||
A process being garbage collected via the garbage_collect/1
|
||
BIF or the check_process_code/2 BIF didn't handle message
|
||
receive and resume correctly during the garbage collect.
|
||
When this occurred, the process returned to the state it had
|
||
before the garbage collect instead of entering the new state.
|
||
|
||
-------------------------------------------------------------------
|
||
* Wed Dec 25 2008 <alex@simonov.in.ua>
|
||
|
||
- fix build on SLE-10
|
||
|
||
-------------------------------------------------------------------
|
||
* Wed Dec 24 2008 <alex@simonov.in.ua>
|
||
|
||
- fix build jinterface, set javac target to 1.5
|
||
- remove depend on gcc 4.3.3
|
||
- add smp support
|
||
- add hipe support
|
||
- add kernel poll support
|
||
- add rpmlint file
|
||
- split java interface into separate package
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Dec 2 2008 <alex@simonov.in.ua>
|
||
|
||
- update to R12B-5
|
||
- use GCC >= 4.3.3 for openSUSE 11
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Oct 30 2007 mrueckert@suse.de
|
||
- fix ssl build
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Sep 25 2007 mrueckert@suse.de
|
||
- update to R11B-5
|
||
|