- 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.
OBS-URL: https://build.opensuse.org/request/show/769520
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=99
- 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.
OBS-URL: https://build.opensuse.org/request/show/766759
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=98
- 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
OBS-URL: https://build.opensuse.org/request/show/765151
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=97
- 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.
OBS-URL: https://build.opensuse.org/request/show/756006
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=95
- 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.
OBS-URL: https://build.opensuse.org/request/show/747347
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=93
- 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.
OBS-URL: https://build.opensuse.org/request/show/738664
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=90
- 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.
- Rebased patches:
+ 0001-erts-Do-not-use-named-no_cpuid-label-in-asm.patch dropped (merged upstream)
OBS-URL: https://build.opensuse.org/request/show/732489
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=89
- 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.
OBS-URL: https://build.opensuse.org/request/show/719512
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=87
- 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.
OBS-URL: https://build.opensuse.org/request/show/710208
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=84
- 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.
OBS-URL: https://build.opensuse.org/request/show/703430
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=83
- 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.
OBS-URL: https://build.opensuse.org/request/show/695460
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=80
- 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.
OBS-URL: https://build.opensuse.org/request/show/694148
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=79
- 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.
OBS-URL: https://build.opensuse.org/request/show/688658
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=77
- 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.
OBS-URL: https://build.opensuse.org/request/show/686938
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=76
- Update to 21.3:
- Changes for 21.3:
* http://erlang.org/download/OTP-21.2.7.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.
OBS-URL: https://build.opensuse.org/request/show/685273
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=75