diff options
75 files changed, 2092 insertions, 197 deletions
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml index c0be715678..f88d255296 100644 --- a/erts/doc/src/erl_nif.xml +++ b/erts/doc/src/erl_nif.xml @@ -1090,7 +1090,7 @@ typedef struct { </func> <func> - <name since="OTP @OTP-15011@"><ret>int</ret> + <name since="OTP 22.0"><ret>int</ret> <nametext>enif_compare_pids(const ErlNifPid *pid1, const ErlNifPid *pid2) </nametext></name> <fsummary>Compare two pids.</fsummary> @@ -1890,7 +1890,7 @@ enif_inspect_iovec(env, max_elements, term, &tail, &iovec); </func> <func> - <name since="OTP @OTP-15011@"><ret>int</ret> + <name since="OTP 22.0"><ret>int</ret> <nametext>enif_is_pid_undefined(const ErlNifPid* pid)</nametext></name> <fsummary>Determine if pid is undefined.</fsummary> <desc> @@ -2247,7 +2247,7 @@ enif_inspect_iovec(env, max_elements, term, &tail, &iovec); </func> <func> - <name since="OTP @OTP-15362@"><ret>ERL_NIF_TERM</ret> + <name since="OTP 22.0"><ret>ERL_NIF_TERM</ret> <nametext>enif_make_monitor_term(ErlNifEnv* env, const ErlNifMonitor* mon)</nametext></name> <fsummary>Make monitor term from the given monitor identifier.</fsummary> <desc> @@ -3306,7 +3306,7 @@ if (retval & ERL_NIF_SELECT_STOP_CALLED) { </func> <func> - <name since="OTP @OTP-15011@"><ret>void</ret> + <name since="OTP 22.0"><ret>void</ret> <nametext>enif_set_pid_undefined(ErlNifPid* pid)</nametext></name> <fsummary>Set pid as undefined.</fsummary> <desc> @@ -3369,7 +3369,7 @@ if (retval & ERL_NIF_SELECT_STOP_CALLED) { </func> <func> - <name since="OTP @OTP-15640@"><ret>ErlNifTermType</ret> + <name since="OTP 22.0"><ret>ErlNifTermType</ret> <nametext>enif_term_type(ErlNifEnv *env, ERL_NIF_TERM term)</nametext> </name> <fsummary>Determine the type of a term.</fsummary> diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 2b444ccf01..a879cce840 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -1297,7 +1297,7 @@ end</code> </func> <func> - <name name="dist_ctrl_get_opt" arity="2" clause_i="1" since="OTP @OTP-15617@"/> + <name name="dist_ctrl_get_opt" arity="2" clause_i="1" since="OTP 22.0"/> <fsummary>Get value of the get_size option on a distribution channel</fsummary> <desc> <p>Returns the value of the <c>get_size</c> option on the distribution channel @@ -1428,7 +1428,7 @@ end</code> </func> <func> - <name name="dist_ctrl_set_opt" arity="3" clause_i="1" since="OTP @OTP-15617@"/> + <name name="dist_ctrl_set_opt" arity="3" clause_i="1" since="OTP 22.0"/> <fsummary>Set value of the get_size option on a distribution channel</fsummary> <desc> <p>Sets the value of the <c>get_size</c> option on the distribution channel diff --git a/erts/doc/src/net.xml b/erts/doc/src/net.xml index b9e2cffce9..6fbc37076c 100644 --- a/erts/doc/src/net.xml +++ b/erts/doc/src/net.xml @@ -29,7 +29,7 @@ <rev></rev> <file>net.xml</file> </header> - <module since="OTP @OTP-14831@">net</module> + <module since="OTP 22.0">net</module> <modulesummary>Network interface.</modulesummary> <description> <p>This module provides an API for the network interface.</p> @@ -72,8 +72,8 @@ </func> <func> - <name name="getnameinfo" arity="1" since="OTP @OTP-14831@"/> - <name name="getnameinfo" arity="2" since="OTP @OTP-14831@"/> + <name name="getnameinfo" arity="1" since="OTP 22.0"/> + <name name="getnameinfo" arity="2" since="OTP 22.0"/> <fsummary>Address-to-name transaltion.</fsummary> <desc> <p>Address-to-name translation in a protocol-independant manner.</p> @@ -84,10 +84,10 @@ </func> <func> - <name name="getaddrinfo" arity="1" since="OTP @OTP-14831@"/> - <name name="getaddrinfo" arity="2" clause_i="1" since="OTP @OTP-14831@"/> - <name name="getaddrinfo" arity="2" clause_i="2" since="OTP @OTP-14831@"/> - <name name="getaddrinfo" arity="2" clause_i="3" since="OTP @OTP-14831@"/> + <name name="getaddrinfo" arity="1" since="OTP 22.0"/> + <name name="getaddrinfo" arity="2" clause_i="1" since="OTP 22.0"/> + <name name="getaddrinfo" arity="2" clause_i="2" since="OTP 22.0"/> + <name name="getaddrinfo" arity="2" clause_i="3" since="OTP 22.0"/> <fsummary>Network address and service transation.</fsummary> <desc> <p>Network address and service translation.</p> @@ -100,7 +100,7 @@ </func> <func> - <name name="if_name2index" arity="1" since="OTP @OTP-14831@"/> + <name name="if_name2index" arity="1" since="OTP 22.0"/> <fsummary>Mappings between network interface names and indexes.</fsummary> <desc> <p>Mappings between network interface names and indexes.</p> @@ -108,7 +108,7 @@ </func> <func> - <name name="if_index2name" arity="1" since="OTP @OTP-14831@"/> + <name name="if_index2name" arity="1" since="OTP 22.0"/> <fsummary>Mappings between network interface index and names.</fsummary> <desc> <p>Mappings between network interface index and names.</p> @@ -116,7 +116,7 @@ </func> <func> - <name name="if_names" arity="0" since="OTP @OTP-14831@"/> + <name name="if_names" arity="0" since="OTP 22.0"/> <fsummary>Get network interface names and indexes.</fsummary> <desc> <p>Get network interface names and indexes.</p> diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index da470b51ec..5736d366eb 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,460 @@ </header> <p>This document describes the changes made to the ERTS application.</p> +<section><title>Erts 10.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Do not allocate new bitstring/binary when an empty binary + is appended.</p> + <p> + Own Id: OTP-15535 Aux Id: PR-2055 </p> + </item> + <item> + <p> + Document that <c>process_info(_, current_function)</c> + can return <c>{current_function, undefined}</c> in case + of execution of native code.</p> + <p> + Own Id: OTP-15543 Aux Id: PR-2089 </p> + </item> + <item> + <p> + Fixed bug in <c>ets:select</c>, <c>ets:match</c> and + friends which could cause the table to remain fixated (as + if <c>ets:safe_fixtable</c> had been called) after the + call returned. This could happen for <c>protected</c> + tables if another concurrent running process transfered + table ownership to the process during its + ets:select/match call. Ownership can be transfered using + either <c>ets:give_away</c> or the <c>heir</c> table + option.</p> + <p> + Own Id: OTP-15672</p> + </item> + <item> + <p>Fixed a Windows-specific bug in <c>file:list_dir/1</c> + that caused it to misbehave on network shares.</p> + <p> + Own Id: OTP-15693</p> + </item> + <item> + <p> + Fixed bug when calling <c>enif_whereis_*</c> from NIF + resource destructor. Symtoms could be emulator crash or + hanging scheduler threads.</p> + <p> + Own Id: OTP-15694 Aux Id: ERL-863 </p> + </item> + <item> + <p>Fixed a bug in the error case of <c>apply/3</c>, where + the exception would erroneously have an empty argument + list in some cases.</p> + <p> + Own Id: OTP-15698</p> + </item> + <item> + <p>A bug has been fixed in the <c>maps</c> implementation + that could cause a crash or memory usage to grow until + the machine ran out of memory. This could happen when + inserting a new key-value pair with a key <c>K1</c> + containing a binary <c>B1</c> into a map <c>M</c> having + a key <c>K2</c> with a binary <c>B2</c> if the following + conditions were met:</p> <list> <item><c>B1 =/= + B2</c></item> <item><c>size(B1) >= 4294967296</c></item> + <item><c>size(B2) >= 4294967296</c></item> + <item><c>size(M) >= 32</c></item> <item><c>(size(B1) rem + 4294967296) == (size(B2) rem 4294967296)</c></item> + <item>the first <c>(size(B1) rem 4294967296)</c> bytes + are the same both in <c>B1</c> and <c>B2</c></item> + <item>substituting <c>B1</c> in <c>K1</c> with <c>B2</c> + would create a term with the same value as + <c>K2</c></item> </list> <p>The root cause of the problem + is that the <c>maps</c> implementation only hashed the + first <c>(X rem 4294967296)</c> bytes of binaries so that + different binaries could get the same hash value + independently of the hash seed.</p> + <p> + Own Id: OTP-15707</p> + </item> + <item> + <p> + <c>term_to_binary()</c> and distributed sends will now + throw a <c>system_limit</c> exception instead of + producing erroneous results when trying to encode a + binary larger than 4 GB.</p> + <p> + Own Id: OTP-15708</p> + </item> + <item> + <p> + The vxworks configure has been updated to respect the + environment CFLAGS.</p> + <p> + Own Id: OTP-15773</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Add support for Erlang Distribution protocol to split the + payload of large signals into several fragments. This + allows other processes to communicate uninterrupted + during the transmission of these signals.</p> + <p> + Own Id: OTP-13397</p> + </item> + <item> + <p> + 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, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). It also + provides a basic API that facilitates the implementation + of other protocols, than TCP, UDP and SCTP. </p> + <p> + Known issues are; No support for the Windows OS + (currently).</p> + <p> + Own Id: OTP-14831</p> + </item> + <item> + <p>Added NIF functions <seealso + marker="erl_nif#enif_set_pid_undefined"><c>enif_set_pid_undefined</c></seealso>, + <seealso + marker="erl_nif#enif_is_pid_undefined"><c>enif_is_pid_undefined</c></seealso> + and <seealso + marker="erl_nif#enif_compare_pids"><c>enif_compare_pids</c></seealso>.</p> + <p> + Own Id: OTP-15011 Aux Id: PR-2147 </p> + </item> + <item> + <p>Underutilized memory segments (carriers) can now move + between all allocator instances, rather than just between + instances of the same type, which greatly reduces memory + usage in some scenarios. </p> + <p> + Own Id: OTP-15063</p> + </item> + <item> + <p>The emulator will now mark free blocks in pooled + carriers with <c>madvise(2) + MADV_FREE</c> (or similar), + letting the OS reclaim the associated physical memory if + necessary.</p> + <p> + Own Id: OTP-15075</p> + </item> + <item> + <p> + New <c>ERL_NIF_SELECT_CANCEL</c> feature added to + <c>enif_select</c> in order to cancel (or "deselect") a + read or write event on a previously selected file + descriptor.</p> + <p> + Own Id: OTP-15095</p> + </item> + <item> + <p> + ETS option <c>write_concurrency</c> now also affects and + improves the scalability of <c>ordered_set</c> tables. + The implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime.</p> + <p> + Own Id: OTP-15128</p> + </item> + <item> + <p> + Build configuration of the <c>crypto</c> application has + been moved from the <c>erts</c> application into the + <c>crypto</c> application.</p> + <p> + Own Id: OTP-15129</p> + </item> + <item> + <p>Anonymous functions that don't capture environment are + now created at load-time instead of in run-time.</p> + <p> + Own Id: OTP-15195 Aux Id: PR-1812 </p> + </item> + <item> + <p> + Optimize updates of maps with identical keys and values. + E.g. in the example below the original Map will be reused + as the return of the update.</p> + <p> + 1> Map = #{ a => b }. #{ a => b } 2> Map#{ a := b }.</p> + <p> + Own Id: OTP-15211 Aux Id: PR-1889 </p> + </item> + <item> + <p> + Optimize <c>binary:match/2</c> and + <c>binary:matches/2</c> to use memchr internally.</p> + <p> + Own Id: OTP-15238 Aux Id: PR-1803 </p> + </item> + <item> + <p> + The runtime system used to terminate when a message + larger than 2 Gb was passed over the distribution. The + send operation will now instead throw a + <c>system_limit</c> exeption.</p> + <p> + Own Id: OTP-15261</p> + </item> + <item> + <p> + Change the first module called by erts to be names + erl_init instead of otp_ring0. systools in sasl have been + updated to reflect this change.</p> + <p> + Own Id: OTP-15336 Aux Id: PR-1825 </p> + </item> + <item> + <p> + Minor adjustments made to build system for parallel + configure.</p> + <p> + Own Id: OTP-15340 Aux Id: OTP-14625 </p> + </item> + <item> + <p> + Two new NIF interface functions <c>enif_select_read</c> + and <c>enif_select_write</c>. They are similar to + existing <c>enif_select</c> but allow a custom event + message as argument.</p> + <p> + Own Id: OTP-15349 Aux Id: PR-2084 </p> + </item> + <item> + <p>The embedded copy of <c>zlib</c> has been updated from + <c>1.2.8</c> to <c>1.2.11</c>.</p> + <p>Note that this copy is only used as a fallback when + the target platform doesn't provide any <c>zlib</c> + development libraries. If your system provides + <c>zlib</c> then it will be used even if it is older than + <c>1.2.11</c>.</p> + <p> + Own Id: OTP-15351 Aux Id: ERL-749 </p> + </item> + <item> + <p> + New NIF function <c>enif_make_monitor_term</c>.</p> + <p> + Own Id: OTP-15362 Aux Id: PR-2127 </p> + </item> + <item> + <p>Appending lists (The ++ operator) will now yield + properly on large inputs.</p> + <p> + Own Id: OTP-15427</p> + </item> + <item> + <p>The <c>length/1</c> BIF used to calculate the length + of the list in one go without yielding, even if the list + was very long. In OTP 22, <c>length/1</c> will yield when + called with a long lists.</p> + <p> + Own Id: OTP-15439</p> + </item> + <item> + <p> + Processes sending messages are now punished with a + reduction cost based on message size. That is, a process + sending a large message will yield earlier than before.</p> + <p> + Own Id: OTP-15513 Aux Id: ERL-773 </p> + </item> + <item> + <p>The transitory emulator option <c>+ztma true</c> + (introduced in OTP 21.3) has been removed.</p> + <p> + Own Id: OTP-15581 Aux Id: OTP-15580 </p> + </item> + <item> + <p>In OTP 22, HiPE (the native code compiler) is not + fully functional. The reasons for this are:</p> + <p>There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support.</p> + <p>The new optimizations in the Erlang compiler create + new combination of instructions that HiPE currently does + not handle correctly.</p> + <p>If erlc is invoked with the <c>+native</c> 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.</p> + <p> + Own Id: OTP-15596</p> + </item> + <item> + <p> + The termination behaviour of processes has changed to + allow processes to yield while sending link exit/monitor + down signals.</p> + <p> + The erl crash dump as been expanded to now also include + processes that are termenating but have not yet + terminated.</p> + <p> + Own Id: OTP-15610</p> + </item> + <item> + <p> + The dist messages EXIT, EXIT2 and MONITOR_DOWN have been + updated with new versions that send the reason term as + part of the payload of the message instead of as part of + the control message.</p> + <p> + The old versions are still present and can be used when + communicating with nodes that don't support the new + versions.</p> + <p> + Own Id: OTP-15611</p> + </item> + <item> + <p> + When sending messages, exit, exit2 and monitor down + distributed signals, the process sending will now yield + appropriately.</p> + <p> + This means that a terminating process will yield and + possibly be suspended on busy distribution entries while + they are terminating. This means that any memory held by + such processes will not be released until after all + exit/monitor down signals have been sent.</p> + <p> + Own Id: OTP-15612</p> + </item> + <item> + <p> + All external pids/ports/refs created by + erlang:list_to_pid/port/ref debug functions now compare + equal to any other pid/port/ref with the same number from + that node.</p> + <p> + Before this change they compared differently because the + node creation of the pid/port/ref did not compare equal + to any real pid/port/ref creation.</p> + <p> + This will mostly effect pids/ports/refs typed in the + shell.</p> + <p> + Own Id: OTP-15613</p> + </item> + <item> + <p> + The <c>persistent_term</c> functions <c>put/2</c> and + <c>erase/1</c> are now yeliding.</p> + <p> + Own Id: OTP-15615</p> + </item> + <item> + <p> + A new <seealso + marker="erlang#dist_ctrl_set_opt/3"><c>erlang:dist_ctrl_set_opt(DHandle, + get_size, Value)</c></seealso> option has been added. + This option makes it possible to configure the + distribution channel identified by <c>DHandle</c> so that + <seealso + marker="erlang#dist_ctrl_get_data/1"><c>erlang:dist_ctrl_get_data(DHandle)</c></seealso> + also returns the size of the data to pass over the + channel.</p> + <p> + Own Id: OTP-15617</p> + </item> + <item> + <p>Previously, all ETS tables used centralized counter + variables to keep track of the number of items stored and + the amount of memory consumed. These counters can cause + scalability problems (especially on big NUMA systems). + This change adds an implementation of a decentralized + counter and modifies the implementation of ETS so that + ETS tables of type <c>ordered_set</c> with + <c>write_concurrency</c> enabled use the decentralized + counter. Experiments indicate that this change + substantially improves the scalability of ETS + <c>ordered_set</c> tables with <c>write_concurrency</c> + enabled in scenarios with frequent <c>ets:insert/2</c> + and <c>ets:delete/2</c> calls.</p> + <p> + Own Id: OTP-15623 Aux Id: PR-2190 </p> + </item> + <item> + <p>The <c>iolist_size/1</c> function is now yielding + which means that an Erlang/OTP system will be responsive + even if the applications running on the system frequently + call <c>iolist_size/1</c> with large iolists.</p> + <p> + Own Id: OTP-15631</p> + </item> + <item> + <p> + A simple test suite for the net module has been added.</p> + <p> + Own Id: OTP-15635</p> + </item> + <item> + <p>Added the NIF function <c>enif_term_type</c>, which + helps avoid long sequences of <c>enif_is_xyz</c> 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.</p> + <p> + Own Id: OTP-15640</p> + </item> + <item> + <p>The last call optimization is now applied to BIFs. + When calling a BIF in the tail position of a function, + the return address and stack frame will now be discarded + before calling the BIF. As consequence of this change, + the immediate caller of a tail-called BIF will no longer + be available in stack backtraces.</p> + <p> + Own Id: OTP-15674 Aux Id: PR-2177 </p> + </item> + <item> + <p> + Fix GC bug where distributed messages in a processes + mailbox would cause extra GCs. This can be very expensive + if there many messages in the mailbox.</p> + <p> + Own Id: OTP-15703</p> + </item> + <item> + <p>Internal documentation has now been added to the + <em>Erts</em> and <em>Compiler</em> applications.</p> + <p>The internal documents for <em>Erts</em> describe + miscellaneous interesting implementation details. Those + details can change at any time.</p> + <p>The internal documentation for <em>Compiler</em> + documents the API for the Core Erlang modules. While we + will not change those APIs without good reason, we don't + give the same guarantees about backward compatibility as + for the rest of the APIs in OTP.</p> + <p> + Own Id: OTP-15715</p> + </item> + <item> + <p>The performance of non-bignum integer arithmetic has + been improved.</p> + <p> + Own Id: OTP-15740</p> + </item> + </list> + </section> + +</section> + <section><title>Erts 10.3.4</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/erts/doc/src/socket.xml b/erts/doc/src/socket.xml index f6195a65b2..343b61d4aa 100644 --- a/erts/doc/src/socket.xml +++ b/erts/doc/src/socket.xml @@ -29,7 +29,7 @@ <rev></rev> <file>socket.xml</file> </header> - <module since="OTP @OTP-14831@">socket</module> + <module since="OTP 22.0">socket</module> <modulesummary>Socket interface.</modulesummary> <description> <p>This module provides an API for the socket interface. @@ -256,8 +256,8 @@ <funcs> <func> - <name name="accept" arity="1" since="OTP @OTP-14831@"/> - <name name="accept" arity="2" since="OTP @OTP-14831@"/> + <name name="accept" arity="1" since="OTP 22.0"/> + <name name="accept" arity="2" since="OTP 22.0"/> <fsummary>Accept a connection on a socket.</fsummary> <desc> <p>Accept a connection on a socket.</p> @@ -269,7 +269,7 @@ </func> <func> - <name name="bind" arity="2" since="OTP @OTP-14831@"/> + <name name="bind" arity="2" since="OTP 22.0"/> <fsummary>Bind a name to a socket.</fsummary> <desc> <p>Bind a name to a socket.</p> @@ -282,7 +282,7 @@ </func> <func> - <name name="close" arity="1" since="OTP @OTP-14831@"/> + <name name="close" arity="1" since="OTP 22.0"/> <fsummary>Close a socket.</fsummary> <desc> <p>Closes the socket.</p> @@ -301,8 +301,8 @@ </func> <func> - <name name="connect" arity="2" since="OTP @OTP-14831@"/> - <name name="connect" arity="3" since="OTP @OTP-14831@"/> + <name name="connect" arity="2" since="OTP 22.0"/> + <name name="connect" arity="3" since="OTP 22.0"/> <fsummary>Initiate a connection on a socket.</fsummary> <desc> <p>This function connects the socket to the address @@ -311,13 +311,13 @@ </func> <func> - <name name="getopt" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="3" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="4" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="5" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="6" since="OTP @OTP-14831@"/> - <name name="getopt" arity="3" clause_i="7" since="OTP @OTP-14831@"/> + <name name="getopt" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="3" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="4" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="5" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="6" since="OTP 22.0"/> + <name name="getopt" arity="3" clause_i="7" since="OTP 22.0"/> <fsummary>Get an option on a socket.</fsummary> <desc> <p>Get an option on a socket.</p> @@ -337,7 +337,7 @@ </func> <func> - <name name="getopt" arity="3" clause_i="8" since="OTP @OTP-14831@"/> + <name name="getopt" arity="3" clause_i="8" since="OTP 22.0"/> <fsummary>Get an option on a socket.</fsummary> <desc> <p>Get an option on a socket.</p> @@ -359,8 +359,8 @@ </func> <func> - <name name="listen" arity="1" since="OTP @OTP-14831@"/> - <name name="listen" arity="2" since="OTP @OTP-14831@"/> + <name name="listen" arity="1" since="OTP 22.0"/> + <name name="listen" arity="2" since="OTP 22.0"/> <fsummary>Listen for connections on a socket.</fsummary> <desc> <p>Listen for connections on a socket.</p> @@ -368,9 +368,9 @@ </func> <func> - <name name="open" arity="2" since="OTP @OTP-14831@"/> - <name name="open" arity="3" since="OTP @OTP-14831@"/> - <name name="open" arity="4" since="OTP @OTP-14831@"/> + <name name="open" arity="2" since="OTP 22.0"/> + <name name="open" arity="3" since="OTP 22.0"/> + <name name="open" arity="4" since="OTP 22.0"/> <fsummary>Create an endpoint for communication.</fsummary> <desc> <p>Creates an endpoint (socket) for communication.</p> @@ -390,7 +390,7 @@ </func> <func> - <name name="peername" arity="1" since="OTP @OTP-14831@"/> + <name name="peername" arity="1" since="OTP 22.0"/> <fsummary>Get name of connected socket peer.</fsummary> <desc> <p>Returns the address of the peer connected to the socket.</p> @@ -398,11 +398,11 @@ </func> <func> - <name name="recv" arity="1" since="OTP @OTP-14831@"/> - <name name="recv" arity="2" since="OTP @OTP-14831@"/> - <name name="recv" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="recv" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="recv" arity="4" since="OTP @OTP-14831@"/> + <name name="recv" arity="1" since="OTP 22.0"/> + <name name="recv" arity="2" since="OTP 22.0"/> + <name name="recv" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="recv" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="recv" arity="4" since="OTP 22.0"/> <fsummary>Receive a message from a socket.</fsummary> <desc> <p>Receive a message from a socket.</p> @@ -413,12 +413,12 @@ </func> <func> - <name name="recvfrom" arity="1" since="OTP @OTP-14831@"/> - <name name="recvfrom" arity="2" since="OTP @OTP-14831@"/> - <name name="recvfrom" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="recvfrom" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="recvfrom" arity="3" clause_i="3" since="OTP @OTP-14831@"/> - <name name="recvfrom" arity="4" since="OTP @OTP-14831@"/> + <name name="recvfrom" arity="1" since="OTP 22.0"/> + <name name="recvfrom" arity="2" since="OTP 22.0"/> + <name name="recvfrom" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="recvfrom" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="recvfrom" arity="3" clause_i="3" since="OTP 22.0"/> + <name name="recvfrom" arity="4" since="OTP 22.0"/> <fsummary>Receive a message from a socket.</fsummary> <desc> <p>Receive a message from a socket.</p> @@ -437,12 +437,12 @@ </func> <func> - <name name="recvmsg" arity="1" since="OTP @OTP-14831@"/> - <name name="recvmsg" arity="2" clause_i="1" since="OTP @OTP-14831@"/> - <name name="recvmsg" arity="2" clause_i="2" since="OTP @OTP-14831@"/> - <name name="recvmsg" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="recvmsg" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="recvmsg" arity="5" since="OTP @OTP-14831@"/> + <name name="recvmsg" arity="1" since="OTP 22.0"/> + <name name="recvmsg" arity="2" clause_i="1" since="OTP 22.0"/> + <name name="recvmsg" arity="2" clause_i="2" since="OTP 22.0"/> + <name name="recvmsg" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="recvmsg" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="recvmsg" arity="5" since="OTP 22.0"/> <fsummary>Receive a message from a socket.</fsummary> <desc> <p>Receive a message from a socket.</p> @@ -473,10 +473,10 @@ </func> <func> - <name name="send" arity="2" since="OTP @OTP-14831@"/> - <name name="send" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="send" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="send" arity="4" since="OTP @OTP-14831@"/> + <name name="send" arity="2" since="OTP 22.0"/> + <name name="send" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="send" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="send" arity="4" since="OTP 22.0"/> <fsummary>Send a message on a socket.</fsummary> <desc> <p>Send a message on a connected socket.</p> @@ -484,10 +484,10 @@ </func> <func> - <name name="sendmsg" arity="2" since="OTP @OTP-14831@"/> - <name name="sendmsg" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="sendmsg" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="sendmsg" arity="4" since="OTP @OTP-14831@"/> + <name name="sendmsg" arity="2" since="OTP 22.0"/> + <name name="sendmsg" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="sendmsg" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="sendmsg" arity="4" since="OTP 22.0"/> <fsummary>Send a message on a socket.</fsummary> <desc> <p>Send a message on a socket. The destination, if needed @@ -508,10 +508,10 @@ </func> <func> - <name name="sendto" arity="3" since="OTP @OTP-14831@"/> - <name name="sendto" arity="4" clause_i="1" since="OTP @OTP-14831@"/> - <name name="sendto" arity="4" clause_i="2" since="OTP @OTP-14831@"/> - <name name="sendto" arity="5" since="OTP @OTP-14831@"/> + <name name="sendto" arity="3" since="OTP 22.0"/> + <name name="sendto" arity="4" clause_i="1" since="OTP 22.0"/> + <name name="sendto" arity="4" clause_i="2" since="OTP 22.0"/> + <name name="sendto" arity="5" since="OTP 22.0"/> <fsummary>Send a message on a socket.</fsummary> <desc> <p>Send a message on a socket, to the specified destination.</p> @@ -519,13 +519,13 @@ </func> <func> - <name name="setopt" arity="4" clause_i="1" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="2" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="3" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="4" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="5" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="6" since="OTP @OTP-14831@"/> - <name name="setopt" arity="4" clause_i="7" since="OTP @OTP-14831@"/> + <name name="setopt" arity="4" clause_i="1" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="2" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="3" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="4" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="5" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="6" since="OTP 22.0"/> + <name name="setopt" arity="4" clause_i="7" since="OTP 22.0"/> <fsummary>Set options on a socket.</fsummary> <desc> <p>Set options on a socket.</p> @@ -548,7 +548,7 @@ </func> <func> - <name name="setopt" arity="4" clause_i="8" since="OTP @OTP-14831@"/> + <name name="setopt" arity="4" clause_i="8" since="OTP 22.0"/> <fsummary>Set options on a socket.</fsummary> <desc> <p>Set options on a socket.</p> @@ -571,7 +571,7 @@ </func> <func> - <name name="shutdown" arity="2" since="OTP @OTP-14831@"/> + <name name="shutdown" arity="2" since="OTP 22.0"/> <fsummary>Shut down part of a full-duplex connection.</fsummary> <desc> <p>Shut down all or part of a full-duplex connection.</p> @@ -579,7 +579,7 @@ </func> <func> - <name name="sockname" arity="1" since="OTP @OTP-14831@"/> + <name name="sockname" arity="1" since="OTP 22.0"/> <fsummary>Get socket name.</fsummary> <desc> <p>Returns the current address to which the socket is bound.</p> @@ -587,25 +587,25 @@ </func> <func> - <name name="supports" arity="0" since="OTP @OTP-14831@"/> - <name name="supports" arity="1" clause_i="1" since="OTP @OTP-14831@"/> - <name name="supports" arity="1" clause_i="2" since="OTP @OTP-14831@"/> - <name name="supports" arity="1" clause_i="3" since="OTP @OTP-14831@"/> - <name name="supports" arity="1" clause_i="4" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="1" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="2" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="3" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="4" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="5" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="6" since="OTP @OTP-14831@"/> - <name name="supports" arity="2" clause_i="7" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="1" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="2" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="3" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="4" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="5" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="6" since="OTP @OTP-14831@"/> - <name name="supports" arity="3" clause_i="7" since="OTP @OTP-14831@"/> + <name name="supports" arity="0" since="OTP 22.0"/> + <name name="supports" arity="1" clause_i="1" since="OTP 22.0"/> + <name name="supports" arity="1" clause_i="2" since="OTP 22.0"/> + <name name="supports" arity="1" clause_i="3" since="OTP 22.0"/> + <name name="supports" arity="1" clause_i="4" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="1" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="2" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="3" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="4" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="5" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="6" since="OTP 22.0"/> + <name name="supports" arity="2" clause_i="7" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="1" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="2" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="3" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="4" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="5" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="6" since="OTP 22.0"/> + <name name="supports" arity="3" clause_i="7" since="OTP 22.0"/> <fsummary>Report info about what the platform supports.</fsummary> <desc> <p>This function intends to retreive information about what the diff --git a/erts/emulator/beam/erl_nif.h b/erts/emulator/beam/erl_nif.h index cc389a093f..c250e8f683 100644 --- a/erts/emulator/beam/erl_nif.h +++ b/erts/emulator/beam/erl_nif.h @@ -69,7 +69,7 @@ * If you're not on the OTP team, you should use a placeholder like * erts-@MyName@ instead. */ -#define ERL_NIF_MIN_ERTS_VERSION "erts-@OTP-15095:OTP-15640@" +#define ERL_NIF_MIN_ERTS_VERSION "erts-10.4" /* * The emulator will refuse to load a nif-lib with a major version diff --git a/erts/vsn.mk b/erts/vsn.mk index fafcdf3b28..224570fb09 100644 --- a/erts/vsn.mk +++ b/erts/vsn.mk @@ -18,7 +18,7 @@ # %CopyrightEnd% # -VSN = 10.3.4 +VSN = 10.4 # Port number 4365 in 4.2 # Port number 4366 in 4.3 diff --git a/lib/asn1/doc/src/notes.xml b/lib/asn1/doc/src/notes.xml index 22ca7840de..284a2b4ce5 100644 --- a/lib/asn1/doc/src/notes.xml +++ b/lib/asn1/doc/src/notes.xml @@ -32,6 +32,32 @@ <p>This document describes the changes made to the asn1 application.</p> +<section><title>Asn1 5.0.9</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + <item> + <p>Corrected problems with the following value + definitions:</p> <list> <item>value of SEQUENCE OF CHOICE + with extensions</item> <item>value of CHOICE with + extensions</item> <item>DEFAULT used with OCTET + STRING</item> </list> + <p> + Own Id: OTP-15697 Aux Id: PR-2159 </p> + </item> + </list> + </section> + +</section> + <section><title>Asn1 5.0.8</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/asn1/vsn.mk b/lib/asn1/vsn.mk index 69f1af28e8..018beda307 100644 --- a/lib/asn1/vsn.mk +++ b/lib/asn1/vsn.mk @@ -1 +1 @@ -ASN1_VSN = 5.0.8 +ASN1_VSN = 5.0.9 diff --git a/lib/common_test/doc/src/ct_hooks.xml b/lib/common_test/doc/src/ct_hooks.xml index ff9969ebc3..7f0dda1298 100644 --- a/lib/common_test/doc/src/ct_hooks.xml +++ b/lib/common_test/doc/src/ct_hooks.xml @@ -109,7 +109,7 @@ </func> <func> - <name since="OTP @OTP-14746@">Module:post_groups(SuiteName, GroupDefs) -> NewGroupDefs</name> + <name since="OTP 22.0">Module:post_groups(SuiteName, GroupDefs) -> NewGroupDefs</name> <fsummary>Called after groups/0.</fsummary> <type> <v>SuiteName = atom()</v> @@ -165,7 +165,7 @@ </func> <func> - <name since="OTP @OTP-14746@">Module:post_all(SuiteName, Return, GroupDefs) -> NewReturn</name> + <name since="OTP 22.0">Module:post_all(SuiteName, Return, GroupDefs) -> NewReturn</name> <fsummary>Called after all/0.</fsummary> <type> <v>SuiteName = atom()</v> diff --git a/lib/common_test/doc/src/notes.xml b/lib/common_test/doc/src/notes.xml index a68cc3cca7..bbb46fced3 100644 --- a/lib/common_test/doc/src/notes.xml +++ b/lib/common_test/doc/src/notes.xml @@ -33,6 +33,80 @@ <file>notes.xml</file> </header> +<section><title>Common_Test 1.18</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + <item> + <p> + 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 <c>post_init_per_testcase</c> + fails the result is that the test case is skipped, as is + the case when <c>init_per_testcase</c> 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.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15717 Aux Id: ERIERL-334 </p> + </item> + <item> + <p> + 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.</p> + <p> + Own Id: OTP-15758 Aux Id: ERIERL-342 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Two new common_test hook functions are introduced:</p> + <p> + <c>post_groups/2</c>, which is called after + <c>Suite:groups/0</c><br/> <c>post_all/3</c>, which is + called after <c>Suite:all/0</c></p> + <p> + These functions allow modifying the return values from + the <c>groups/0</c> and <c>all/0</c> functions, + respectively.</p> + <p> + A new term, <c>{testcase,TestCase,RepeatProperties}</c> + is now also allowed in the return from <c>all/0</c>. This + can be used for repeating a single test case a specific + number of times, or until it fails or succeeds once.</p> + <p> + Own Id: OTP-14746 Aux Id: ERIERL-143 </p> + </item> + <item> + <p> Use <c>ssh</c> instead of <c>rsh</c> as the default + remote shell. </p> + <p> + Own Id: OTP-15633 Aux Id: PR-1787 </p> + </item> + </list> + </section> + +</section> + <section><title>Common_Test 1.17.1</title> <section><title>Improvements and New Features</title> diff --git a/lib/common_test/vsn.mk b/lib/common_test/vsn.mk index 14a3622a00..ddc518f474 100644 --- a/lib/common_test/vsn.mk +++ b/lib/common_test/vsn.mk @@ -1 +1 @@ -COMMON_TEST_VSN = 1.17.1 +COMMON_TEST_VSN = 1.18 diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index d45dfef8f3..05b7cbc940 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,91 @@ <p>This document describes the changes made to the Compiler application.</p> +<section><title>Compiler 7.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p><c>record_info/2</c> is a pseudo-function that + requires literal arguments known at compile time. + Therefore, the following usage is illegal: <c>fun + record/info/2</c>. The compiler would crash when during + compilation of that kind of code. Corrected to issue a + compilation error.</p> + <p> + Own Id: OTP-15760 Aux Id: ERL-907 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + 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.</p> + <p> + Most noticeable is that the binary matching optimizations + are now applicable in many more circumstances than + before.</p> + <p> + Another noticeable change is that type optimizations are + now applied across local function calls, and will remove + a lot more redundant type tests than before.</p> + <p> + Own Id: OTP-14894 Aux Id: ERL-714 </p> + </item> + <item> + <p>Funs are no longer created when they are only used + locally, greatly improving the performance of named funs + and "fun-wrapped" macros.</p> + <p> + Own Id: OTP-15273 Aux Id: ERL-639 </p> + </item> + <item> + <p>All compiler options that can be given in the source + file can now also be given in the option list or from the + command line for <c>erlc</c>.</p> + <p>Specifically, the option + <c>{nowarn_deprecated_function,MFAs}</c> was only + recognized when given in the file with the attribute + <c>-compile()</c>. The option + <c>{nowarn_unused_function,FAs}</c> was incorrectly + documented to only work in a file, but it also worked + when given in the option list.</p> + <p> + Own Id: OTP-15456</p> + </item> + <item> + <p>Internal documentation has now been added to the + <em>Erts</em> and <em>Compiler</em> applications.</p> + <p>The internal documents for <em>Erts</em> describe + miscellaneous interesting implementation details. Those + details can change at any time.</p> + <p>The internal documentation for <em>Compiler</em> + documents the API for the Core Erlang modules. While we + will not change those APIs without good reason, we don't + give the same guarantees about backward compatibility as + for the rest of the APIs in OTP.</p> + <p> + Own Id: OTP-15715</p> + </item> + <item> + <p> There are new compiler options <c>nowarn_removed</c> + and <c>{nowarn_removed,Items}</c> to suppress warnings + for functions and modules that have been removed from + OTP.</p> + <p> + Own Id: OTP-15749 Aux Id: ERL-904 </p> + </item> + </list> + </section> + +</section> + <section><title>Compiler 7.3.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/compiler/vsn.mk b/lib/compiler/vsn.mk index a523627384..494de072ff 100644 --- a/lib/compiler/vsn.mk +++ b/lib/compiler/vsn.mk @@ -1 +1 @@ -COMPILER_VSN = 7.3.2 +COMPILER_VSN = 7.4 diff --git a/lib/crypto/doc/src/notes.xml b/lib/crypto/doc/src/notes.xml index 195c9d029d..1f549f3295 100644 --- a/lib/crypto/doc/src/notes.xml +++ b/lib/crypto/doc/src/notes.xml @@ -31,6 +31,137 @@ </header> <p>This document describes the changes made to the Crypto application.</p> +<section><title>Crypto 4.5</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fixed a bug in error return for <c>crypto:poly1305/2</c>. + It returned the atom <c>notsup</c> instead of the + exception <c>notsup</c>.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15677</p> + </item> + <item> + <p> + The cipher chacha20 was introduced in OpenSSL 1.1.0. + However, it could in a very odd situation, fail for + versions less than OpenSSL 1.1.0d. It is therefore + disabled for those versions.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15678</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> A new <c>rand</c> module algorithm, <c>exro928ss</c> + (Xoroshiro928**), has been implemented. It has got a + really long period and good statistical quality for all + output bits, while still being only about 50% slower than + the default algorithm. </p><p> The same generator is also + used as a long period counter in a new <c>crypto</c> + plugin for the <c>rand</c> module, algorithm + <c>crypto_aes</c>. This plugin uses AES-256 to scramble + the counter which buries any detectable statistical + artifacts. Scrambling is done in chunks which are cached + to get good amortized speed (about half of the default + algorithm). </p> + <p> + Own Id: OTP-14461 Aux Id: PR-1857 </p> + </item> + <item> + <p> + Crypto's single C-file is splitted into multiple files. + The different coding styles in the different parts are + unified into a single style.</p> + <p> + Own Id: OTP-14732 Aux Id: PR-2068, PR-2095 </p> + </item> + <item> + <p> + Build configuration of the <c>crypto</c> application has + been moved from the <c>erts</c> application into the + <c>crypto</c> application.</p> + <p> + Own Id: OTP-15129</p> + </item> + <item> + <p> + Adds two hash functions <c>blake2b</c> and <c>blake2s</c> + (64 bit hash and 32 bit hash respectively). These are + modern and standard hash functions used in blockchains + and encrypted communication protocols. The hash functions + are available in OpenSSL since version 1.1.1.</p> + <p> + Own Id: OTP-15564 Aux Id: PR-2129 </p> + </item> + <item> + <p> + A new API is implemented in crypto. See the CRYPTO user's + guide, chapter <i>New and Old API</i> for more + information.</p> + <p> + The old api with the <c>crypto:block_*</c> and + <c>crypto:stream_*</c> interfaces is kept for + compatibility, but implemented with the new api. Please + note that since the error checking is more thorough, + there <i>might</i> be arguments with for example faulty + lengths that are no longer accepted.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15644 Aux Id: OTP-14732 , OTP-15451, PR-1857 + , PR-2068, PR-2095 </p> + </item> + <item> + <p> + The new hash_info/1 and cipher_info/1 functions returns + maps with information about the hash or cipher in the + argument.</p> + <p> + Own Id: OTP-15655 Aux Id: PR-2173, ERL-864, PR-2186 </p> + </item> + <item> + <p> + Obey additional OpenSSL configure flags when compiling + the C-part of the CRYPTO application: <c>no-bf</c>, + <c>no-blake2</c>, <c>no-chacha</c>, <c>no-cmac</c>, + <c>no-dh</c>, <c>no-dsa</c>, <c>no-md4</c>, + <c>no-poly1305</c>, <c>no-rc2</c>, <c>no-rc4</c> and + <c>no-rmd160</c>.</p> + <p> + Own Id: OTP-15683</p> + </item> + <item> + <p> + A new function <c>crypto:supports/1</c> is introduced. + The single argument takes an atom as argument: + <c>hashs</c>, <c>public_keys</c>, <c>ciphers</c>, + <c>macs</c>, <c>curves</c> or <c>rsa_opts</c>. The return + value is a list of supported algorithms.</p> + <p> + The difference with the existing <c>crypto:supports/0</c> + is, apart from the argument and the return value, that + the old function reports what is supported by the old + api, and the new function reports algorithms in the new + api.</p> + <p> + Own Id: OTP-15771</p> + </item> + </list> + </section> + +</section> + <section><title>Crypto 4.4.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/crypto/vsn.mk b/lib/crypto/vsn.mk index 0a3d9f45e4..72a51bfec9 100644 --- a/lib/crypto/vsn.mk +++ b/lib/crypto/vsn.mk @@ -1 +1 @@ -CRYPTO_VSN = 4.4.2 +CRYPTO_VSN = 4.5 diff --git a/lib/debugger/doc/src/notes.xml b/lib/debugger/doc/src/notes.xml index 395b69973d..795b46d467 100644 --- a/lib/debugger/doc/src/notes.xml +++ b/lib/debugger/doc/src/notes.xml @@ -33,6 +33,23 @@ <p>This document describes the changes made to the Debugger application.</p> +<section><title>Debugger 4.2.7</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + +</section> + <section><title>Debugger 4.2.6</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/debugger/vsn.mk b/lib/debugger/vsn.mk index a3cbb497f8..daecc7594c 100644 --- a/lib/debugger/vsn.mk +++ b/lib/debugger/vsn.mk @@ -1 +1 @@ -DEBUGGER_VSN = 4.2.6 +DEBUGGER_VSN = 4.2.7 diff --git a/lib/dialyzer/doc/src/notes.xml b/lib/dialyzer/doc/src/notes.xml index bc422c43a0..c39a3e20ba 100644 --- a/lib/dialyzer/doc/src/notes.xml +++ b/lib/dialyzer/doc/src/notes.xml @@ -32,6 +32,35 @@ <p>This document describes the changes made to the Dialyzer application.</p> +<section><title>Dialyzer 3.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> Use bit syntax in warnings instead of Core Erlang + syntax, for readability. </p> + <p> + Own Id: OTP-15752</p> + </item> + </list> + </section> + +</section> + <section><title>Dialyzer 3.3.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/dialyzer/vsn.mk b/lib/dialyzer/vsn.mk index 7221993963..3765b727c3 100644 --- a/lib/dialyzer/vsn.mk +++ b/lib/dialyzer/vsn.mk @@ -1 +1 @@ -DIALYZER_VSN = 3.3.2 +DIALYZER_VSN = 3.4 diff --git a/lib/edoc/doc/src/notes.xml b/lib/edoc/doc/src/notes.xml index 145856bcaa..48bc5d9c74 100644 --- a/lib/edoc/doc/src/notes.xml +++ b/lib/edoc/doc/src/notes.xml @@ -32,6 +32,20 @@ <p>This document describes the changes made to the EDoc application.</p> +<section><title>Edoc 0.11</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> Correct links in the documentation. </p> + <p> + Own Id: OTP-15761</p> + </item> + </list> + </section> + +</section> + <section><title>Edoc 0.10</title> <section><title>Improvements and New Features</title> diff --git a/lib/edoc/vsn.mk b/lib/edoc/vsn.mk index b6e1422623..3510fdfccf 100644 --- a/lib/edoc/vsn.mk +++ b/lib/edoc/vsn.mk @@ -1 +1 @@ -EDOC_VSN = 0.10 +EDOC_VSN = 0.11 diff --git a/lib/eldap/doc/src/notes.xml b/lib/eldap/doc/src/notes.xml index bf9358c4d1..6c23db52dc 100644 --- a/lib/eldap/doc/src/notes.xml +++ b/lib/eldap/doc/src/notes.xml @@ -31,6 +31,28 @@ </header> <p>This document describes the changes made to the Eldap application.</p> +<section><title>Eldap 1.2.7</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Typo fix</p> + <p> + Own Id: OTP-15632</p> + </item> + <item> + <p> + Fix dialyzer warnings in eldap when not matching the + return value of ssl:close/1.</p> + <p> + Own Id: OTP-15775</p> + </item> + </list> + </section> + +</section> + <section><title>Eldap 1.2.6</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/eldap/vsn.mk b/lib/eldap/vsn.mk index 6d541e4689..7f03fbd1b2 100644 --- a/lib/eldap/vsn.mk +++ b/lib/eldap/vsn.mk @@ -1 +1 @@ -ELDAP_VSN = 1.2.6 +ELDAP_VSN = 1.2.7 diff --git a/lib/erl_docgen/doc/src/notes.xml b/lib/erl_docgen/doc/src/notes.xml index 54f0a36b27..f25361a202 100644 --- a/lib/erl_docgen/doc/src/notes.xml +++ b/lib/erl_docgen/doc/src/notes.xml @@ -31,7 +31,24 @@ </header> <p>This document describes the changes made to the <em>erl_docgen</em> application.</p> - <section><title>Erl_Docgen 0.9</title> + <section><title>Erl_Docgen 0.9.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + +</section> + +<section><title>Erl_Docgen 0.9</title> <section><title>Improvements and New Features</title> <list> diff --git a/lib/erl_docgen/vsn.mk b/lib/erl_docgen/vsn.mk index 6321f229dd..fece2456c1 100644 --- a/lib/erl_docgen/vsn.mk +++ b/lib/erl_docgen/vsn.mk @@ -1 +1 @@ -ERL_DOCGEN_VSN = 0.9 +ERL_DOCGEN_VSN = 0.9.1 diff --git a/lib/erl_interface/doc/src/ei.xml b/lib/erl_interface/doc/src/ei.xml index 254ae27cc8..18f74d2655 100644 --- a/lib/erl_interface/doc/src/ei.xml +++ b/lib/erl_interface/doc/src/ei.xml @@ -183,7 +183,7 @@ typedef enum { </func> <func> - <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_decode_bitstring(const char *buf, int *index, void *p, size_t plen, size_t *bitsp)</nametext></name> + <name since="OTP 22.0"><ret>int</ret><nametext>ei_decode_bitstring(const char *buf, int *index, void *p, size_t plen, size_t *bitsp)</nametext></name> <fsummary>Decode a bitstring.</fsummary> <desc> <p>Decodes a bitstring from the binary format.</p> @@ -490,8 +490,8 @@ typedef enum { </func> <func> - <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_encode_bitstring(char *buf, int *index, const void *p, size_t bits)</nametext></name> - <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_x_encode_bitstring(ei_x_buff* x, const void *p, size_t bits)</nametext></name> + <name since="OTP 22.0"><ret>int</ret><nametext>ei_encode_bitstring(char *buf, int *index, const void *p, size_t bits)</nametext></name> + <name since="OTP 22.0"><ret>int</ret><nametext>ei_x_encode_bitstring(ei_x_buff* x, const void *p, size_t bits)</nametext></name> <fsummary>Encode a bitstring.</fsummary> <desc> <p>Encodes a bitstring in the binary format. The data is at diff --git a/lib/erl_interface/doc/src/notes.xml b/lib/erl_interface/doc/src/notes.xml index fc6a1bb548..f6c4c68cb1 100644 --- a/lib/erl_interface/doc/src/notes.xml +++ b/lib/erl_interface/doc/src/notes.xml @@ -31,6 +31,82 @@ </header> <p>This document describes the changes made to the Erl_interface application.</p> +<section><title>Erl_Interface 3.12</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + The vxworks configure has been updated to respect the + environment CFLAGS.</p> + <p> + Own Id: OTP-15773</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Minor adjustments made to build system for parallel + configure.</p> + <p> + Own Id: OTP-15340 Aux Id: OTP-14625 </p> + </item> + <item> + <p> + The limited support for VxWorks is deprecated as of OTP + 22, and will be removed in OTP 23.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15621</p> + </item> + <item> + <p>The old legacy <c>erl_interface</c> library (functions + with prefix <c>erl_</c>) is deprecated as of OTP 22, and + will be removed in OTP 23. This does not apply to the + <c>ei</c> library. Reasonably new <c>gcc</c> compilers + will issue deprecation warnings. In order to disable + these warnings, define the macro + <c>EI_NO_DEPR_WARN</c>.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15622</p> + </item> + <item> + <p>Added support to receive, decode, encode and send both + bit strings and export funs (<c>fun M:F/A</c>).</p> + <p>New functions <c>ei_decode_bitstring</c> and + <c>ei_encode_bitstring</c> have been added in order to + decode and encode bit strings where number of bits is not + necessary divisible by 8 (a whole number of bytes). The + existing functions <c>ei_decode_fun</c> and + <c>ei_encode_fun</c> can now also handle export funs.</p> + <p>Before this change, bit strings and export funs sent + to an erl_interface c-node were encoded using an + undocumented fallback tuple format. For bit strings + <c>{Binary,BitsInLastByte}</c> and for export funs + <c>{M,F}</c>. Existing c-node implementations expecting + these tuples must be changed to instead use + <c>ei_decode_bitstring</c> and <c>ei_decode_fun</c>. As a + temporary solution you can also build erl_interface with + macro <c>EI_COMPAT=21</c> or call + <c>ei_set_compat_rel(21)</c> to receive the old fallback + tuples.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15712 Aux Id: OTP-15774 </p> + </item> + </list> + </section> + +</section> + <section><title>Erl_Interface 3.11.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/erl_interface/vsn.mk b/lib/erl_interface/vsn.mk index 5e63f75ab5..cc72ed639a 100644 --- a/lib/erl_interface/vsn.mk +++ b/lib/erl_interface/vsn.mk @@ -1,2 +1,2 @@ -EI_VSN = 3.11.2 +EI_VSN = 3.12 ERL_INTERFACE_VSN = $(EI_VSN) diff --git a/lib/hipe/doc/src/notes.xml b/lib/hipe/doc/src/notes.xml index 9a803cb9df..4a95d75abe 100644 --- a/lib/hipe/doc/src/notes.xml +++ b/lib/hipe/doc/src/notes.xml @@ -31,6 +31,52 @@ </header> <p>This document describes the changes made to HiPE.</p> +<section><title>Hipe 3.19</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Add function <c>hipe:erllvm_is_supported</c> to check + presence of suitable version of the LLVM tool chain as + well as supported hardware architecture. The old + <c>hipe:llvm_support_available</c> has been removed.</p> + <p> + Own Id: OTP-15385 Aux Id: PR-1986 </p> + </item> + <item> + <p> + Fix hipe LLVM for FreeBSD and other non-linux unix to use + /tmp/ instead of /dev/shm/.</p> + <p> + Own Id: OTP-15386 Aux Id: PR-1963 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p>In OTP 22, HiPE (the native code compiler) is not + fully functional. The reasons for this are:</p> + <p>There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support.</p> + <p>The new optimizations in the Erlang compiler create + new combination of instructions that HiPE currently does + not handle correctly.</p> + <p>If erlc is invoked with the <c>+native</c> 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.</p> + <p> + Own Id: OTP-15596</p> + </item> + </list> + </section> + +</section> + <section><title>Hipe 3.18.3</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/hipe/vsn.mk b/lib/hipe/vsn.mk index 39565d721f..a91d92ca14 100644 --- a/lib/hipe/vsn.mk +++ b/lib/hipe/vsn.mk @@ -1 +1 @@ -HIPE_VSN = 3.18.3 +HIPE_VSN = 3.19 diff --git a/lib/inets/doc/src/notes.xml b/lib/inets/doc/src/notes.xml index 2710ea2f2f..03bd1d8042 100644 --- a/lib/inets/doc/src/notes.xml +++ b/lib/inets/doc/src/notes.xml @@ -33,7 +33,24 @@ <file>notes.xml</file> </header> - <section><title>Inets 7.0.7</title> + <section><title>Inets 7.0.8</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + +</section> + +<section><title>Inets 7.0.7</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/inets/vsn.mk b/lib/inets/vsn.mk index fd248e793a..5dbec9e7b3 100644 --- a/lib/inets/vsn.mk +++ b/lib/inets/vsn.mk @@ -19,6 +19,6 @@ # %CopyrightEnd% APPLICATION = inets -INETS_VSN = 7.0.7 +INETS_VSN = 7.0.8 PRE_VSN = APP_VSN = "$(APPLICATION)-$(INETS_VSN)$(PRE_VSN)" diff --git a/lib/jinterface/doc/src/notes.xml b/lib/jinterface/doc/src/notes.xml index e4bfddcd17..e79ada47f1 100644 --- a/lib/jinterface/doc/src/notes.xml +++ b/lib/jinterface/doc/src/notes.xml @@ -31,6 +31,42 @@ </header> <p>This document describes the changes made to the Jinterface application.</p> +<section><title>Jinterface 1.10</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p>Added support to receive export funs (<c>fun + M:F/A</c>).</p> + <p>Before this change, export funs sent to a jinterface + node were encoded using an undocumented fallback tuple + format <c>{M,F}</c>. Existing jinterface implementations + expecting these tuples must be changed to instead use the + existing <c>OtpErlangExternalFun</c> class.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15774 Aux Id: OTP-15712 </p> + </item> + </list> + </section> + +</section> + <section><title>Jinterface 1.9.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/jinterface/vsn.mk b/lib/jinterface/vsn.mk index a8dc815145..95c7c95726 100644 --- a/lib/jinterface/vsn.mk +++ b/lib/jinterface/vsn.mk @@ -1 +1 @@ -JINTERFACE_VSN = 1.9.1 +JINTERFACE_VSN = 1.10 diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml index 61bd598145..63d8f3565c 100644 --- a/lib/kernel/doc/src/notes.xml +++ b/lib/kernel/doc/src/notes.xml @@ -31,6 +31,82 @@ </header> <p>This document describes the changes made to the Kernel application.</p> +<section><title>Kernel 6.4</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + 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, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). It also + provides a basic API that facilitates the implementation + of other protocols, than TCP, UDP and SCTP. </p> + <p> + Known issues are; No support for the Windows OS + (currently).</p> + <p> + Own Id: OTP-14831</p> + </item> + <item> + <p> + Improved the documentation for the linger option.</p> + <p> + Own Id: OTP-15491 Aux Id: + https://github.com/erlang/otp/pull/2019 </p> + </item> + <item> + <p> Global no longer tries more than once when connecting + to other nodes. </p> + <p> + Own Id: OTP-15607 Aux Id: ERIERL-280 </p> + </item> + <item> + <p> + The dist messages EXIT, EXIT2 and MONITOR_DOWN have been + updated with new versions that send the reason term as + part of the payload of the message instead of as part of + the control message.</p> + <p> + The old versions are still present and can be used when + communicating with nodes that don't support the new + versions.</p> + <p> + Own Id: OTP-15611</p> + </item> + <item> + <p> + Kernel configuration parameter <c>start_distribution = + boolean()</c> is added. If set to <c>false</c>, the + system is started with all distribution functionality + disabled. Defaults to <c>true</c>.</p> + <p> + Own Id: OTP-15668 Aux Id: PR-2088 </p> + </item> + <item> + <p> + In OTP-21.3, a warning was introduced for duplicated + applications/keys in configuration. This warning would be + displayed both when the configuration was given as a file + on system start, and during runtime via + <c>application:set_env/1,2</c>.</p> + <p> + The warning is now changed to a <c>badarg</c> exception + in <c>application:set_env/1,2</c>. If the faulty + configuration is given in a configuration file on system + start, the startup will fail.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15692 Aux Id: PR-2170 </p> + </item> + </list> + </section> + +</section> + <section><title>Kernel 6.3.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/kernel/src/kernel.appup.src b/lib/kernel/src/kernel.appup.src index aca3247c8f..cd0397a98c 100644 --- a/lib/kernel/src/kernel.appup.src +++ b/lib/kernel/src/kernel.appup.src @@ -19,23 +19,15 @@ %% %% We allow upgrade from, and downgrade to all previous %% versions from the following OTP releases: -%% - OTP 20 %% - OTP 21 +%% - OTP 22 %% %% We also allow upgrade from, and downgrade to all %% versions that have branched off from the above %% stated previous versions. %% {"%VSN%", - [{<<"^5\\.3$">>,[restart_new_emulator]}, - {<<"^5\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^5\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^6\\.0$">>,[restart_new_emulator]}, + [{<<"^6\\.0$">>,[restart_new_emulator]}, {<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.1$">>,[restart_new_emulator]}, @@ -45,16 +37,9 @@ {<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.3$">>,[restart_new_emulator]}, - {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}], - [{<<"^5\\.3$">>,[restart_new_emulator]}, - {<<"^5\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^5\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^5\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^6\\.0$">>,[restart_new_emulator]}, + {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, + {<<"^6\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}], + [{<<"^6\\.0$">>,[restart_new_emulator]}, {<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.1$">>,[restart_new_emulator]}, @@ -64,4 +49,5 @@ {<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.3$">>,[restart_new_emulator]}, - {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}. + {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, + {<<"^6\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}. diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk index b1ae513223..765e890157 100644 --- a/lib/kernel/vsn.mk +++ b/lib/kernel/vsn.mk @@ -1 +1 @@ -KERNEL_VSN = 6.3.1 +KERNEL_VSN = 6.4 diff --git a/lib/megaco/doc/src/notes.xml b/lib/megaco/doc/src/notes.xml index b697c3f631..6f33ae390c 100644 --- a/lib/megaco/doc/src/notes.xml +++ b/lib/megaco/doc/src/notes.xml @@ -37,7 +37,30 @@ section is the version number of Megaco.</p> - <section><title>Megaco 3.18.4</title> + <section><title>Megaco 3.18.5</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Minor updates to build system necessary due to move of + configuration of <c>crypto</c> application.</p> + <p> + Own Id: OTP-15262 Aux Id: OTP-15129 </p> + </item> + <item> + <p> + Minor adjustments made to build system for parallel + configure.</p> + <p> + Own Id: OTP-15340 Aux Id: OTP-14625 </p> + </item> + </list> + </section> + +</section> + +<section><title>Megaco 3.18.4</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/megaco/vsn.mk b/lib/megaco/vsn.mk index f4c82c537a..843a3dccc5 100644 --- a/lib/megaco/vsn.mk +++ b/lib/megaco/vsn.mk @@ -19,6 +19,6 @@ # %CopyrightEnd% APPLICATION = megaco -MEGACO_VSN = 3.18.4 +MEGACO_VSN = 3.18.5 PRE_VSN = APP_VSN = "$(APPLICATION)-$(MEGACO_VSN)$(PRE_VSN)" diff --git a/lib/mnesia/doc/src/notes.xml b/lib/mnesia/doc/src/notes.xml index 01d1666b8d..59c842ab10 100644 --- a/lib/mnesia/doc/src/notes.xml +++ b/lib/mnesia/doc/src/notes.xml @@ -39,7 +39,41 @@ thus constitutes one section in this document. The title of each section is the version number of Mnesia.</p> - <section><title>Mnesia 4.15.6</title> + <section><title>Mnesia 4.16</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Optimize mnesia:read/1 if data have been written in the + same transaction.</p> + <p> + Own Id: OTP-15550 Aux Id: PR-12029 </p> + </item> + <item> + <p> + Fixed bugs in table index plugin handling.</p> + <p> + Own Id: OTP-15689 Aux Id: PR-1695 ERL-556 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Optimized dumping of tables with plugin backends.</p> + <p> + Own Id: OTP-15588 Aux Id: PR-2102 </p> + </item> + </list> + </section> + +</section> + +<section><title>Mnesia 4.15.6</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/mnesia/vsn.mk b/lib/mnesia/vsn.mk index 781a4830a0..aa5d9adb6d 100644 --- a/lib/mnesia/vsn.mk +++ b/lib/mnesia/vsn.mk @@ -1 +1 @@ -MNESIA_VSN = 4.15.6 +MNESIA_VSN = 4.16 diff --git a/lib/observer/doc/src/notes.xml b/lib/observer/doc/src/notes.xml index 2d914f8c61..f05e58dc21 100644 --- a/lib/observer/doc/src/notes.xml +++ b/lib/observer/doc/src/notes.xml @@ -32,6 +32,23 @@ <p>This document describes the changes made to the Observer application.</p> +<section><title>Observer 2.9.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + +</section> + <section><title>Observer 2.9</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/observer/vsn.mk b/lib/observer/vsn.mk index 0e9c8b302c..c16c43f942 100644 --- a/lib/observer/vsn.mk +++ b/lib/observer/vsn.mk @@ -1 +1 @@ -OBSERVER_VSN = 2.9 +OBSERVER_VSN = 2.9.1 diff --git a/lib/odbc/doc/src/notes.xml b/lib/odbc/doc/src/notes.xml index 696fcaa479..8d708162e4 100644 --- a/lib/odbc/doc/src/notes.xml +++ b/lib/odbc/doc/src/notes.xml @@ -32,7 +32,23 @@ <p>This document describes the changes made to the odbc application. </p> - <section><title>ODBC 2.12.3</title> + <section><title>ODBC 2.12.4</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Minor adjustments made to build system for parallel + configure.</p> + <p> + Own Id: OTP-15340 Aux Id: OTP-14625 </p> + </item> + </list> + </section> + +</section> + +<section><title>ODBC 2.12.3</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/odbc/vsn.mk b/lib/odbc/vsn.mk index ff023e666b..df6db09f2f 100644 --- a/lib/odbc/vsn.mk +++ b/lib/odbc/vsn.mk @@ -1 +1 @@ -ODBC_VSN = 2.12.3 +ODBC_VSN = 2.12.4 diff --git a/lib/os_mon/doc/src/notes.xml b/lib/os_mon/doc/src/notes.xml index 64e9f281e3..1f169263e9 100644 --- a/lib/os_mon/doc/src/notes.xml +++ b/lib/os_mon/doc/src/notes.xml @@ -31,6 +31,35 @@ </header> <p>This document describes the changes made to the OS_Mon application.</p> +<section><title>Os_Mon 2.5</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fix typespec of <c>cpu_sup:util()</c>.</p> + <p> + Own Id: OTP-15770 Aux Id: PR-2208 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + The application otp_mibs has been removed from OTP. Some + of its components (mibs) have been moved to other apps + (snmp), or removed completely (os_mon).</p> + <p> + Own Id: OTP-14984 Aux Id: OTP-15329 </p> + </item> + </list> + </section> + +</section> + <section><title>Os_Mon 2.4.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/os_mon/vsn.mk b/lib/os_mon/vsn.mk index 9713f6bc6b..845443d329 100644 --- a/lib/os_mon/vsn.mk +++ b/lib/os_mon/vsn.mk @@ -1 +1 @@ -OS_MON_VSN = 2.4.7 +OS_MON_VSN = 2.5 diff --git a/lib/public_key/doc/src/notes.xml b/lib/public_key/doc/src/notes.xml index f6bc0dc797..3aad79ed71 100644 --- a/lib/public_key/doc/src/notes.xml +++ b/lib/public_key/doc/src/notes.xml @@ -35,6 +35,58 @@ <file>notes.xml</file> </header> +<section><title>Public_Key 1.6.6</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + RSA options passed to crypto for encrypt and decrypt with + public or private key.</p> + <p> + Own Id: OTP-15754 Aux Id: ERL-878 </p> + </item> + <item> + <p> + Fix dialyzer warnings caused by a faulty type + specification for digest_type().</p> + <p> + This change updates digest_type() and the functions + operating with this argument type to accept both 'sha1' + and 'sha' as digest_type().</p> + <p> + Own Id: OTP-15776</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Add possibility to read PEM files encrypted with old PEM + encryption using AES-256</p> + <p> + Own Id: OTP-13726</p> + </item> + <item> + <p> + Relax decoding of certificates to so that "harmless" + third party encoding errors may be accepted but not + created by the public_key application. This adds + acceptance of using an incorrect three character country + code, the PKIX standard use two character country codes. + It is also accepted that the country code is utf8 encoded + but the specification says it should be ASCII.</p> + <p> + Own Id: OTP-15687 Aux Id: PR-2162 </p> + </item> + </list> + </section> + +</section> + <section><title>Public_Key 1.6.5</title> <section><title>Improvements and New Features</title> diff --git a/lib/public_key/vsn.mk b/lib/public_key/vsn.mk index 11c06fb158..c68806d856 100644 --- a/lib/public_key/vsn.mk +++ b/lib/public_key/vsn.mk @@ -1 +1 @@ -PUBLIC_KEY_VSN = 1.6.5 +PUBLIC_KEY_VSN = 1.6.6 diff --git a/lib/reltool/doc/src/notes.xml b/lib/reltool/doc/src/notes.xml index 165ae6db6a..2d043017af 100644 --- a/lib/reltool/doc/src/notes.xml +++ b/lib/reltool/doc/src/notes.xml @@ -38,7 +38,40 @@ thus constitutes one section in this document. The title of each section is the version number of Reltool.</p> - <section><title>Reltool 0.7.8</title> + <section><title>Reltool 0.8</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + A new element, <c>Opts</c>, can now be included in a + <c>rel</c> tuple in the reltool release specific + configuration format: {rel, Name, Vsn, RelApps, Opts}.</p> + <p> + This supports the use of <c>{rel, Name, Vsn, RelApps, + [{load_dot_erlang, false}]}</c> to prevent the boot + script from running the <c>.erlang</c> file.</p> + <p> + The incompatibilities are as follows:</p> + <p> + * The return from <c>reltool:get_config/1</c> and + <c>reltool:get_config/3</c> includes the new <c>rel</c> + tuple for all rels where the <c>load_dot_erlang</c> + option is set to <c>false</c>.<br/> * The return from + <c>reltool:get_config/3</c> includes the new <c>rel</c> + tuple for ALL rels if the <c>InclDefs</c> parameter is + set to <c>true</c>.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15571</p> + </item> + </list> + </section> + +</section> + +<section><title>Reltool 0.7.8</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/reltool/vsn.mk b/lib/reltool/vsn.mk index a649a3e0c0..c5aacfba38 100644 --- a/lib/reltool/vsn.mk +++ b/lib/reltool/vsn.mk @@ -1 +1 @@ -RELTOOL_VSN = 0.7.8 +RELTOOL_VSN = 0.8 diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 58a2a66c4b..1b94c3e6d9 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,22 @@ <p>This document describes the changes made to the Runtime_Tools application.</p> +<section><title>Runtime_Tools 1.13.3</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Minor updates to build system necessary due to move of + configuration of <c>crypto</c> application.</p> + <p> + Own Id: OTP-15262 Aux Id: OTP-15129 </p> + </item> + </list> + </section> + +</section> + <section><title>Runtime_Tools 1.13.2</title> <section><title>Improvements and New Features</title> diff --git a/lib/runtime_tools/vsn.mk b/lib/runtime_tools/vsn.mk index fa2f338ec2..3f38574be4 100644 --- a/lib/runtime_tools/vsn.mk +++ b/lib/runtime_tools/vsn.mk @@ -1 +1 @@ -RUNTIME_TOOLS_VSN = 1.13.2 +RUNTIME_TOOLS_VSN = 1.13.3 diff --git a/lib/sasl/doc/src/notes.xml b/lib/sasl/doc/src/notes.xml index 982c874117..13546a6a62 100644 --- a/lib/sasl/doc/src/notes.xml +++ b/lib/sasl/doc/src/notes.xml @@ -31,6 +31,23 @@ </header> <p>This document describes the changes made to the SASL application.</p> +<section><title>SASL 3.4</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Change the first module called by erts to be names + erl_init instead of otp_ring0. systools in sasl have been + updated to reflect this change.</p> + <p> + Own Id: OTP-15336 Aux Id: PR-1825 </p> + </item> + </list> + </section> + +</section> + <section><title>SASL 3.3</title> <section><title>Improvements and New Features</title> diff --git a/lib/sasl/src/sasl.appup.src b/lib/sasl/src/sasl.appup.src index 26127eae84..22a9027b7c 100644 --- a/lib/sasl/src/sasl.appup.src +++ b/lib/sasl/src/sasl.appup.src @@ -19,27 +19,21 @@ %% %% We allow upgrade from, and downgrade to all previous %% versions from the following OTP releases: -%% - OTP 20 %% - OTP 21 +%% - OTP 22 %% %% We also allow upgrade from, and downgrade to all %% versions that have branched off from the above %% stated previous versions. %% {"%VSN%", - [{<<"^3\\.0\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.1$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.2$">>,[restart_new_emulator]}, + [{<<"^3\\.2$">>,[restart_new_emulator]}, {<<"^3\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}], - [{<<"^3\\.0\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.1$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.2$">>,[restart_new_emulator]}, + {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^3\\.3$">>,[restart_new_emulator]}, + {<<"^3\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}], + [{<<"^3\\.2$">>,[restart_new_emulator]}, {<<"^3\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}. + {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^3\\.3$">>,[restart_new_emulator]}, + {<<"^3\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}. diff --git a/lib/sasl/vsn.mk b/lib/sasl/vsn.mk index c1f80752a7..8838b514da 100644 --- a/lib/sasl/vsn.mk +++ b/lib/sasl/vsn.mk @@ -1 +1 @@ -SASL_VSN = 3.3 +SASL_VSN = 3.4 diff --git a/lib/snmp/doc/src/notes.xml b/lib/snmp/doc/src/notes.xml index a6c3d57148..780e0cae76 100644 --- a/lib/snmp/doc/src/notes.xml +++ b/lib/snmp/doc/src/notes.xml @@ -34,7 +34,32 @@ </header> - <section><title>SNMP 5.2.12</title> + <section><title>SNMP 5.3</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + The application otp_mibs has been removed from OTP. Some + of its components (mibs) have been moved to other apps + (snmp), or removed completely (os_mon).</p> + <p> + Own Id: OTP-14984 Aux Id: OTP-15329 </p> + </item> + <item> + <p> + [snmp|agent] Add a get-mechanism callback module (and a + corresponding behaviour). The agent calls this module to + handle each get (get, get-next and get-bulk) request.</p> + <p> + Own Id: OTP-15691 Aux Id: ERIERL-324 </p> + </item> + </list> + </section> + +</section> + +<section><title>SNMP 5.2.12</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml index bad5815f40..046d6df89f 100644 --- a/lib/ssh/doc/src/notes.xml +++ b/lib/ssh/doc/src/notes.xml @@ -30,6 +30,21 @@ <file>notes.xml</file> </header> +<section><title>Ssh 4.7.6</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + SSH uses the new crypto API.</p> + <p> + Own Id: OTP-15673</p> + </item> + </list> + </section> + +</section> + <section><title>Ssh 4.7.5</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk index 2947f82556..837da27ab0 100644 --- a/lib/ssh/vsn.mk +++ b/lib/ssh/vsn.mk @@ -1,4 +1,4 @@ #-*-makefile-*- ; force emacs to enter makefile-mode -SSH_VSN = 4.7.5 +SSH_VSN = 4.7.6 APP_VSN = "ssh-$(SSH_VSN)" diff --git a/lib/ssl/doc/src/notes.xml b/lib/ssl/doc/src/notes.xml index f0231da2ad..10455684f1 100644 --- a/lib/ssl/doc/src/notes.xml +++ b/lib/ssl/doc/src/notes.xml @@ -27,6 +27,73 @@ </header> <p>This document describes the changes made to the SSL application.</p> +<section><title>SSL 9.3</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + The distribution handshake with TLS distribution + (<c>inet_tls_dist</c>) does now utilize the socket option + <c>{nodelay, true}</c>, which decreases the distribution + setup time significantly.</p> + <p> + Own Id: OTP-14792</p> + </item> + <item> + <p> + Correct shutdown reason to avoid an incorrect crash + report</p> + <p> + Own Id: OTP-15710 Aux Id: ERL-893 </p> + </item> + <item> + <p> + Enhance documentation and type specifications.</p> + <p> + Own Id: OTP-15746 Aux Id: ERIERL-333 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + TLS-1.0, TLS-1.1 and DTLS-1.0 are now considered legacy + and not supported by default</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-14865</p> + </item> + <item> + <p> + Use new logger API in ssl. Introduce log levels and + verbose debug logging for SSL.</p> + <p> + Own Id: OTP-15055</p> + </item> + <item> + <p> + Basic support for TLS 1.3 Server for experimental use. + The client is not yet functional, for more information + see the Standards Compliance chapter of the User's Guide.</p> + <p> + Own Id: OTP-15591</p> + </item> + <item> + <p> + Add support for PSK CCM ciphers from RFC 6655</p> + <p> + Own Id: OTP-15626</p> + </item> + </list> + </section> + +</section> + <section><title>SSL 9.2.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/ssl/vsn.mk b/lib/ssl/vsn.mk index 98070f794c..3c66ffd852 100644 --- a/lib/ssl/vsn.mk +++ b/lib/ssl/vsn.mk @@ -1 +1 @@ -SSL_VSN = 9.2.2 +SSL_VSN = 9.3 diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml index 65650a25c7..90e9827ec8 100644 --- a/lib/stdlib/doc/src/notes.xml +++ b/lib/stdlib/doc/src/notes.xml @@ -31,6 +31,231 @@ </header> <p>This document describes the changes made to the STDLIB application.</p> +<section><title>STDLIB 3.9</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> Fix a bug in <c>string:lexemes/2</c>. </p> <p> The + bug was found when optimizing the handling of deep lists + of Unicode characters in the <c>string</c> module. </p> + <p> + Own Id: OTP-15649</p> + </item> + <item> + <p>A bug has been fixed in the <c>maps</c> implementation + that could cause a crash or memory usage to grow until + the machine ran out of memory. This could happen when + inserting a new key-value pair with a key <c>K1</c> + containing a binary <c>B1</c> into a map <c>M</c> having + a key <c>K2</c> with a binary <c>B2</c> if the following + conditions were met:</p> <list> <item><c>B1 =/= + B2</c></item> <item><c>size(B1) >= 4294967296</c></item> + <item><c>size(B2) >= 4294967296</c></item> + <item><c>size(M) >= 32</c></item> <item><c>(size(B1) rem + 4294967296) == (size(B2) rem 4294967296)</c></item> + <item>the first <c>(size(B1) rem 4294967296)</c> bytes + are the same both in <c>B1</c> and <c>B2</c></item> + <item>substituting <c>B1</c> in <c>K1</c> with <c>B2</c> + would create a term with the same value as + <c>K2</c></item> </list> <p>The root cause of the problem + is that the <c>maps</c> implementation only hashed the + first <c>(X rem 4294967296)</c> bytes of binaries so that + different binaries could get the same hash value + independently of the hash seed.</p> + <p> + Own Id: OTP-15707</p> + </item> + <item> + <p> Since the introduction of the stack trace variable, + the Erlang Pretty Printer has left out the exception + class <c>throw</c> even when the stack trace variable + cannot be left out, which is not correct Erlang code. The + fix is to always include the exception class + <c>throw</c>. </p> + <p> + Own Id: OTP-15751</p> + </item> + <item> + <p><c>record_info/2</c> is a pseudo-function that + requires literal arguments known at compile time. + Therefore, the following usage is illegal: <c>fun + record/info/2</c>. The compiler would crash when during + compilation of that kind of code. Corrected to issue a + compilation error.</p> + <p> + Own Id: OTP-15760 Aux Id: ERL-907 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> A new <c>rand</c> module algorithm, <c>exro928ss</c> + (Xoroshiro928**), has been implemented. It has got a + really long period and good statistical quality for all + output bits, while still being only about 50% slower than + the default algorithm. </p><p> The same generator is also + used as a long period counter in a new <c>crypto</c> + plugin for the <c>rand</c> module, algorithm + <c>crypto_aes</c>. This plugin uses AES-256 to scramble + the counter which buries any detectable statistical + artifacts. Scrambling is done in chunks which are cached + to get good amortized speed (about half of the default + algorithm). </p> + <p> + Own Id: OTP-14461 Aux Id: PR-1857 </p> + </item> + <item> + <p> + Types related to server naming and starting have been + exported from <c>gen_statem</c>. These are: + <c>server_name/0</c>, <c>server_ref/0</c>, + <c>start_opt/0</c>, <c>start_ret/0</c> and + <c>enter_loop_opt/0</c>.</p> + <p> + Own Id: OTP-14724 Aux Id: PR-2056 </p> + </item> + <item> + <p> + The default algorithm for the <c>rand</c> module has been + changed to <c>exsss</c> (Xorshift116**) which is a + combination of the Xorshift116 (<c>exsp</c>) state update + and a new scrambler "StarStar" from the 2018 paper + "Scrambled Linear Pseudorandom Number Generators" by + David Blackman and Sebastiano Vigna. This combination + should not have the caveat of weak low bits that the + previous default algorithm(s) have had, with the cost of + about 10% lower speed. See GitHub pull request #1969.</p> + <p> + Own Id: OTP-14731 Aux Id: PR-1969 </p> + </item> + <item> + <p> + The generic state machine behaviour <c>gen_statem</c> has + gotten code cleanup and documentation improvements from + GitHub Pull Request #1855, even though the PR itself was + rejected.</p> + <p> + Own Id: OTP-14737 Aux Id: PR-1855 </p> + </item> + <item> + <p> + Update Unicode specification to version 11.0.</p> + <p> + Own Id: OTP-15111</p> + </item> + <item> + <p> + ETS option <c>write_concurrency</c> now also affects and + improves the scalability of <c>ordered_set</c> tables. + The implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime.</p> + <p> + Own Id: OTP-15128</p> + </item> + <item> + <p> + Optimized <c>maps:new/0</c> with trivial Erlang + implementation, making use of literal terms (the empty + map) not needing dynamic heap allocation.</p> + <p> + Own Id: OTP-15200 Aux Id: PR-1878 </p> + </item> + <item> + <p>The <c>gen_*</c> behaviours have been changed so that + if logging of the last N messages through + <c>sys:log/2,3</c> is active for the server, this log is + included in the terminate report.</p> <p>To accomplish + this the format of "System Events" as defined in the man + page for <c>sys</c> has been clarified and cleaned up, a + new function <c>sys:get_log/1</c> has been added, and + <c>sys:get_debug/3</c> has been deprecated. Due to these + changes, code that relies on the internal badly + documented format of "System Events", need to be + corrected.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15381</p> + </item> + <item> + <p> + The <c>gen_statem</c> behaviour engine loop has been + optimized for better performance in particular when the + callback module returns some actions, that is better + performance for more realistic applications than the Echo + Benchmark.</p> + <p> + Own Id: OTP-15452</p> + </item> + <item> + <p> + The <c>persistent_term</c> functions <c>put/2</c> and + <c>erase/1</c> are now yeliding.</p> + <p> + Own Id: OTP-15615</p> + </item> + <item> + <p>Previously, all ETS tables used centralized counter + variables to keep track of the number of items stored and + the amount of memory consumed. These counters can cause + scalability problems (especially on big NUMA systems). + This change adds an implementation of a decentralized + counter and modifies the implementation of ETS so that + ETS tables of type <c>ordered_set</c> with + <c>write_concurrency</c> enabled use the decentralized + counter. Experiments indicate that this change + substantially improves the scalability of ETS + <c>ordered_set</c> tables with <c>write_concurrency</c> + enabled in scenarios with frequent <c>ets:insert/2</c> + and <c>ets:delete/2</c> calls.</p> + <p> + Own Id: OTP-15623 Aux Id: PR-2190 </p> + </item> + <item> + <p> Use <c>ssh</c> instead of <c>rsh</c> as the default + remote shell. </p> + <p> + Own Id: OTP-15633 Aux Id: PR-1787 </p> + </item> + <item> + <p>Added <c>beam_lib:strip/2</c> and friends, which + accept a list of chunks that should be preserved when + stripping.</p> + <p> + Own Id: OTP-15680 Aux Id: PR-2114 </p> + </item> + <item> + <p> There are new compiler options <c>nowarn_removed</c> + and <c>{nowarn_removed,Items}</c> to suppress warnings + for functions and modules that have been removed from + OTP.</p> + <p> + Own Id: OTP-15749 Aux Id: ERL-904 </p> + </item> + <item> + <p> Let the Erlang Pretty Printer put atomic parts on the + same line. </p> + <p> + Own Id: OTP-15755</p> + </item> + <item> + <p> Add option <c>quote_singleton_atom_types</c> to the + Erlang Pretty Printer's functions. Setting the option to + <c>true</c> adds quotes to all singleton atom types. </p> + <p> + Own Id: OTP-15756</p> + </item> + </list> + </section> + +</section> + <section><title>STDLIB 3.8.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/stdlib/src/stdlib.app.src b/lib/stdlib/src/stdlib.app.src index 9cd425db9a..ecb514e9f3 100644 --- a/lib/stdlib/src/stdlib.app.src +++ b/lib/stdlib/src/stdlib.app.src @@ -108,7 +108,7 @@ dets]}, {applications, [kernel]}, {env, []}, - {runtime_dependencies, ["sasl-3.0","kernel-6.0","erts-@OTP-15128@","crypto-3.3", + {runtime_dependencies, ["sasl-3.0","kernel-6.0","erts-10.4","crypto-3.3", "compiler-5.0"]} ]}. diff --git a/lib/stdlib/src/stdlib.appup.src b/lib/stdlib/src/stdlib.appup.src index 08612ed17f..ff92c1267f 100644 --- a/lib/stdlib/src/stdlib.appup.src +++ b/lib/stdlib/src/stdlib.appup.src @@ -19,22 +19,15 @@ %% %% We allow upgrade from, and downgrade to all previous %% versions from the following OTP releases: -%% - OTP 20 %% - OTP 21 +%% - OTP 22 %% %% We also allow upgrade from, and downgrade to all %% versions that have branched off from the above %% stated previous versions. %% {"%VSN%", - [{<<"^3\\.4$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.5$">>,[restart_new_emulator]}, + [{<<"^3\\.5$">>,[restart_new_emulator]}, {<<"^3\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^3\\.6$">>,[restart_new_emulator]}, @@ -43,15 +36,9 @@ {<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.7\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^3\\.8$">>,[restart_new_emulator]}, - {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}], - [{<<"^3\\.4$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.4\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, - {<<"^3\\.5$">>,[restart_new_emulator]}, + {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, + {<<"^3\\.8\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}], + [{<<"^3\\.5$">>,[restart_new_emulator]}, {<<"^3\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^3\\.6$">>,[restart_new_emulator]}, @@ -60,4 +47,5 @@ {<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.7\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^3\\.8$">>,[restart_new_emulator]}, - {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}. + {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, + {<<"^3\\.8\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}. diff --git a/lib/stdlib/vsn.mk b/lib/stdlib/vsn.mk index 6471dc70e0..07224afdc9 100644 --- a/lib/stdlib/vsn.mk +++ b/lib/stdlib/vsn.mk @@ -1 +1 @@ -STDLIB_VSN = 3.8.1 +STDLIB_VSN = 3.9 diff --git a/lib/syntax_tools/doc/src/notes.xml b/lib/syntax_tools/doc/src/notes.xml index 772f5e6e04..a2dd78f280 100644 --- a/lib/syntax_tools/doc/src/notes.xml +++ b/lib/syntax_tools/doc/src/notes.xml @@ -32,6 +32,34 @@ <p>This document describes the changes made to the Syntax_Tools application.</p> +<section><title>Syntax_Tools 2.2</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> Correct links in the documentation. </p> + <p> + Own Id: OTP-15761</p> + </item> + </list> + </section> + +</section> + <section><title>Syntax_Tools 2.1.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/syntax_tools/vsn.mk b/lib/syntax_tools/vsn.mk index 538c71dc24..0ace11772d 100644 --- a/lib/syntax_tools/vsn.mk +++ b/lib/syntax_tools/vsn.mk @@ -1 +1 @@ -SYNTAX_TOOLS_VSN = 2.1.7 +SYNTAX_TOOLS_VSN = 2.2 diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 2191ebe2df..fd41e2cbeb 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,49 @@ </header> <p>This document describes the changes made to the Tools application.</p> +<section><title>Tools 3.2</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Add <c>cprof</c> and <c>tags</c> modules to .app file so + that they are included in releases.</p> + <p> + Own Id: OTP-15534 Aux Id: PR-2078 </p> + </item> + <item> + <p> + Improved documentation parsing in emacs erldoc + functionality.</p> + <p> + Own Id: OTP-15699 Aux Id: PR-2184 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p>The <c>cover</c> tool now uses the <c>counters</c> + module instead of <c>ets</c> for updating the counters + for how many times a line has been executed. By default, + Cover will work with distributed nodes, but a new + function <c>cover:local_only/0</c> allows running the + Cover in a restricted but faster local-only mode.</p> + <p>The increase in speed will vary depending on the type + of code being cover-compiled, but as an example, the + compiler test suite runs more than twice as fast with the + new Cover.</p> + <p> + Own Id: OTP-15575</p> + </item> + </list> + </section> + +</section> + <section><title>Tools 3.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/tools/vsn.mk b/lib/tools/vsn.mk index 5700885549..191a458c62 100644 --- a/lib/tools/vsn.mk +++ b/lib/tools/vsn.mk @@ -1 +1 @@ -TOOLS_VSN = 3.1 +TOOLS_VSN = 3.2 diff --git a/lib/wx/doc/src/notes.xml b/lib/wx/doc/src/notes.xml index 33d02e22ba..0c3374091d 100644 --- a/lib/wx/doc/src/notes.xml +++ b/lib/wx/doc/src/notes.xml @@ -32,6 +32,23 @@ <p>This document describes the changes made to the wxErlang application.</p> +<section><title>Wx 1.8.8</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + All incorrect (that is, all) uses of "can not" has been + corrected to "cannot" in source code comments, + documentation, examples, and so on.</p> + <p> + Own Id: OTP-14282 Aux Id: PR-1891 </p> + </item> + </list> + </section> + +</section> + <section><title>Wx 1.8.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/wx/vsn.mk b/lib/wx/vsn.mk index dac219fa98..91d15de3a9 100644 --- a/lib/wx/vsn.mk +++ b/lib/wx/vsn.mk @@ -1 +1 @@ -WX_VSN = 1.8.7 +WX_VSN = 1.8.8 diff --git a/lib/xmerl/doc/src/notes.xml b/lib/xmerl/doc/src/notes.xml index d6b6dfdfb5..37973d0dba 100644 --- a/lib/xmerl/doc/src/notes.xml +++ b/lib/xmerl/doc/src/notes.xml @@ -32,6 +32,21 @@ <p>This document describes the changes made to the Xmerl application.</p> +<section><title>Xmerl 1.3.21</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + A typo in an error printout has been fixed.</p> + <p> + Own Id: OTP-14703 Aux Id: PR-1964 </p> + </item> + </list> + </section> + +</section> + <section><title>Xmerl 1.3.20</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/xmerl/vsn.mk b/lib/xmerl/vsn.mk index 31ffa6e749..08696606e6 100644 --- a/lib/xmerl/vsn.mk +++ b/lib/xmerl/vsn.mk @@ -1 +1 @@ -XMERL_VSN = 1.3.20 +XMERL_VSN = 1.3.21 diff --git a/make/otp_version_tickets b/make/otp_version_tickets index b8220e1a87..989b3d14a3 100644 --- a/make/otp_version_tickets +++ b/make/otp_version_tickets @@ -1 +1,136 @@ -DEVELOPMENT +OTP-13397 +OTP-13726 +OTP-13819 +OTP-14282 +OTP-14461 +OTP-14625 +OTP-14703 +OTP-14724 +OTP-14731 +OTP-14732 +OTP-14737 +OTP-14746 +OTP-14792 +OTP-14831 +OTP-14865 +OTP-14894 +OTP-14984 +OTP-15011 +OTP-15055 +OTP-15063 +OTP-15075 +OTP-15095 +OTP-15111 +OTP-15128 +OTP-15129 +OTP-15195 +OTP-15200 +OTP-15211 +OTP-15220 +OTP-15238 +OTP-15248 +OTP-15261 +OTP-15262 +OTP-15273 +OTP-15310 +OTP-15323 +OTP-15325 +OTP-15326 +OTP-15336 +OTP-15340 +OTP-15349 +OTP-15351 +OTP-15362 +OTP-15372 +OTP-15373 +OTP-15374 +OTP-15381 +OTP-15385 +OTP-15386 +OTP-15427 +OTP-15429 +OTP-15439 +OTP-15440 +OTP-15451 +OTP-15452 +OTP-15456 +OTP-15491 +OTP-15513 +OTP-15534 +OTP-15535 +OTP-15543 +OTP-15550 +OTP-15564 +OTP-15565 +OTP-15571 +OTP-15575 +OTP-15581 +OTP-15588 +OTP-15590 +OTP-15591 +OTP-15596 +OTP-15607 +OTP-15610 +OTP-15611 +OTP-15612 +OTP-15613 +OTP-15615 +OTP-15617 +OTP-15620 +OTP-15621 +OTP-15622 +OTP-15623 +OTP-15626 +OTP-15631 +OTP-15632 +OTP-15633 +OTP-15635 +OTP-15640 +OTP-15641 +OTP-15644 +OTP-15649 +OTP-15655 +OTP-15658 +OTP-15668 +OTP-15672 +OTP-15673 +OTP-15674 +OTP-15677 +OTP-15678 +OTP-15680 +OTP-15683 +OTP-15687 +OTP-15689 +OTP-15691 +OTP-15692 +OTP-15693 +OTP-15694 +OTP-15697 +OTP-15698 +OTP-15699 +OTP-15703 +OTP-15707 +OTP-15708 +OTP-15710 +OTP-15712 +OTP-15715 +OTP-15717 +OTP-15740 +OTP-15746 +OTP-15749 +OTP-15751 +OTP-15752 +OTP-15754 +OTP-15755 +OTP-15756 +OTP-15758 +OTP-15759 +OTP-15760 +OTP-15761 +OTP-15770 +OTP-15771 +OTP-15773 +OTP-15774 +OTP-15775 +OTP-15776 +OTP-15777 |