- 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.
- 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.
OBS-URL: https://build.opensuse.org/request/show/894854
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=111
- 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.
- 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
OBS-URL: https://build.opensuse.org/request/show/814090
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=105
- 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
- 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.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
OBS-URL: https://build.opensuse.org/request/show/662223
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=70
Update to 21.1.1
Add the dejavu-fonts dependecy because is needed by fop, else it raises an error for missing font.
Rebuild all the patch files
- 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
OBS-URL: https://build.opensuse.org/request/show/646128
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=64
- 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.
OBS-URL: https://build.opensuse.org/request/show/571641
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=60
- 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.
OBS-URL: https://build.opensuse.org/request/show/545828
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=59