aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2019-02-26 11:28:27 +0100
committerErlang/OTP <[email protected]>2019-02-26 11:28:27 +0100
commitdf130102cdeca8d35fec95a0c926fd1cfec54eab (patch)
tree0fb991f1cd53449a74b5e9e5536c2279ccaebce3 /erts/doc
parent42f0f3fcbce009e56270fdccdb6f0a85e3b4b368 (diff)
downloadotp-df130102cdeca8d35fec95a0c926fd1cfec54eab.tar.gz
otp-df130102cdeca8d35fec95a0c926fd1cfec54eab.tar.bz2
otp-df130102cdeca8d35fec95a0c926fd1cfec54eab.zip
Prepare release
Diffstat (limited to 'erts/doc')
-rw-r--r--erts/doc/src/erl_nif.xml8
-rw-r--r--erts/doc/src/net.xml20
-rw-r--r--erts/doc/src/notes.xml252
-rw-r--r--erts/doc/src/socket.xml158
4 files changed, 345 insertions, 93 deletions
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index cc7452bab5..e92d19fffa 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, &amp;tail, &amp;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, &amp;tail, &amp;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 &amp; 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>
diff --git a/erts/doc/src/net.xml b/erts/doc/src/net.xml
index bd85594c98..b126c40923 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>
@@ -69,8 +69,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>
@@ -81,10 +81,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>
@@ -97,7 +97,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>
@@ -105,7 +105,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>
@@ -113,7 +113,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 3473a12526..582ad2e9fe 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -31,6 +31,258 @@
</header>
<p>This document describes the changes made to the ERTS application.</p>
+<section><title>Erts 11.0</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>
+ </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 has been provided through the socket
+ module. 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>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>
+ The termination behaviour of processes has changed to
+ allow processes to yield while sending link exit/monitor
+ down signals.</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 and similar 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>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-15613</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>
+ </list>
+ </section>
+
+</section>
+
<section><title>Erts 10.2.4</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/erts/doc/src/socket.xml b/erts/doc/src/socket.xml
index caf7058b34..9af7c2f8a7 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.
@@ -251,8 +251,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>
@@ -264,7 +264,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>
@@ -277,7 +277,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>
@@ -296,8 +296,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
@@ -306,13 +306,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>
@@ -332,7 +332,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>
@@ -354,8 +354,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>
@@ -363,9 +363,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>
@@ -385,7 +385,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>
@@ -393,11 +393,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>
@@ -408,12 +408,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>
@@ -432,12 +432,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>
@@ -468,10 +468,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>
@@ -479,10 +479,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
@@ -503,10 +503,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>
@@ -514,13 +514,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>
@@ -543,7 +543,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>
@@ -566,7 +566,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>
@@ -574,7 +574,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>
@@ -582,25 +582,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