diff options
author | Erlang/OTP <[email protected]> | 2019-03-25 18:25:04 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2019-03-25 18:25:04 +0100 |
commit | 0118046f9bda8dcf3594184fa439b79267db8017 (patch) | |
tree | dc6499a9f1ad62e9cbf22a9087dfa4e9dcd4bae2 | |
parent | a2b406898cb38b1bf1e812ec87349ee0cd3866ed (diff) | |
download | otp-0118046f9bda8dcf3594184fa439b79267db8017.tar.gz otp-0118046f9bda8dcf3594184fa439b79267db8017.tar.bz2 otp-0118046f9bda8dcf3594184fa439b79267db8017.zip |
Prepare release
71 files changed, 1623 insertions, 191 deletions
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml index cf1994887a..492283d63d 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 0d94f83493..e1179876a3 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 248b871ca0..dbe09dd04b 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,386 @@ </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> + </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), a small term leakage.</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> + Increased the 'creation' value from 2 to 32 bits. The + 'creation' value determines how many times a distributed + node can restart until pids, ports and references may + conflict with such identifiers from an earlier node + incarnation with the same name.</p> + <p> + Own Id: OTP-15603</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> + 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>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> + </list> + </section> + +</section> + <section><title>Erts 10.3.1</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 3942af7f78..224570fb09 100644 --- a/erts/vsn.mk +++ b/erts/vsn.mk @@ -18,7 +18,7 @@ # %CopyrightEnd% # -VSN = 10.3.1 +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/notes.xml b/lib/common_test/doc/src/notes.xml index c8e0722a0f..99777591da 100644 --- a/lib/common_test/doc/src/notes.xml +++ b/lib/common_test/doc/src/notes.xml @@ -33,6 +33,35 @@ <file>notes.xml</file> </header> +<section><title>Common_Test 1.17.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><title>Improvements and New Features</title> + <list> + <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</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/common_test/vsn.mk b/lib/common_test/vsn.mk index 23eb8d9656..14a3622a00 100644 --- a/lib/common_test/vsn.mk +++ b/lib/common_test/vsn.mk @@ -1 +1 @@ -COMMON_TEST_VSN = 1.17 +COMMON_TEST_VSN = 1.17.1 diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index d45dfef8f3..0c34497823 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,53 @@ <p>This document describes the changes made to the Compiler application.</p> +<section><title>Compiler 7.4</title> + + <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> + </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 c0b302734e..bbfb60ff30 100644 --- a/lib/crypto/doc/src/notes.xml +++ b/lib/crypto/doc/src/notes.xml @@ -31,6 +31,119 @@ </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 not + available if the linked cryptolib is OpenSSL of version + 1.1.0c or earlier.</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 blake2b and blake2s (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. So far it is not + published but used for implementing the + <c>crypto:block_*</c> and <c>crypto:stream_*</c> + interfaces.</p> + <p> + Please note that since the error checking is more + thorough, there might be arguments with 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 the OpenSSL flags <c>-no-rc2</c>, <c>-no-rc4</c>, + <c>-no-rc5</c>, <c> -no-md4</c>, <c> -no-rmd160</c>, <c> + -no-blake2</c>, <c> -no-chacha</c> and <c> -no-cmac + -no-poly1305 </c> when compiling the C-part of the crypto + application.</p> + <p> + Own Id: OTP-15683</p> + </item> + </list> + </section> + +</section> + <section><title>Crypto 4.4.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/crypto/vsn.mk b/lib/crypto/vsn.mk index deba17fb66..72a51bfec9 100644 --- a/lib/crypto/vsn.mk +++ b/lib/crypto/vsn.mk @@ -1 +1 @@ -CRYPTO_VSN = 4.4.1 +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..84a448c484 100644 --- a/lib/dialyzer/doc/src/notes.xml +++ b/lib/dialyzer/doc/src/notes.xml @@ -32,6 +32,23 @@ <p>This document describes the changes made to the Dialyzer application.</p> +<section><title>Dialyzer 3.3.3</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>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..49c2e966a3 100644 --- a/lib/dialyzer/vsn.mk +++ b/lib/dialyzer/vsn.mk @@ -1 +1 @@ -DIALYZER_VSN = 3.3.2 +DIALYZER_VSN = 3.3.3 diff --git a/lib/eldap/doc/src/notes.xml b/lib/eldap/doc/src/notes.xml index bf9358c4d1..45a11fdf54 100644 --- a/lib/eldap/doc/src/notes.xml +++ b/lib/eldap/doc/src/notes.xml @@ -31,6 +31,21 @@ </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> + </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/notes.xml b/lib/erl_interface/doc/src/notes.xml index 32d28b853b..c26e3582cd 100644 --- a/lib/erl_interface/doc/src/notes.xml +++ b/lib/erl_interface/doc/src/notes.xml @@ -31,6 +31,54 @@ </header> <p>This document describes the changes made to the Erl_interface application.</p> +<section><title>Erl_Interface 3.12</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> + <item> + <p> + Increased the 'creation' value from 2 to 32 bits. The + 'creation' value determines how many times a distributed + node can restart until pids, ports and references may + conflict with such identifiers from an earlier node + incarnation with the same name.</p> + <p> + Own Id: OTP-15603</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> + </list> + </section> + +</section> + <section><title>Erl_Interface 3.11.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/erl_interface/vsn.mk b/lib/erl_interface/vsn.mk index dae6052d55..cc72ed639a 100644 --- a/lib/erl_interface/vsn.mk +++ b/lib/erl_interface/vsn.mk @@ -1,2 +1,2 @@ -EI_VSN = 3.11.1 +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 91dd9cd6ed..02d23934a6 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.6</title> + <section><title>Inets 7.0.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>Inets 7.0.6</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/inets/vsn.mk b/lib/inets/vsn.mk index b7ddf39ebd..fd248e793a 100644 --- a/lib/inets/vsn.mk +++ b/lib/inets/vsn.mk @@ -19,6 +19,6 @@ # %CopyrightEnd% APPLICATION = inets -INETS_VSN = 7.0.6 +INETS_VSN = 7.0.7 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..f070dd8859 100644 --- a/lib/jinterface/doc/src/notes.xml +++ b/lib/jinterface/doc/src/notes.xml @@ -31,6 +31,23 @@ </header> <p>This document describes the changes made to the Jinterface application.</p> +<section><title>Jinterface 1.9.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> + <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..d66074b9f0 100644 --- a/lib/jinterface/vsn.mk +++ b/lib/jinterface/vsn.mk @@ -1 +1 @@ -JINTERFACE_VSN = 1.9.1 +JINTERFACE_VSN = 1.9.2 diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml index 0c187eb19f..356dcb0547 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), a small term leakage.</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</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 8fa3f5c588..f04303eff9 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]}, @@ -43,16 +35,10 @@ {<<"^6\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.2$">>,[restart_new_emulator]}, {<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^6\\.2\\.1(?:\\.[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\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^6\\.3$">>,[restart_new_emulator]}, + {<<"^6\\.3\\.0(?:\\.[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]}, @@ -60,4 +46,6 @@ {<<"^6\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, {<<"^6\\.2$">>,[restart_new_emulator]}, {<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^6\\.2\\.1(?:\\.[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]}]}. diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk index 7bebe1ba70..765e890157 100644 --- a/lib/kernel/vsn.mk +++ b/lib/kernel/vsn.mk @@ -1 +1 @@ -KERNEL_VSN = 6.3 +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..f533b287d4 100644 --- a/lib/os_mon/doc/src/notes.xml +++ b/lib/os_mon/doc/src/notes.xml @@ -31,6 +31,23 @@ </header> <p>This document describes the changes made to the OS_Mon application.</p> +<section><title>Os_Mon 2.5</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> + </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..ff907596a0 100644 --- a/lib/public_key/doc/src/notes.xml +++ b/lib/public_key/doc/src/notes.xml @@ -35,6 +35,34 @@ <file>notes.xml</file> </header> +<section><title>Public_Key 1.6.6</title> + + <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 423d90fef6..48a10f09d4 100644 --- a/lib/snmp/doc/src/notes.xml +++ b/lib/snmp/doc/src/notes.xml @@ -34,7 +34,24 @@ </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> + </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 17f14bdea2..23be926352 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.5</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.4</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk index 0f9eee887c..2947f82556 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.4 +SSH_VSN = 4.7.5 APP_VSN = "ssh-$(SSH_VSN)" diff --git a/lib/ssl/doc/src/notes.xml b/lib/ssl/doc/src/notes.xml index a511cb4db3..5db0cddc9f 100644 --- a/lib/ssl/doc/src/notes.xml +++ b/lib/ssl/doc/src/notes.xml @@ -27,6 +27,37 @@ </header> <p>This document describes the changes made to the SSL application.</p> +<section><title>SSL 9.3</title> + + <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.</p> + <p> + Own Id: OTP-15591</p> + </item> + </list> + </section> + +</section> + <section><title>SSL 9.2.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/ssl/vsn.mk b/lib/ssl/vsn.mk index c4bcc1560c..3c66ffd852 100644 --- a/lib/ssl/vsn.mk +++ b/lib/ssl/vsn.mk @@ -1 +1 @@ -SSL_VSN = 9.2.1 +SSL_VSN = 9.3 diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml index 23c3f6e981..ea90482b25 100644 --- a/lib/stdlib/doc/src/notes.xml +++ b/lib/stdlib/doc/src/notes.xml @@ -31,6 +31,142 @@ </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> + </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> 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> + </list> + </section> + +</section> + <section><title>STDLIB 3.8</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 37ea97c353..0c2a034825 100644 --- a/lib/stdlib/src/stdlib.appup.src +++ b/lib/stdlib/src/stdlib.appup.src @@ -19,41 +19,31 @@ %% %% 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]}, {<<"^3\\.6\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.7$">>,[restart_new_emulator]}, {<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.7\\.1(?:\\.[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\\.7\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^3\\.8$">>,[restart_new_emulator]}, + {<<"^3\\.8\\.0(?:\\.[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]}, {<<"^3\\.6\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, {<<"^3\\.7$">>,[restart_new_emulator]}, {<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}, - {<<"^3\\.7\\.1(?:\\.[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]}]}. diff --git a/lib/stdlib/vsn.mk b/lib/stdlib/vsn.mk index cbefd6590a..07224afdc9 100644 --- a/lib/stdlib/vsn.mk +++ b/lib/stdlib/vsn.mk @@ -1 +1 @@ -STDLIB_VSN = 3.8 +STDLIB_VSN = 3.9 diff --git a/lib/syntax_tools/doc/src/notes.xml b/lib/syntax_tools/doc/src/notes.xml index 772f5e6e04..d254fd70d4 100644 --- a/lib/syntax_tools/doc/src/notes.xml +++ b/lib/syntax_tools/doc/src/notes.xml @@ -32,6 +32,23 @@ <p>This document describes the changes made to the Syntax_Tools application.</p> +<section><title>Syntax_Tools 2.1.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>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..f34950a1cd 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.1.8 diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 28f8346a19..4f7ae96443 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..d9e0248d5c 100644 --- a/make/otp_version_tickets +++ b/make/otp_version_tickets @@ -1 +1,104 @@ -DEVELOPMENT +OTP-13397 +OTP-13726 +OTP-13819 +OTP-14282 +OTP-14461 +OTP-14625 +OTP-14703 +OTP-14724 +OTP-14731 +OTP-14732 +OTP-14737 +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-15603 +OTP-15607 +OTP-15610 +OTP-15611 +OTP-15612 +OTP-15613 +OTP-15617 +OTP-15621 +OTP-15622 +OTP-15631 +OTP-15632 +OTP-15633 +OTP-15635 +OTP-15640 +OTP-15641 +OTP-15644 +OTP-15649 +OTP-15655 +OTP-15668 +OTP-15672 +OTP-15673 +OTP-15674 +OTP-15677 +OTP-15678 +OTP-15680 +OTP-15683 +OTP-15687 +OTP-15689 +OTP-15692 +OTP-15693 +OTP-15694 +OTP-15697 +OTP-15698 +OTP-15699 +OTP-15703 |