aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
diff options
context:
space:
mode:
authorLukas Larsson <lukas@erlang.org>2016-07-01 17:32:51 +0200
committerLukas Larsson <lukas@erlang.org>2016-07-13 14:54:56 +0200
commit606e660f898264ea75680532c076c56bbe855633 (patch)
treedef63f8c7d35801d8927b9640c404f19f07a4a4c /erts/doc
parent57c3246511434f42214e113b8902af10ab9cca49 (diff)
downloadotp-606e660f898264ea75680532c076c56bbe855633.tar.gz
otp-606e660f898264ea75680532c076c56bbe855633.tar.bz2
otp-606e660f898264ea75680532c076c56bbe855633.zip
erts: Review of documentation changes
Diffstat (limited to 'erts/doc')
-rw-r--r--erts/doc/src/absform.xml24
-rw-r--r--erts/doc/src/alt_dist.xml22
-rw-r--r--erts/doc/src/crash_dump.xml24
-rw-r--r--erts/doc/src/driver.xml18
-rw-r--r--erts/doc/src/epmd.xml6
-rw-r--r--erts/doc/src/erl.xml39
-rw-r--r--erts/doc/src/erl_dist_protocol.xml22
-rw-r--r--erts/doc/src/erl_driver.xml26
-rw-r--r--erts/doc/src/erl_ext_dist.xml4
-rw-r--r--erts/doc/src/erl_nif.xml21
-rw-r--r--erts/doc/src/erl_tracer.xml4
-rw-r--r--erts/doc/src/erlang.xml89
-rw-r--r--erts/doc/src/erts_alloc.xml25
-rw-r--r--erts/doc/src/inet_cfg.xml26
-rw-r--r--erts/doc/src/match_spec.xml16
-rw-r--r--erts/doc/src/ref_man.xml2
-rw-r--r--erts/doc/src/run_erl.xml6
-rw-r--r--erts/doc/src/time_correction.xml6
-rw-r--r--erts/doc/src/werl.xml2
19 files changed, 194 insertions, 188 deletions
diff --git a/erts/doc/src/absform.xml b/erts/doc/src/absform.xml
index c7f1285879..174ad9c640 100644
--- a/erts/doc/src/absform.xml
+++ b/erts/doc/src/absform.xml
@@ -32,7 +32,7 @@
<rev>A</rev>
<file>absform.xml</file>
</header>
- <p>This secion describes the standard representation of parse trees for Erlang
+ <p>This section describes the standard representation of parse trees for Erlang
programs as Erlang terms. This representation is known as the <em>abstract
format</em>. Functions dealing with such parse trees are
<seealso marker="compiler:compile#forms/1">
@@ -41,21 +41,21 @@
<list type="bulleted">
<item><seealso marker="stdlib:epp">
- <c>stdlib:epp</c></seealso></item>
+ <c>stdlib:epp(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_eval">
- <c>stdlib:erl_eval</c></seealso></item>
+ <c>stdlib:erl_eval(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_lint">
- <c>stdlib:erl_lint</c></seealso></item>
+ <c>stdlib:erl_lint(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_parse">
- <c>sdlib:erl_parse</c></seealso></item>
+ <c>sdlib:erl_parse(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_pp">
- <c>stdlib:erl_pp</c></seealso></item>
+ <c>stdlib:erl_pp(3)</c></seealso></item>
<item><seealso marker="stdlib:io">
- <c>stdlib:io</c></seealso></item>
+ <c>stdlib:io(3)</c></seealso></item>
</list>
- <p>The functions are also used as input and output for parse transforms (see
- the <seealso marker="compiler:compile"><c>compiler:compile</c></seealso>
+ <p>The functions are also used as input and output for parse transforms, see
+ the <seealso marker="compiler:compile"><c>compiler:compile(3)</c></seealso>
module.</p>
<p>We use the function <c>Rep</c> to denote the mapping from an Erlang source
@@ -177,8 +177,8 @@
<title>Representation of Parse Errors and End-of-File</title>
<p>In addition to the representations of forms, the list that represents
a module declaration (as returned by functions in
- <seealso marker="stdlib:epp"><c>stdlib:epp</c></seealso> and
- <seealso marker="stdlib:erl_parse"><c>sdlib:erl_parse</c></seealso>)
+ <seealso marker="stdlib:epp"><c>stdlib:epp(3)</c></seealso> and
+ <seealso marker="stdlib:erl_parse"><c>sdlib:erl_parse(3)</c></seealso>)
can contain the following:</p>
<list type="bulleted">
@@ -216,7 +216,7 @@
</item>
</list>
- <p>Notice that negative integers and float literals do not occur as such;
+ <p>Notice that negative integer and float literals do not occur as such;
they are parsed as an application of the unary negation operator.</p>
</section>
diff --git a/erts/doc/src/alt_dist.xml b/erts/doc/src/alt_dist.xml
index 67d30a03c2..f3e3260230 100644
--- a/erts/doc/src/alt_dist.xml
+++ b/erts/doc/src/alt_dist.xml
@@ -33,7 +33,7 @@
<rev>PA2</rev>
<file>alt_dist.xml</file>
</header>
- <p>This section describes how to implement an own carrier
+ <p>This section describes how to implement an alternative carrier
protocol for the Erlang distribution. The distribution is normally
carried by TCP/IP. Here is explained a method for replacing TCP/IP
with another protocol.</p>
@@ -169,11 +169,10 @@
necessity.</p>
<p>The driver data types and the functions available to the driver
- writer are defined in header file <c><![CDATA[erl_driver.h]]></c> (there
- is also a deprecated version called <c><![CDATA[driver.h]]></c>, do not
- use that one) seated in Erlang's include directory (and in
- <c>$ERL_TOP/erts/emulator/beam</c> in the source code
- distribution). See that file for function prototypes, and so on.</p>
+ writer are defined in header file <c><![CDATA[erl_driver.h]]></c>
+ seated in Erlang's include directory. See the
+ <seealso marker="erts:erl_driver">erl_driver</seealso> documentation
+ for details of which functions are available.</p>
<p>When writing a driver to make a communications protocol available
to Erlang, one should know just about everything worth knowing
@@ -440,9 +439,8 @@
<tag><c>uds_finish</c></tag>
<item>
<p>Called when the driver is unloaded. A distribution driver will
- actually (or hopefully) never be unloaded, but we include this for
- completeness. To be able to clean up after oneself is always a good
- thing.</p>
+ never be unloaded, but we include this for completeness. To be
+ able to clean up after oneself is always a good thing.</p>
</item>
<tag><c>uds_control</c></tag>
<item>
@@ -465,9 +463,9 @@
<p>While <c><![CDATA[net_kernel]]></c> informs different subsystems
that the connection is coming up, the port is to accept data to send.
- However, the port receives no data, to avoid that data arrives from
- another node before every kernel subsystem is prepared to handle it.
- A third mode, named <c>intermediate</c>, is used for this
+ However, the port should not receive any data, to avoid that data
+ arrives from another node before every kernel subsystem is prepared
+ to handle it. A third mode, named <c>intermediate</c>, is used for this
intermediate stage.</p>
<p>An enum is defined for the different types of ports:</p>
diff --git a/erts/doc/src/crash_dump.xml b/erts/doc/src/crash_dump.xml
index f143be87d6..d55ab222a7 100644
--- a/erts/doc/src/crash_dump.xml
+++ b/erts/doc/src/crash_dump.xml
@@ -37,11 +37,9 @@
<note>
<p>The Erlang crash dump had a major facelift in Erlang/OTP R9C. The
- information
- in this section is therefore not directly applicable for older dumps.
- However, if you use the <seealso marker="observer:crashdump_viewer">
- <c>crashdump_viewer</c></seealso> tool in the <c>Observer</c> application
- on older dumps,
+ information in this section is therefore not directly applicable for
+ older dumps. However, if you use <seealso marker="observer:crashdump_viewer">
+ <c>observer:crashdump_viewer(3)</c></seealso> on older dumps,
the crash dumps are translated into a format similar to this.</p>
</note>
@@ -94,8 +92,7 @@
<pre>
Slogan: &lt;reason&gt;</pre>
- <p>(The word "slogan" has historical roots.)
- If the system is halted by the BIF
+ <p>If the system is halted by the BIF
<c><![CDATA[erlang:halt/1]]></c>, the slogan is the string parameter
passed to the BIF, otherwise it is a description generated by
the emulator or the (Erlang) kernel. Normally the message
@@ -221,7 +218,7 @@ Slogan: &lt;reason&gt;</pre>
<title>Scheduler Information</title>
<p>Under the tag <em>=scheduler</em> is shown information about the current
state and statistics of the schedulers in the runtime system. On
- operating systems that allow instant suspension of other threads, the
+ operating systems that allow suspension of other threads, the
data within this section reflects what the runtime system looks like
when a crash occurs.</p>
@@ -438,13 +435,6 @@ Slogan: &lt;reason&gt;</pre>
<p>The amount of unused memory on each heap. This information is
usually useless.</p>
</item>
- <tag><em>Stack</em></tag>
- <item>
- <p>If the system uses shared heap, the fields
- <em>Stack+heap</em>, <em>OldHeap</em>, <em>Heap unused</em>,
- and <em>OldHeap unused</em> do not exist. Instead this field
- shows the size of the process stack.</p>
- </item>
<tag><em>Memory</em></tag>
<item>
<p>The total memory used by this process. This includes call stack,
@@ -532,8 +522,8 @@ Slogan: &lt;reason&gt;</pre>
<tag><em>Fixed</em></tag>
<item>
<p>If the table is fixed using
- <seealso marker="stdlib:ets#ets:safe_fixtable">
- <c>ets:safe_fixtable</c></seealso> or some internal mechanism.</p>
+ <seealso marker="stdlib:ets#safe_fixtable/2">
+ <c>ets:safe_fixtable/2</c></seealso> or some internal mechanism.</p>
</item>
<tag><em>Objects</em></tag>
<item>
diff --git a/erts/doc/src/driver.xml b/erts/doc/src/driver.xml
index 2dae01b143..8f31df4cad 100644
--- a/erts/doc/src/driver.xml
+++ b/erts/doc/src/driver.xml
@@ -114,7 +114,7 @@
<p>The <c><![CDATA[control]]></c> entry is called from the emulator
when the Erlang code calls <c><![CDATA[port_control/3]]></c>,
to do the actual work. We have defined a simple set of
- commands: <c><![CDATA[connect]]></c> to log on to the database,
+ commands: <c><![CDATA[connect]]></c> to log in to the database,
<c><![CDATA[disconnect]]></c> to log out, and <c><![CDATA[select]]></c>
to send a SQL-query and get the result.
All results are returned through <c><![CDATA[rbuf]]></c>.
@@ -127,7 +127,7 @@
<c><![CDATA[sample]]></c> directory of <c><![CDATA[erts]]></c>.</p>
<p>The driver entry contains the functions that
- will be called by the emulator. In this simple example,
+ will be called by the emulator. In this example,
only <c><![CDATA[start]]></c>, <c><![CDATA[stop]]></c>,
and <c><![CDATA[control]]></c> are provided:</p>
@@ -179,7 +179,7 @@ typedef struct our_data_s {
#define DRV_SELECT 'S'
]]></code>
- <p>This only returns the driver structure. The macro
+ <p>This returns the driver structure. The macro
<c><![CDATA[DRIVER_INIT]]></c> defines the only exported function.
All the other functions are static, and will not be exported
from the library.</p>
@@ -274,9 +274,9 @@ static int control(ErlDrvData drv_data, unsigned int command, char *buf,
}
]]></code>
- <p><c><![CDATA[do_connect]]></c> is where we log on to the database. If the
+ <p><c><![CDATA[do_connect]]></c> is where we log in to the database. If the
connection was successful, we store the connection handle in the driver
- data, and return OK. Otherwise, we return the error message
+ data, and return <c>'ok'</c>. Otherwise, we return the error message
from postgres and store <c><![CDATA[NULL]]></c> in the driver data.</p>
<code type="none"><![CDATA[
@@ -298,8 +298,8 @@ static int do_connect(const char *s, our_data_t* data, ei_x_buff* x)
<p>If we are connected (and if the connection handle is not
<c><![CDATA[NULL]]></c>),
we log out from the database. We need to check if we should
- encode an OK, as we can get here from function <c><![CDATA[stop]]></c>,
- which does not return data to the emulator:</p>
+ encode an <c>'ok'</c>, as we can get here from function
+ <c><![CDATA[stop]]></c>, which does not return data to the emulator:</p>
<code type="none"><![CDATA[
static int do_disconnect(our_data_t* data, ei_x_buff* x)
@@ -331,7 +331,7 @@ static int do_select(const char* s, our_data_t* data, ei_x_buff* x)
<p>Here we check the result from postgres.
If it is data, we encode it as lists of lists with
column data. Everything from postgres is C strings,
- so we only use <c><![CDATA[ei_x_encode_string]]></c> to send
+ so we use <c><![CDATA[ei_x_encode_string]]></c> to send
the result as strings to Erlang. (The head of the list
contains the column names.)</p>
@@ -391,7 +391,7 @@ void encode_result(ei_x_buff* x, PGresult* res, PGconn* conn)
<p>Before a driver can be called from Erlang, it must be
loaded and opened. Loading is done using the <c><![CDATA[erl_ddll]]></c>
module (the <c><![CDATA[erl_ddll]]></c> driver that loads dynamic
- driver is actually a driver itself). If loading is OK,
+ driver is actually a driver itself). If loading is successfull,
the port can be opened with <c><![CDATA[open_port/2]]></c>. The port
name must match the name of the shared library and
the name in the driver entry structure.</p>
diff --git a/erts/doc/src/epmd.xml b/erts/doc/src/epmd.xml
index 7b026e17f8..120ffb6860 100644
--- a/erts/doc/src/epmd.xml
+++ b/erts/doc/src/epmd.xml
@@ -77,7 +77,7 @@
<tag>Starting the port mapper daemon</tag>
<item>
<p>The daemon is started automatically by command
- <seealso marker="erl"><c>erl</c></seealso>
+ <seealso marker="erl"><c>erl(1)</c></seealso>
if the node is to be distributed and no running
instance is present. If automatically launched
environment variables must be used to change the behavior
@@ -108,7 +108,7 @@
<title>Regular Options</title>
<p>These options are available when starting the name server. The name
server is normally started automatically by command
- <seealso marker="erl"><c>erl</c></seealso> (if not already available),
+ <seealso marker="erl"><c>erl(1)</c></seealso> (if not already available),
but it can also be started at system startup.</p>
<taglist>
@@ -157,7 +157,7 @@
<item>
<p>Command <c>epmd -stop</c> (and the corresponding messages to
<c>epmd</c>, as can be specified using <seealso
- marker="erl_interface:ei"><c>erl_interface:ei</c></seealso>) is
+ marker="erl_interface:ei"><c>erl_interface:ei(3)</c></seealso>) is
normally always ignored. This because it can cause a strange
situation where two nodes of the same name can be alive at the
same time. A node unregisters itself by only closing the
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index 5559aec30e..1578d40ef8 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -128,7 +128,7 @@
which the values can be retrieved by calling
<c><![CDATA[init:get_argument/1]]></c>. Notice that the list of user
flags is not exhaustive, there can be more application-specific
- flags that instead are doscribed in the corresponding
+ flags that instead are described in the corresponding
application documentation.</p>
<taglist>
<tag><c><![CDATA[--]]></c> (init flag)</tag>
@@ -580,7 +580,7 @@
<p>For backward compatibility, the boolean value can be omitted.
This is interpreted as <c>+c false</c>.</p>
</item>
- <tag><marker id="+C_"/><c><![CDATA[+C no_t<seealso marker="erlang:now/0">erlang:now()</seealso>ime_warp | single_time_warp |
+ <tag><marker id="+C_"/><c><![CDATA[+C no_time_warp | single_time_warp |
multi_time_warp]]></c></tag>
<item>
<p>Sets <seealso marker="time_correction#Time_Warp_Modes">time warp
@@ -785,6 +785,39 @@
<p>See also <seealso marker="stdlib:io#printable_range/0">
<c>io:printable_range/0</c></seealso> in <c>STDLIB</c>.</p>
</item>
+ <tag><marker id="+P"/><marker id="max_processes"/><c><![CDATA[+P Number]]></c></tag>
+ <item>
+ <p>Sets the maximum number of simultaneously existing processes for this
+ system if a <c>Number</c> is passed as value. Valid range for
+ <c>Number</c> is <c>[1024-134217727]</c></p>
+ <p><em>NOTE</em>: The actual maximum chosen may be much larger than
+ the <c>Number</c> passed. Currently the runtime system often,
+ but not always, chooses a value that is a power of 2. This might,
+ however, be changed in the future. The actual value chosen can be
+ checked by calling
+ <seealso marker="erlang#system_info_process_limit">erlang:system_info(process_limit)</seealso>.</p>
+ <p>The default value is <c>262144</c></p>
+ </item>
+ <tag><marker id="+Q"/><marker id="max_ports"/><c><![CDATA[+Q Number]]></c></tag>
+ <item>
+ <p>Sets the maximum number of simultaneously existing ports for this
+ system if a Number is passed as value. Valid range for <c>Number</c>
+ is <c>[1024-134217727]</c></p>
+ <p><em>NOTE</em>: The actual maximum chosen may be much larger than
+ the actual <c>Number</c> passed. Currently the runtime system often,
+ but not always, chooses a value that is a power of 2. This might,
+ however, be changed in the future. The actual value chosen can be
+ checked by calling
+ <seealso marker="erlang#system_info_port_limit">erlang:system_info(port_limit)</seealso>.</p>
+ <p>The default value used is normally <c>65536</c>. However, if
+ the runtime system is able to determine maximum amount of file
+ descriptors that it is allowed to open and this value is larger
+ than <c>65536</c>, the chosen value will increased to a value
+ larger or equal to the maximum amount of file descriptors that
+ can be opened.</p>
+ <p>On Windows the default value is set to <c>8196</c> because the
+ normal OS limitations are set higher than most machines can handle.</p>
+ </item>
<tag><marker id="compat_rel"/><c><![CDATA[+R ReleaseNumber]]></c></tag>
<item>
<p>Sets the compatibility mode.</p>
@@ -1482,7 +1515,7 @@
<c><![CDATA[ERL_CRASH_DUMP_SECONDS=-1]]></c>, the runtime system
waits indefinitely for the crash dump file to be written.</p>
<p>This variable is used with <seealso marker="kernel:heart">
- <c>kernel:heart</c></seealso> if <c>heart</c> is running:</p>
+ <c>kernel:heart(3)</c></seealso> if <c>heart</c> is running:</p>
<taglist>
<tag><c><![CDATA[ERL_CRASH_DUMP_SECONDS=0]]></c></tag>
<item>Suppresses the writing a crash dump file entirely, thus
diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml
index f1979ac23f..a5949ce15f 100644
--- a/erts/doc/src/erl_dist_protocol.xml
+++ b/erts/doc/src/erl_dist_protocol.xml
@@ -48,7 +48,7 @@
</item>
<item>
<p>Authentication (done by <seealso marker="kernel:net_kernel">
- <c>kernel:net_kernel</c></seealso>) (3)</p>
+ <c>kernel:net_kernel(3)</c></seealso>) (3)</p>
</item>
<item>
<p>Connected (4)</p>
@@ -573,7 +573,7 @@ io:format("old/unused name ~ts at port ~p, fd = ~p ~n",
<p>Every message in the handshake starts with a 16-bit big-endian integer,
which contains the message length (not counting the two initial bytes).
In Erlang this corresponds to option <c>{packet, 2}</c> in
- <seealso marker="kernel:gen_tcp"><c>kernel:gen_tcp</c></seealso>.
+ <seealso marker="kernel:gen_tcp"><c>kernel:gen_tcp(3)</c></seealso>.
Notice that after the handshake, the distribution switches to 4 byte
packet headers.</p>
</section>
@@ -716,18 +716,18 @@ TCP connect ------------------------------------&gt;
send_name --------------------------------------&gt;
recv_name
-&lt;---------------------------------------------- send_status
+ &lt;---------------------------------------------- send_status
recv_status
(if status was 'alive'
send_status - - - - - - - - - - - - - - - - - -&gt;
recv_status)
ChB = gen_challenge()
(ChB)
-&lt;---------------------------------------------- send_challenge
+ &lt;---------------------------------------------- send_challenge
recv_challenge
ChA = gen_challenge(),
OCA = out_cookie(B),
-DiA = gen_digest(ChB,OCA)
+DiA = gen_digest(ChB, OCA)
(ChA, DiA)
send_challenge_reply ---------------------------&gt;
recv_challenge_reply
@@ -738,11 +738,11 @@ send_challenge_reply ---------------------------&gt;
OCB = out_cookie(A),
DiB = gen_digest (ChA, OCB)
(DiB)
-&lt;----------------------------------------------- send_challenge_ack
+ &lt;----------------------------------------------- send_challenge_ack
recv_challenge_ack DONE
ICA = in_cookie(B), - else:
check: CLOSE
-DiB == gen_digest(ChA,ICA)?
+DiB == gen_digest(ChA, ICA)?
- if OK:
DONE
- else:
@@ -754,20 +754,20 @@ DiB == gen_digest(ChA,ICA)?
<title>Distribution Flags</title>
<p>The following capability flags are defined:</p>
<taglist>
- <tag><c>-define(DFLAG_PUBLISHED,1).</c></tag>
+ <tag><c>-define(DFLAG_PUBLISHED,16#1).</c></tag>
<item>
<p>The node is to be published and part of the global namespace.</p>
</item>
- <tag><c>-define(DFLAG_ATOM_CACHE,2).</c></tag>
+ <tag><c>-define(DFLAG_ATOM_CACHE,16#2).</c></tag>
<item>
<p>The node implements an atom cache (obsolete).</p>
</item>
- <tag><c>-define(DFLAG_EXTENDED_REFERENCES,4).</c></tag>
+ <tag><c>-define(DFLAG_EXTENDED_REFERENCES,16#4).</c></tag>
<item>
<p>The node implements extended (3 &times; 32 bits) references. This
is required today. If not present, the connection is refused.</p>
</item>
- <tag><c>-define(DFLAG_DIST_MONITOR,8).</c></tag>
+ <tag><c>-define(DFLAG_DIST_MONITOR,16#8).</c></tag>
<item>
<p>The node implements distributed process monitoring.</p>
</item>
diff --git a/erts/doc/src/erl_driver.xml b/erts/doc/src/erl_driver.xml
index 69c3375858..8e83b74986 100644
--- a/erts/doc/src/erl_driver.xml
+++ b/erts/doc/src/erl_driver.xml
@@ -111,11 +111,10 @@
sent. This is convenient when matching on messages received from
the port. (Although in the latest Erlang versions there is
the binary syntax, which enables you to match on the beginning of
- a binary.)
-
- <marker id="smp_support"></marker></p>
- <p>In the runtime system with SMP support, drivers are locked either
- on driver level or port level (driver instance level). By default
+ a binary.)</p>
+ <p><marker id="smp_support"></marker>In the runtime system with
+ SMP support, drivers are locked either on driver level
+ or port level (driver instance level). By default
driver level locking will be used, that is, only one emulator thread
will execute code in the driver at a time. If port level locking
is used, multiple emulator threads can execute code in the driver
@@ -979,7 +978,8 @@ int suggested_stack_size;</code>
memory, in which case <c>NULL</c> is returned. (This is most
often a wrapper for <c>malloc</c>).</p>
<p>Memory allocated must be explicitly freed with a corresponding
- call to <c>driver_free</c> (unless otherwise stated).</p>
+ call to <seealso marker="#driver_free"><c>driver_free</c></seealso>
+ (unless otherwise stated).</p>
<p>This function is thread-safe.</p>
</desc>
</func>
@@ -1008,7 +1008,7 @@ int suggested_stack_size;</code>
</func>
<func>
- <name><ret>long</ret><nametext>driver_async (ErlDrvPort port, unsigned
+ <name><ret>long</ret><nametext>driver_async(ErlDrvPort port, unsigned
int* key, void (*async_invoke)(void*), void* async_data, void
(*async_free)(void*))</nametext></name>
<fsummary>Perform an asynchronous call within a driver.</fsummary>
@@ -1076,7 +1076,7 @@ r = driver_async(myPort, &myKey, myData, myFunc); ]]></code>
</func>
<func>
- <name><ret>unsigned int</ret><nametext>driver_async_port_key (ErlDrvPort
+ <name><ret>unsigned int</ret><nametext>driver_async_port_key(ErlDrvPort
port)</nametext></name>
<fsummary>Calculate an async key from an ErlDrvPort.</fsummary>
<desc>
@@ -2215,7 +2215,7 @@ r = driver_async(myPort, &myKey, myData, myFunc); ]]></code>
how to use this information. Implementations on some platforms
can use other means to determine the consumed fraction
of the time-slice. Lengthy driver callbacks should, regardless of
- this frequently, call this function to determine if it is allowed
+ this, frequently call this function to determine if it is allowed
to continue execution or not.</p>
<p>This function returns a non-zero value
if the time-slice has been exhausted, and zero if the callback is
@@ -2433,7 +2433,7 @@ r = driver_async(myPort, &myKey, myData, myFunc); ]]></code>
<fsummary>Try lock a mutex.</fsummary>
<desc>
<marker id="erl_drv_mutex_trylock"></marker>
- <p>Tries to lock a mutex. A thred that has currently locked the mutex
+ <p>Tries to lock a mutex. A thread that has currently locked the mutex
<em>cannot</em> try to lock the same mutex again.</p>
<p><c>mtx</c> is a pointer to a mutex to try to lock.</p>
<p>Returns <c>0</c> on success, otherwise <c>EBUSY</c>.</p>
@@ -2562,7 +2562,7 @@ erl_drv_output_term(driver_mk_port(drvport), spec, sizeof(spec) / sizeof(spec[0]
works. <c>ERL_DRV_STRING_CONS</c> builds a string list in
reverse order (as opposed to how <c>ERL_DRV_LIST</c>
works), concatenating the strings added to a list. The tail
- must be specifed before <c>ERL_DRV_STRING_CONS</c>.</p>
+ must be specified before <c>ERL_DRV_STRING_CONS</c>.</p>
<p><c>ERL_DRV_STRING</c> constructs a string, and ends
it. (So it is the same as <c>ERL_DRV_NIL</c> followed by
<c>ERL_DRV_STRING_CONS</c>.)</p>
@@ -2590,7 +2590,7 @@ erl_drv_output_term(driver_mk_port(drvport), spec, sizeof(spec) / sizeof(spec[0]
that is, a term that has been encoded by
<seealso marker="erlang#term_to_binary/2">
<c>erlang:term_to_binary</c></seealso>,
- <seealso marker="erl_interface:ei"><c>erl_interface</c></seealso>,
+ <seealso marker="erl_interface:ei"><c>erl_interface:ei(3)</c></seealso>,
and so on.
For example, if <c>binp</c> is a pointer to an <c>ErlDrvBinary</c>
that contains term <c>{17, 4711}</c> encoded with the
@@ -2803,7 +2803,7 @@ erl_drv_output_term(driver_mk_port(drvport), spec, sizeof(spec) / sizeof(spec[0]
A thread that currently has read or read/write locked the
rwlock <em>cannot</em> try to lock the same rwlock again.</p>
<p><c>rwlck</c>is pointer to an rwlock to try to read/write lock.</p>
- <p>Returns <c>0</c> om success, otherwise <c>EBUSY</c>.</p>
+ <p>Returns <c>0</c> on success, otherwise <c>EBUSY</c>.</p>
<warning>
<p>If you leave an rwlock locked in an emulator thread
when you let the thread out of your control, you will
diff --git a/erts/doc/src/erl_ext_dist.xml b/erts/doc/src/erl_ext_dist.xml
index 2ff0f39a3f..fed41098f8 100644
--- a/erts/doc/src/erl_ext_dist.xml
+++ b/erts/doc/src/erl_ext_dist.xml
@@ -131,7 +131,7 @@
undefined</em>.</p>
<p>When distribution flag <seealso marker="erl_dist_protocol#dflags">
<c>DFLAG_UTF8_ATOMS</c></seealso> has been exchanged between both nodes
- in th <seealso marker="erl_dist_protocol#distribution_handshake">
+ in the <seealso marker="erl_dist_protocol#distribution_handshake">
distribution handshake</seealso>, all atoms in the distribution header
are encoded in UTF-8, otherwise in Latin-1. The two
new tags <seealso marker="#ATOM_UTF8_EXT"><c>ATOM_UTF8_EXT</c></seealso>
@@ -364,7 +364,7 @@
</row>
<tcaption>INTEGER_EXT</tcaption></table>
<p>
- Signed 32-bit integer in big-endian format (that is, MSB first).
+ Signed 32-bit integer in big-endian format.
</p>
</section>
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index d154a1bd21..2b627281fe 100644
--- a/erts/doc/src/erl_nif.xml
+++ b/erts/doc/src/erl_nif.xml
@@ -422,6 +422,7 @@ return term;</code>
on a dirty scheduler does not have the same duration restriction
as a normal NIF.
</p>
+
<p>
It is important to classify the dirty job correct. An I/O bound
job should be classified as such, and a CPU bound job should be
@@ -451,7 +452,7 @@ return term;</code>
reclassified and rescheduled using <c>enif_schedule_nif</c> so
that it executes on the correct type of dirty scheduler at all
times. For more information see the documentation of the
- <c>erl</c> command line arguments
+ <c>erl(1)</c> command line arguments
<seealso marker="erl#+SDcpu"><c>+SDcpu</c></seealso>,
and <seealso marker="erl#+SDio"><c>+SDio</c></seealso>.</p>
<p>While a process executes a dirty NIF, some operations that
@@ -1133,8 +1134,8 @@ typedef enum {
<desc>
<p>If <c>term</c> is the pid of a node local process, this function
initializes the pid variable <c>*pid</c> from it and returns
- <c>true</c>. Otherwise returns <c>false</c>. No check is done if the
- process is alive.</p>
+ <c>true</c>. Otherwise returns <c>false</c>. No check is done to see
+ if the process is alive.</p>
</desc>
</func>
@@ -1145,8 +1146,8 @@ typedef enum {
<desc>
<p>If <c>term</c> identifies a node local port, this function
initializes the port variable <c>*port_id</c> from it and returns
- <c>true</c>. Otherwise returns <c>false</c>. No check is done if the
- port is alive.</p>
+ <c>true</c>. Otherwise returns <c>false</c>. No check is done to see
+ if the port is alive.</p>
</desc>
</func>
@@ -1157,8 +1158,8 @@ typedef enum {
<fsummary>Get head and tail from a list.</fsummary>
<desc>
<p>Sets <c>*head</c> and <c>*tail</c> from list <c>list</c>.</p>
- <p>Returns <c>true</c> on success, or <c>false</c> if the list is
- empty.</p>
+ <p>Returns <c>true</c> on success, or <c>false</c> if it is
+ not a list or the list is empty.</p>
</desc>
</func>
@@ -2198,7 +2199,8 @@ enif_map_iterator_destroy(env, &amp;iter);</code>
</desc>
</func>
- <func><name><ret>int</ret>
+ <func>
+ <name><ret>int</ret>
<nametext>enif_mutex_trylock(ErlNifMutex *mtx)</nametext></name>
<fsummary></fsummary>
<desc>
@@ -2625,7 +2627,8 @@ enif_map_iterator_destroy(env, &amp;iter);</code>
</func>
<func>
- <name><ret>int</ret><nametext>enif_thread_create(char *name,ErlNifTid
+ <name><ret>int</ret>
+ <nametext>enif_thread_create(char *name,ErlNifTid
*tid,void * (*func)(void *),void *args,ErlNifThreadOpts
*opts)</nametext></name>
<fsummary></fsummary>
diff --git a/erts/doc/src/erl_tracer.xml b/erts/doc/src/erl_tracer.xml
index a2cfed684b..131157eef8 100644
--- a/erts/doc/src/erl_tracer.xml
+++ b/erts/doc/src/erl_tracer.xml
@@ -248,7 +248,7 @@
<fsummary>Check if a trace event is to be generated.</fsummary>
<type>
<v>TraceTag = <seealso marker="#type-trace_tag_gc">
- trace_tag_garbage_collection()</seealso></v>
+ trace_tag_gc()</seealso></v>
<v>TracerState = term()</v>
<v>Tracee = <seealso marker="#type-tracee">tracee()</seealso></v>
<v>Result = trace | discard | remove</v>
@@ -434,7 +434,7 @@
specified.</p>
<p>For more information on what <c>Label</c> and <c>SeqTraceInfo</c>
can be, see <seealso marker="kernel:seq_trace">
- <c>kernel:seq_trace</c></seealso>.</p>
+ <c>kernel:seq_trace(3)</c></seealso>.</p>
</desc>
</func>
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 3356447168..e402ce448f 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -147,7 +147,7 @@
as the <c>native</c> time unit. That is, it can differ between
runtime restarts. To get values of this type, call
<seealso marker="kernel:os#perf_counter/0">
- <c>os:perf_counter()</c></seealso>.</p>
+ <c>os:perf_counter/0</c></seealso>.</p>
</item>
</taglist>
<p>The <c>time_unit/0</c> type can be extended.
@@ -252,7 +252,7 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
compile time, the call is better written as
<c><anno>Fun</anno>(Arg1, Arg2, ... ArgN)</c>.</p>
<warning>
- <p>Earlier, <c><anno>Fun</anno></c> could also be speciifed as
+ <p>Earlier, <c><anno>Fun</anno></c> could also be specified as
<c>{Module, Function}</c>, equivalent to
<c>apply(Module, Function, Args)</c>. <em>This use is
deprecated and will stop working in a future release.</em></p>
@@ -352,7 +352,7 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
2> binary_part(Bin,{0,2}).
&lt;&lt;1,2&gt;&gt;</code>
<p>For details about the <c><anno>PosLen</anno></c> semantics, see
- <seealso marker="stdlib:binary"><c>stdlib:binary</c></seealso>.</p>
+ <seealso marker="stdlib:binary"><c>stdlib:binary(3)</c></seealso>.</p>
<p>Allowed in guard tests.</p>
</desc>
</func>
@@ -643,13 +643,13 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
is given.</p>
<list type="bulleted">
<item>
- <p>When the operation is performed synchronously:
+ <p>When <c>Async</c> is <c>false</c>:
if <c>Info</c> is <c>true</c>, the <c>Result</c> is
returned by <c>erlang:cancel_timer()</c>. otherwise
<c>ok</c> is returned.</p>
</item>
<item>
- <p>When the operation is performed asynchronously:
+ <p>When <c>Async</c> is <c>true</c>:
if <c>Info</c> is <c>true</c>, a message on the form
<c>{cancel_timer, <anno>TimerRef</anno>,
<anno>Result</anno>}</c> is sent to the
@@ -1928,7 +1928,7 @@ os_prompt%</pre>
using <c>proc_lib</c> (also indirectly, such as
<c>gen_server</c> processes), are to use
<seealso marker="stdlib:proc_lib#hibernate/3">
- <c>proc_lib:hibernate/3</c></seealso> in <c>STDLIB</c>
+ <c>proc_lib:hibernate/3</c></seealso>
instead, to ensure that the exception handler continues to work
when the process wakes up.</p>
</desc>
@@ -2492,9 +2492,12 @@ os_prompt%</pre>
implemented functions (NIFs) for a module. <c><anno>Path</anno></c>
is a file path to the shareable object/dynamic library file minus
the OS-dependent file extension (<c>.so</c> for Unix and
- <c>.dll</c> for Windows). For information on how to
+ <c>.dll</c> for Windows). Notice that on most OSs the library has
+ to have a different name on disc when an upgrade of the nif is
+ done. If the name is the same, but the contents differ, the
+ old library may be loaded instead. For information on how to
implement a NIF library, see
- <seealso marker="erl_nif"><c>erl_nif</c></seealso>.</p>
+ <seealso marker="erl_nif"><c>erl_nif(3)</c></seealso>.</p>
<p><c><anno>LoadInfo</anno></c> can be any term. It is passed on to
the library as part of the initialization. A good practice is
to include a module version number to support future code
@@ -2689,8 +2692,7 @@ os_prompt%</pre>
<p>This is a useful debugging and test tool, especially when writing
complicated match specifications.</p>
<p>See also
- <seealso marker="stdlib:ets#test_ms/2"><c>ets:test_ms/2</c></seealso>
- in <c>STDLIB</c>.</p>
+ <seealso marker="stdlib:ets#test_ms/2"><c>ets:test_ms/2</c></seealso>.</p>
</desc>
</func>
@@ -2900,7 +2902,7 @@ RealSystem = system + MissedSystem</code>
<type name="memory_type"/>
<desc>
<p>Returns the memory size in bytes allocated for memory of type
- <c><anno>Type</anno></c>. The argument can also be specifed as a list
+ <c><anno>Type</anno></c>. The argument can also be specified as a list
of <c>memory_type()</c> atoms, in which case a corresponding list of
<c>{memory_type(), Size :: integer >= 0}</c> tuples is returned.</p>
<note>
@@ -2987,7 +2989,7 @@ RealSystem = system + MissedSystem</code>
the monitored entity. Monitors are fired when the monitored process
or port terminates, does not exist at the moment of creation,
or if the connection to it is lost. If the connection to it is lost,
- we do not know if it still exixts. The monitoring is also turned off
+ we do not know if it still exists. The monitoring is also turned off
when <seealso marker="#demonitor/1">demonitor/1</seealso> is
called.</p>
@@ -3063,7 +3065,7 @@ RealSystem = system + MissedSystem</code>
</item>
<tag>Monitoring a
- <marker id="monitor_time_offset"/>time_offset</tag>
+ <marker id="monitor_time_offset"/><c>time_offset</c></tag>
<item>
<p>Monitors changes in
<seealso marker="#time_offset/0"><c>time offset</c></seealso>
@@ -3243,7 +3245,7 @@ RealSystem = system + MissedSystem</code>
<func>
<name name="nif_error" arity="1"/>
- <fsummary>Stop execution with a specifed reason.</fsummary>
+ <fsummary>Stop execution with a specified reason.</fsummary>
<desc>
<p>Works exactly like
<seealso marker="#error/1"><c>error/1</c></seealso>, but
@@ -3333,9 +3335,7 @@ RealSystem = system + MissedSystem</code>
this garbage collection can be delayed. For more
information, see
<seealso marker="erlang#system_info_delayed_node_table_gc">
- <c>delayed_node_table_gc</c></seealso> in
- <seealso marker="system_info/1">
- <c>erlang:system_info/1</c></seealso>.</p>
+ <c>erlang:system_info(delayed_node_table_gc)</c></seealso>.</p>
</item>
</taglist>
<p>Some equalities: <c>[node()] = nodes(this)</c>,
@@ -3387,11 +3387,11 @@ RealSystem = system + MissedSystem</code>
translation or to force, for example UTF-8, supply the executable
and/or arguments as a binary in the correct
encoding. For details, see the module
- <seealso marker="kernel:file"><c>kernel:file</c></seealso>, the
+ <seealso marker="kernel:file"><c>kernel:file(3)</c></seealso>, the
function <seealso marker="kernel:file#native_name_encoding/0">
<c>file:native_name_encoding/0</c></seealso> in <c>Kernel</c>, and
- the <seealso marker="stdlib:unicode_usage"><c>STDLIB</c></seealso>
- User's Guide.</p>
+ the <seealso marker="stdlib:unicode_usage">
+ <c>Using Unicode in Erlang</c></seealso> User's Guide.</p>
<note>
<p>The characters in the name (if specified as a list) can
only be &gt; 255 if the Erlang virtual machine is started
@@ -3544,7 +3544,7 @@ RealSystem = system + MissedSystem</code>
means that file wildcard expansion does not occur.
To expand wildcards for the arguments, use
<seealso marker="stdlib:filelib#wildcard/1">
- <c>filelib:wildcard/1</c></seealso> in <c>STDLIB</c>.
+ <c>filelib:wildcard/1</c></seealso>.
Notice that even if
the program is a Unix shell script, meaning that the
shell ultimately is invoked, wildcard expansion
@@ -4404,10 +4404,10 @@ RealSystem = system + MissedSystem</code>
as code auto-loading depends on the correct
operation of the error handling module.</p>
<p>Returns the old value of the flag.</p>
- <marker id="process_flag_min_heap_size"/>
</desc>
</func>
+ <marker id="process_flag_min_heap_size"/>
<func>
<name name="process_flag" arity="2" clause_i="3"/>
<fsummary>Set process flag min_heap_size for the calling process.
@@ -5884,7 +5884,7 @@ true</pre>
<p>Sets the <c>max_heap_size</c> process flag. The default
<c>max_heap_size</c> is determined by command-line argument
<seealso marker="erl#+hmax"><c>+hmax</c></seealso>
- in <c>erl/1</c>. For more information, see the
+ in <c>erl(1)</c>. For more information, see the
documentation of <seealso marker="#process_flag_max_heap_size">
<c>process_flag(max_heap_size, <anno>Size</anno>)</c></seealso>.
</p>
@@ -5896,7 +5896,7 @@ true</pre>
or <c>on_heap</c>. The default
<c>message_queue_data</c> process flag is determined by
command-line argument <seealso marker="erl#+hmqd">
- <c>+hmqd</c></seealso> in <c>erl/1</c>.
+ <c>+hmqd</c></seealso> in <c>erl(1)</c>.
For more information, see the documentation of
<seealso marker="#process_flag_message_queue_data">
<c>process_flag(message_queue_data,
@@ -6128,7 +6128,7 @@ true</pre>
type => scheduler}|...]</pre>
<p>The time unit is the same as returned by
<seealso marker="kernel:os#perf_counter/0">
- <c>os:perf_counter/0</c></seealso> in <c>Kernel</c>.
+ <c>os:perf_counter/0</c></seealso>.
So, to convert it to milliseconds, you can do something like this:</p>
<pre>
lists:map(
@@ -6213,9 +6213,8 @@ lists:map(
part of the <c>other</c> state.</item>
</taglist>
<p>The utility module
- <seealso marker="runtime_tools:msacc"><c>msacc</c></seealso> in the
- <c>runtime_tools</c> spplication can be used to more easily analyse
- these statistics.</p>
+ <seealso marker="runtime_tools:msacc"><c>runtime_tools:msacc(3)</c></seealso>
+ can be used to more easily analyse these statistics.</p>
<p>Returns <c>undefined</c> if system flag
<seealso marker="#system_flag_microstate_accounting">
<c>microstate_accounting</c></seealso> is turned off.</p>
@@ -6654,8 +6653,8 @@ ok
<fsummary>Set system flag microstate_accounting.</fsummary>
<desc>
<p><marker id="system_flag_microstate_accounting"></marker>
- Turns on/off microstate accounting measurements. By passing reset,
- all counters can be reset to 0.</p>
+ Turns on/off microstate accounting measurements. When passing reset,
+ all counters are reset to 0.</p>
<p>For more information see
<seealso marker="#statistics_microstate_accounting">
<c>statistics(microstate_accounting)</c></seealso>.</p>
@@ -6685,10 +6684,10 @@ ok
processes. The size is specified in words.
The new <c>min_bin_vhheap_size</c> effects only
processes spawned after the change of
- <c>min_bin_vhheap_size</c> has been made.
+ <c>min_bin_vheap_size</c> has been made.
<c>min_bin_vheap_size</c> can be set for individual
processes by using
- <seealso marker="#spawn_opt/4"><c>spawn_opt/4</c></seealso> or
+ <seealso marker="#spawn_opt/4"><c>spawn_opt/2,3,4</c></seealso> or
<seealso marker="#process_flag/2"><c>process_flag/2</c></seealso>.</p>
<p>Returns the old value of the flag.</p>
</desc>
@@ -6705,7 +6704,7 @@ ok
The size is specified in words. The new <c>max_heap_size</c>
effects only processes spawned efter the change has been made.
<c>max_heap_size</c> can be set for individual processes using
- <seealso marker="#spawn_opt/4"><c>spawn_opt/4</c></seealso> or
+ <seealso marker="#spawn_opt/4"><c>spawn_opt/2,3,4</c></seealso> or
<seealso marker="#process_flag_message_queue_data">
<c>process_flag/2</c></seealso>.</p>
<p>Returns the old value of the flag.</p>
@@ -7253,7 +7252,7 @@ ok
changed by using
<seealso marker="#system_flag/2">
<c>erlang:system_flag/2</c></seealso>.
- <seealso marker="#spawn_opt/4"><c>spawn_opt/4</c></seealso>
+ <seealso marker="#spawn_opt/4"><c>spawn_opt/2,3,4</c></seealso>
can spawn a process that does not use the default
settings.</p>
</item>
@@ -7266,7 +7265,7 @@ ok
<seealso marker="erl#+hmax"><c>+hmax</c></seealso>,
<seealso marker="erl#+hmaxk"><c>+hmaxk</c></seealso> and
<seealso marker="erl#+hmaxel"><c>+hmaxel</c></seealso> in
- <c>erl/1</c>. It can also be changed at runtime using
+ <c>erl(1)</c>. It can also be changed at runtime using
<seealso marker="#system_flag_max_heap_size">
<c>erlang:system_flag(max_heap_size, MaxHeapSize)</c></seealso>.
For more details about the <c>max_heap_size</c> process flag,
@@ -7286,7 +7285,7 @@ ok
process flag, which is either <c>off_heap</c> or <c>on_heap</c>.
This default is set by command-line argument
<seealso marker="erl#+hmqd"><c>+hmqd</c></seealso> in
- <c>erl/1</c>. For more information on the
+ <c>erl(1)</c>. For more information on the
<c>message_queue_data</c> process flag, see documentation of
<seealso marker="#process_flag_message_queue_data">
<c>process_flag(message_queue_data, MQD)</c></seealso>.</p>
@@ -7434,7 +7433,7 @@ ok
of an entry in a node table is delayed. This limit can be set
on startup by passing command-line flag
<seealso marker="erts:erl#+zdntgc"><c>+zdntgc</c></seealso>
- to <c>erl/1</c>. For more information, see the documentation of
+ to <c>erl(1)</c>. For more information, see the documentation of
the command-line flag.</p>
</item>
<tag><c>dirty_cpu_schedulers</c></tag>
@@ -7537,7 +7536,7 @@ ok
in bytes. This limit can be set at startup by passing
command-line flag
<seealso marker="erts:erl#+zdbbl"><c>+zdbbl</c></seealso>
- to <c>erl</c>.</p>
+ to <c>erl(1)</c>.</p>
</item>
<tag><c>dist_ctrl</c></tag>
<item>
@@ -7568,7 +7567,7 @@ ok
(for example, <c>./configure --with-dynamic-trace=dtrace</c>).
For more information about dynamic tracing, see
<seealso marker="runtime_tools:dyntrace">
- <c>runtime_tools:dyntrace</c></seealso> manual page and the
+ <c>runtime_tools:dyntrace(3)</c></seealso> manual page and the
<c>README.dtrace</c>/<c>README.systemtap</c> files in the
Erlang source code top directory.</p>
</item>
@@ -7602,7 +7601,7 @@ ok
<item>
<p>Returns the value of command-line flag
<seealso marker="erl#+secio"><c>+secio</c></seealso> in
- <c>erl/1</c>, which is either <c>true</c> or <c>false</c>.
+ <c>erl(1)</c>, which is either <c>true</c> or <c>false</c>.
For information about the different values, see the
documentation of the command-line flag.</p>
</item>
@@ -8106,7 +8105,7 @@ ok
<p>Returns the number of async threads in the async thread
pool used for asynchronous driver calls
(<seealso marker="erts:erl_driver#driver_async">
- <c>driver_async()</c></seealso>).
+ <c>erl_driver:driver_async()</c></seealso>).
The value is given as an integer.</p>
</item>
<tag><c>time_correction</c></tag>
@@ -8492,8 +8491,8 @@ ok
</item>
</taglist>
<note>
- <p><c>erlang:system_profile</c> is considered experimental
- and its behavior can change in a future release.</p>
+ <p><c>erlang:system_profile</c> behavior can change
+ in a future release.</p>
</note>
</desc>
</func>
@@ -9043,7 +9042,7 @@ timestamp() ->
instead of sending a trace message. The tracer module
can then ignore or change the trace message. For more details
on how to write a tracer module, see
- <seealso marker="erts:erl_tracer"><c>erl_tracer</c></seealso>.</p>
+ <seealso marker="erts:erl_tracer"><c>erl_tracer(3)</c></seealso>.</p>
</item>
</taglist>
<p>If no <c>tracer</c> is specified, the calling process
@@ -9400,7 +9399,7 @@ timestamp() ->
<desc>
<p>The delivery of trace messages (generated by
<seealso marker="#trace/3"><c>erlang:trace/3</c></seealso>,
- <seealso marker="kernel:seq_trace"><c>kernel:seq_trace</c></seealso>,
+ <seealso marker="kernel:seq_trace"><c>kernel:seq_trace(3)</c></seealso>,
or <seealso marker="#system_profile/2">
<c>erlang:system_profile/2</c></seealso>)
is dislocated on the time-line
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml
index c1706806fe..a43f51b10a 100644
--- a/erts/doc/src/erts_alloc.xml
+++ b/erts/doc/src/erts_alloc.xml
@@ -35,7 +35,7 @@
<description>
<p><c>erts_alloc</c> is an Erlang runtime system internal memory
allocator library. <c>erts_alloc</c> provides the Erlang
- runtiime system with a number of memory allocators.</p>
+ runtime system with a number of memory allocators.</p>
</description>
<section>
@@ -67,7 +67,7 @@
<item>A fast allocator used for some frequently used
fixed size data types.</item>
<tag><c>exec_alloc</c></tag>
- <item>Allocator used by the <seealso marker="hipe"><c>HiPE</c></seealso>
+ <item>Allocator used by the <seealso marker="hipe:HiPE_app"><c>HiPE</c></seealso>
application for native executable code on specific architectures
(x86_64).</item>
<tag><c>std_alloc</c></tag>
@@ -330,14 +330,9 @@
the flag is <c>false</c>, <c>mseg_alloc</c> tries to create carriers
outside of the super carrier when the super carrier is full.</p>
<note>
- <p>Setting this flag to <c>false</c> is possibly not supported
+ <p>Setting this flag to <c>false</c> is not supported
on all systems. The flag is then ignored.</p>
</note>
- <note>
- <p>The super carrier cannot be enabled or
- disabled on halfword heap systems. This flag is
- ignored on halfword heap systems.</p>
- </note>
</item>
<tag><marker id="MMscrfsd"/><c><![CDATA[+MMscrfsd <amount>]]></c></tag>
<item>
@@ -372,11 +367,6 @@
<p>Setting this flag to <c>false</c> is possibly not supported on
all systems. The flag is then ignored.</p>
</note>
- <note>
- <p>The super carrier cannot be enabled or
- disabled on halfword heap systems. This flag is
- ignored on halfword heap systems.</p>
- </note>
</item>
<tag><marker id="MMscs"/><c><![CDATA[+MMscs <size in MB>]]></c></tag>
<item>
@@ -387,11 +377,6 @@
carrier if it exists. Notice that the <c>alloc_util</c> framework
can create <c>sys_alloc</c> carriers. For more information, see
<seealso marker="#MMsco"><c>+MMsco</c></seealso>.</p>
- <note>
- <p>The super carrier cannot be enabled or
- disabled on halfword heap systems. This flag is
- ignored on halfword heap systems.</p>
- </note>
</item>
<tag><marker id="MMmcs"/><c><![CDATA[+MMmcs <amount>]]></c></tag>
<item>
@@ -476,7 +461,7 @@
utilization value used. Once a carrier is abandoned, no new
allocations are made in it. When an allocator instance gets an
increased multiblock carrier need, it first tries to fetch an
- abandoned carrier from an allocator instances of the same
+ abandoned carrier from an allocator instance of the same
allocator type. If no abandoned carrier can be fetched, it
creates a new empty carrier. When an abandoned carrier has been
fetched, it will function as an ordinary carrier. This feature has
@@ -689,7 +674,7 @@
<item>
<p><c>exec_alloc</c> super carrier size (in MB). The amount of
<em>virtual</em> address space reserved for native executable code
- used by the <seealso marker="hipe"><c>HiPE</c></seealso> application
+ used by the <seealso marker="hipe:HiPE_app"><c>HiPE</c></seealso> application
on specific architectures (x86_64). Defaults to <c>512</c>.</p>
</item>
</taglist>
diff --git a/erts/doc/src/inet_cfg.xml b/erts/doc/src/inet_cfg.xml
index 37653a08e9..3b104a0032 100644
--- a/erts/doc/src/inet_cfg.xml
+++ b/erts/doc/src/inet_cfg.xml
@@ -68,7 +68,7 @@
<c>/etc/host.conf</c> and <c>/etc/nsswitch.conf</c>) in these modes,
except for <c>/etc/resolv.conf</c> and <c>/etc/hosts</c> that is read and
monitored for changes on Unix platforms for the internal DNS client
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>.</p>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>.</p>
<p>If Erlang is started in long name distributed mode, it needs to
get the domain name from somewhere and reads system <c>inet</c>
@@ -138,7 +138,7 @@
<p><c><![CDATA[File = string()]]></c></p>
<p>Specify a system file that Erlang is to read resolver
configuration from for the internal DNS client
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>,
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>,
and monitor for changes, even if it does not exist.
The path must be absolute.</p>
<p>This can override the configuration parameters
@@ -200,7 +200,7 @@
<p><c><![CDATA[Port = integer()]]></c></p>
<p>Add address (and port, if other than default) of the primary
nameserver to use for
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>.
</p>
</item>
<tag><c><![CDATA[{alt_nameserver, IP [,Port]}.]]></c></tag>
@@ -209,14 +209,14 @@
<p><c><![CDATA[Port = integer()]]></c></p>
<p>Add address (and port, if other than default) of the secondary
nameserver for
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>.
</p>
</item>
<tag><c><![CDATA[{search, Domains}.]]></c></tag>
<item>
<p><c><![CDATA[Domains = [string()]]]></c></p>
<p>Add search domains for
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>.
</p>
</item>
<tag><c><![CDATA[{lookup, Methods}.]]></c></tag>
@@ -229,7 +229,7 @@
<item><c><![CDATA[file]]></c> (use host data retrieved from system
configuration files and/or the user configuration file)</item>
<item><c><![CDATA[dns]]></c> (use the Erlang DNS client
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
for nameserver queries)</item>
</list>
<p>The lookup method <c><![CDATA[string]]></c> tries to
@@ -249,7 +249,7 @@
<item>
<p><c><![CDATA[Time = integer()]]></c></p>
<p>Set how often (in milliseconds) the resolver cache for
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
is refreshed (that is, expired DNS records are deleted).
Defaults to 1 hour.</p>
</item>
@@ -258,28 +258,28 @@
<p><c><![CDATA[Time = integer()]]></c></p>
<p>Set the time to wait until retry (in milliseconds) for DNS queries
made by
- <seealso marker="kernel:inet_res"><c>kernel;inet_res</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>.
Defaults to 2 seconds.</p>
</item>
<tag><c><![CDATA[{retry, N}.]]></c></tag>
<item>
<p><c><![CDATA[N = integer()]]></c></p>
<p>Set the number of DNS queries
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
will try before giving up. Defaults to 3.</p>
</item>
<tag><c><![CDATA[{inet6, Bool}.]]></c></tag>
<item>
<p><c><![CDATA[Bool = true | false]]></c></p>
<p>Tells the DNS client
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
to look up IPv6 addresses. Defaults to <c>false</c>.</p>
</item>
<tag><c><![CDATA[{usevc, Bool}.]]></c></tag>
<item>
<p><c><![CDATA[Bool = true | false]]></c></p>
<p>Tells the DNS client
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
to use TCP (Virtual Circuit) instead of UDP. Defaults to
<c>false</c>.</p>
</item>
@@ -287,7 +287,7 @@
<item>
<p><c><![CDATA[Version = false | 0]]></c></p>
<p>Sets the EDNS version that
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
will use. The only allowed version is zero. Defaults to <c>false</c>,
which means not to use EDNS.</p>
</item>
@@ -295,7 +295,7 @@
<item>
<p><c><![CDATA[N = integer()]]></c></p>
<p>Sets the allowed UDP payload size
- <seealso marker="kernel:inet_res"><c>kernel:inet_res</c></seealso>
+ <seealso marker="kernel:inet_res"><c>kernel:inet_res(3)</c></seealso>
will advertise in EDNS queries. Also sets the limit
when the DNS query will be deemed too large for UDP
forcing a TCP query instead; this is not entirely
diff --git a/erts/doc/src/match_spec.xml b/erts/doc/src/match_spec.xml
index ee50815fde..1b297c5d29 100644
--- a/erts/doc/src/match_spec.xml
+++ b/erts/doc/src/match_spec.xml
@@ -142,7 +142,7 @@
</list>
<p>A match specification used in
- <seealso marker="stdlib:ets"><c>stdlib:ets</c></seealso>
+ <seealso marker="stdlib:ets"><c>stdlib:ets(3)</c></seealso>
can be described in the following <em>informal</em> grammar:</p>
<list type="bulleted">
@@ -436,9 +436,8 @@
Erlang term on <c>stdout</c>, which is seldom what is wanted.
Returns <c><![CDATA[true]]></c> and can only be used in the
<c><![CDATA[MatchBody]]></c> part when tracing.</p>
- <marker id="get_tcw"></marker>
</item>
- <tag><c>get_tcw</c></tag>
+ <tag><marker id="get_tcw"/><c>get_tcw</c></tag>
<item>
<p>Takes no argument and returns the value of the node's trace
control word. The same is done by
@@ -447,9 +446,8 @@
generic trace control. The trace control word can be tested and
set both from within trace match specifications and with BIFs.
This call is only allowed when tracing.</p>
- <marker id="set_tcw"></marker>
</item>
- <tag><c>set_tcw</c></tag>
+ <tag><marker id="set_tcw"/><c>set_tcw</c></tag>
<item>
<p>Takes one unsigned integer argument, sets the value of
the node's trace control word to the value of the argument,
@@ -481,7 +479,7 @@
<note>
<p>All "function calls" must be tuples, even if they take no arguments.
- The value of <c><![CDATA[self]]></c> is the atom()
+ The value of <c><![CDATA[self]]></c> is the atom()
<c><![CDATA[self]]></c>, but the value of <c><![CDATA[{self}]]></c> is
the pid() of the current process.</p>
</note>
@@ -770,7 +768,7 @@
{'_', [], [{set_seq_token, label, 4711}]}]
]]></code>
- <p>As can be noted above, the parameter list can be matched aginst a
+ <p>As can be noted above, the parameter list can be matched against a
single <c><![CDATA[MatchVariable]]></c> or an <c><![CDATA['_']]></c>.
To replace the whole parameter list with a single variable is a special
case. In all other cases the <c><![CDATA[MatchHead]]></c> must be a
@@ -864,8 +862,8 @@
['$_']}]
]]></code>
- <p>Function <c><![CDATA[ets:test_ms/2]]></c> can be useful for testing
- complicated <c>ets</c> matches.</p>
+ <p>Function <seealso marker="stdlib:ets#test_ms/2"><c>ets:test_ms/2></c></seealso>
+ can be useful for testing complicated <c>ets</c> matches.</p>
</section>
</chapter>
diff --git a/erts/doc/src/ref_man.xml b/erts/doc/src/ref_man.xml
index e3f7b1692b..0617463a7b 100644
--- a/erts/doc/src/ref_man.xml
+++ b/erts/doc/src/ref_man.xml
@@ -32,7 +32,6 @@
<description>
</description>
<xi:include href="erl_prim_loader.xml"/>
- <xi:include href="erl_tracer.xml"/>
<xi:include href="erlang.xml"/>
<xi:include href="init.xml"/>
<xi:include href="zlib.xml"/>
@@ -49,5 +48,6 @@
<xi:include href="driver_entry.xml"/>
<xi:include href="erts_alloc.xml"/>
<xi:include href="erl_nif.xml"/>
+ <xi:include href="erl_tracer.xml"/>
</application>
diff --git a/erts/doc/src/run_erl.xml b/erts/doc/src/run_erl.xml
index 21a7f86011..4780c00ea4 100644
--- a/erts/doc/src/run_erl.xml
+++ b/erts/doc/src/run_erl.xml
@@ -33,9 +33,9 @@
<file>run_erl.xml</file>
</header>
<com>run_erl</com>
- <comsummary>Redirect Erlang input and output streams on Solaris.</comsummary>
+ <comsummary>Redirect Erlang input and output streams on Unix systems.</comsummary>
<description>
- <p>The <c><![CDATA[run_erl]]></c> program is specific to Solaris/Linux.
+ <p>The <c><![CDATA[run_erl]]></c> program is specific to Unix systems.
This program redirects the standard input and standard
output streams so that all output can be logged. It also lets the
program <c><![CDATA[to_erl]]></c> connect to the Erlang console, making
@@ -85,7 +85,7 @@
of the standard streams from and to the command. (Both the
number of logs and sizes can be changed by environment
variables, see section <seealso
- marker="environment_variables">Environment Variables</seealso>
+ marker="#environment_variables">Environment Variables</seealso>
below.)</p>
<p>When the logs are full, <c><![CDATA[run_erl]]></c> deletes
and reuses the oldest log file.</p>
diff --git a/erts/doc/src/time_correction.xml b/erts/doc/src/time_correction.xml
index dbaae4d852..8042ad3b99 100644
--- a/erts/doc/src/time_correction.xml
+++ b/erts/doc/src/time_correction.xml
@@ -247,7 +247,7 @@
everything that has anything to do with time. All timers,
regardless of it is a <c>receive ... after</c> timer, BIF timer,
or a timer in the
- <seealso marker="stdlib:timer"><c>stdlib:timer</c></seealso>
+ <seealso marker="stdlib:timer"><c>stdlib:timer(3)</c></seealso>
module, are triggered relative Erlang monotonic time. Even
<seealso marker="#Erlang_System_Time">Erlang system
time</seealso> is based on Erlang monotonic time.
@@ -769,7 +769,7 @@
Take time stamps with <c>erlang:now/0</c> and calculate
the difference in time with
<seealso marker="stdlib:timer#now_diff/2">
- <c>timer:now_diff/2</c></seealso> in <c>STDLIB</c>.
+ <c>timer:now_diff/2</c></seealso>.
</p>
</dont>
<do>
@@ -915,7 +915,7 @@ EventTag = {Time, UMI}</code>
<p>It can be required that your code must run on a variety
of OTP installations of different OTP releases. If so, you
cannot use the new API out of the box, as it will
- not be available on old pre-OTP 18 releases. The solution
+ not be available on releases before OTP 18. The solution
is <em>not</em> to avoid using the new API, as your
code would then not benefit from the scalability
and accuracy improvements made. Instead, use the
diff --git a/erts/doc/src/werl.xml b/erts/doc/src/werl.xml
index 995095c0d8..792fe204e8 100644
--- a/erts/doc/src/werl.xml
+++ b/erts/doc/src/werl.xml
@@ -43,7 +43,7 @@
<p>This starts Erlang in its own window, with fully
functioning command-line editing and scrollbars. All flags
except <c><![CDATA[-oldshell]]></c> work as they do for
- command <seealso marker="erl"><c>erl</c></seealso>.</p>
+ <seealso marker="erl"><c>erl(1)</c></seealso>.</p>
<list type="bulleted">
<item>