aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
diff options
context:
space:
mode:
Diffstat (limited to 'erts/doc')
-rw-r--r--erts/doc/src/absform.xml18
-rw-r--r--erts/doc/src/alt_dist.xml10
-rw-r--r--erts/doc/src/communication.xml4
-rw-r--r--erts/doc/src/crash_dump.xml10
-rw-r--r--erts/doc/src/driver_entry.xml10
-rw-r--r--erts/doc/src/epmd.xml11
-rw-r--r--erts/doc/src/erl.xml92
-rw-r--r--erts/doc/src/erl_dist_protocol.xml10
-rw-r--r--erts/doc/src/erl_driver.xml20
-rw-r--r--erts/doc/src/erl_ext_dist.xml10
-rw-r--r--erts/doc/src/erl_nif.xml18
-rw-r--r--erts/doc/src/erl_prim_loader.xml14
-rw-r--r--erts/doc/src/erl_tracer.xml2
-rw-r--r--erts/doc/src/erlang.xml192
-rw-r--r--erts/doc/src/erlc.xml6
-rw-r--r--erts/doc/src/erlsrv.xml2
-rw-r--r--erts/doc/src/erts_alloc.xml20
-rw-r--r--erts/doc/src/escript.xml6
-rw-r--r--erts/doc/src/inet_cfg.xml30
-rw-r--r--erts/doc/src/init.xml12
-rw-r--r--erts/doc/src/introduction.xml2
-rw-r--r--erts/doc/src/match_spec.xml14
-rw-r--r--erts/doc/src/notes.xml372
-rw-r--r--erts/doc/src/run_erl.xml13
-rw-r--r--erts/doc/src/start_erl.xml2
-rw-r--r--erts/doc/src/time_correction.xml10
26 files changed, 666 insertions, 244 deletions
diff --git a/erts/doc/src/absform.xml b/erts/doc/src/absform.xml
index 174ad9c640..ab00d47425 100644
--- a/erts/doc/src/absform.xml
+++ b/erts/doc/src/absform.xml
@@ -41,21 +41,21 @@
<list type="bulleted">
<item><seealso marker="stdlib:epp">
- <c>stdlib:epp(3)</c></seealso></item>
+ <c>epp(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_eval">
- <c>stdlib:erl_eval(3)</c></seealso></item>
+ <c>erl_eval(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_lint">
- <c>stdlib:erl_lint(3)</c></seealso></item>
+ <c>erl_lint(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_parse">
- <c>sdlib:erl_parse(3)</c></seealso></item>
+ <c>erl_parse(3)</c></seealso></item>
<item><seealso marker="stdlib:erl_pp">
- <c>stdlib:erl_pp(3)</c></seealso></item>
+ <c>erl_pp(3)</c></seealso></item>
<item><seealso marker="stdlib:io">
- <c>stdlib:io(3)</c></seealso></item>
+ <c>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(3)</c></seealso>
+ the <seealso marker="compiler:compile"><c>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(3)</c></seealso> and
- <seealso marker="stdlib:erl_parse"><c>sdlib:erl_parse(3)</c></seealso>)
+ <seealso marker="stdlib:epp"><c>epp(3)</c></seealso> and
+ <seealso marker="stdlib:erl_parse"><c>erl_parse(3)</c></seealso>)
can contain the following:</p>
<list type="bulleted">
diff --git a/erts/doc/src/alt_dist.xml b/erts/doc/src/alt_dist.xml
index f3e3260230..be969a8267 100644
--- a/erts/doc/src/alt_dist.xml
+++ b/erts/doc/src/alt_dist.xml
@@ -40,7 +40,7 @@
<p>The section is a step-by-step explanation of the
<c><![CDATA[uds_dist]]></c> example application (in the
- <c>Kernel</c> application <c><![CDATA[examples]]></c> directory). The
+ Kernel application <c><![CDATA[examples]]></c> directory). The
<c><![CDATA[uds_dist]]></c> application implements distribution over Unix
domain sockets and is written for the Sun Solaris 2 operating environment.
The mechanisms are however general and apply to any operating system Erlang
@@ -379,15 +379,15 @@
(line 40) can be used to implement an interface similar to
Unix <c><![CDATA[writev]]></c> for output. The Erlang runtime
system could previously not use <c>outputv</c> for the
- distribution, but it can as from <c>ERTS</c> 5.7.2.
- As this driver was written before <c>ERTS</c> 5.7.2 it does
+ distribution, but it can as from ERTS 5.7.2.
+ As this driver was written before ERTS 5.7.2 it does
not use the <c>outputv</c> callback. Using the <c>outputv</c>
callback is preferred, as it reduces copying of data. (We
will however use scatter/gather I/O internally in the driver.)</p>
- <p>As from <c>ERTS</c> 5.5.3 the driver interface was extended with
+ <p>As from ERTS 5.5.3 the driver interface was extended with
version control and the possibility to pass capability information.
- Capability flags are present on line 48. As from <c>ERTS</c> 5.7.4 flag
+ Capability flags are present on line 48. As from ERTS 5.7.4 flag
<seealso marker="driver_entry#driver_flags">
<c>ERL_DRV_FLAG_SOFT_BUSY</c></seealso> is required for drivers that
are to be used by the distribution. The soft busy flag implies that the
diff --git a/erts/doc/src/communication.xml b/erts/doc/src/communication.xml
index 632ca6c212..7e18a73aa8 100644
--- a/erts/doc/src/communication.xml
+++ b/erts/doc/src/communication.xml
@@ -89,9 +89,9 @@
<p>Examples of major implementation changes:</p>
<list type="bulleted">
- <item>As from <c>ERTS</c> 5.5.2 exit signals to processes are truly
+ <item>As from ERTS 5.5.2 exit signals to processes are truly
asynchronously delivered.</item>
- <item>As from <c>ERTS</c> 5.10 all signals from processes to ports
+ <item>As from ERTS 5.10 all signals from processes to ports
are truly asynchronously delivered.</item>
</list>
</section>
diff --git a/erts/doc/src/crash_dump.xml b/erts/doc/src/crash_dump.xml
index d55ab222a7..a9aeb1888c 100644
--- a/erts/doc/src/crash_dump.xml
+++ b/erts/doc/src/crash_dump.xml
@@ -39,7 +39,7 @@
<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 <seealso marker="observer:crashdump_viewer">
- <c>observer:crashdump_viewer(3)</c></seealso> on older dumps,
+ <c>crashdump_viewer(3)</c></seealso> on older dumps,
the crash dumps are translated into a format similar to this.</p>
</note>
@@ -57,7 +57,7 @@
cause is external limitations, such as running out of memory. A
crash dump caused by an internal error can be caused by the system
reaching limits in the emulator itself (like the number of atoms
- in the system, or too many simultaneous <c>ets</c> tables). Usually the
+ in the system, or too many simultaneous ETS tables). Usually the
emulator or the operating system can be reconfigured to avoid the
crash, which is why interpreting the crash dump correctly is
important.</p>
@@ -133,7 +133,7 @@ Slogan: &lt;reason&gt;</pre>
&lt;Name&gt;:&lt;Name&gt;/1 <c><![CDATA[|]]></c> No function
&lt;Name&gt;:start/2</em></tag>
<item>
- <p>The <c>Kernel</c>/<c>STDLIB</c> applications are
+ <p>The Kernel/STDLIB applications are
damaged or the start script is damaged.</p>
</item>
<tag><em>Driver_select called with too large file descriptor
@@ -199,7 +199,7 @@ Slogan: &lt;reason&gt;</pre>
are still connected to an application failure. There is much
more information available, so a thorough reading of the
crash dump can reveal the crash reason. The size of processes,
- the number of <c>ets</c> tables, and the Erlang data on each process
+ the number of ETS tables, and the Erlang data on each process
stack can be useful to find the problem.</p>
</section>
@@ -481,7 +481,7 @@ Slogan: &lt;reason&gt;</pre>
<section>
<marker id="ets_tables"></marker>
<title>ETS Tables</title>
- <p>This section contains information about all the <c>ets</c> tables in
+ <p>This section contains information about all the ETS tables in
the system. The following fields are of interest for each table:</p>
<taglist>
diff --git a/erts/doc/src/driver_entry.xml b/erts/doc/src/driver_entry.xml
index dea003f091..2421e0a8d9 100644
--- a/erts/doc/src/driver_entry.xml
+++ b/erts/doc/src/driver_entry.xml
@@ -4,7 +4,7 @@
<cref>
<header>
<copyright>
- <year>2001</year><year>2015</year>
+ <year>2001</year><year>2016</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -67,7 +67,7 @@
</list>
</warning>
- <p>As from <c>ERTS</c> 5.9 (Erlang/OTP R15B) the driver interface
+ <p>As from ERTS 5.9 (Erlang/OTP R15B) the driver interface
has been changed with larger types for the callbacks
<seealso marker="#output"><c>output</c></seealso>,
<seealso marker="#control"><c>control</c></seealso>, and
@@ -78,7 +78,7 @@
<note>
<p>Old drivers (compiled with an <c>erl_driver.h</c> from an
- <c>ERTS</c> version earlier than 5.9) must be updated and have
+ ERTS version earlier than 5.9) must be updated and have
to use the extended interface (with
<seealso marker="erl_driver#version_management">version management
</seealso>).</p>
@@ -481,7 +481,7 @@ typedef struct erl_drv_entry {
although a driver instance has marked itself as busy (see
<seealso marker="erl_driver#set_busy_port">
<c>erl_driver:set_busy_port</c></seealso>).
- As from <c>ERTS</c> 5.7.4 this flag is required for drivers used
+ As from ERTS 5.7.4 this flag is required for drivers used
by the Erlang distribution (the behavior has always been
required by drivers used by the distribution).</p>
</item>
@@ -558,7 +558,7 @@ typedef struct erl_drv_entry {
<title>See Also</title>
<p><seealso marker="erl_driver"><c>erl_driver(3)</c></seealso>,
<seealso marker="erlang"><c>erlang(3)</c></seealso>,
- <seealso marker="kernel:erl_ddll"><c>kernel:erl_ddll(3)</c></seealso></p>
+ <seealso marker="kernel:erl_ddll"><c>erl_ddll(3)</c></seealso></p>
</section>
</cref>
diff --git a/erts/doc/src/epmd.xml b/erts/doc/src/epmd.xml
index 120ffb6860..311483022d 100644
--- a/erts/doc/src/epmd.xml
+++ b/erts/doc/src/epmd.xml
@@ -34,24 +34,23 @@
</header>
<com>epmd</com>
- <comsummary>
- <p>Erlang Port Mapper Daemon</p>
+ <comsummary>Erlang Port Mapper Daemon</comsummary>
+
+ <description>
<taglist>
<tag><c><![CDATA[epmd [-d|-debug] [DbgExtra...] [-address Addresses]
- [-port No] [-daemon] [-relaxed_command_check]]]></c></tag>
+ [-port No] [-daemon] [-relaxed_command_check]]]></c></tag>
<item>
<p>Starts the port mapper daemon.</p>
</item>
<tag><c><![CDATA[epmd [-d|-debug] [-port No]
- [-names|-kill|-stop Name]]]></c></tag>
+ [-names|-kill|-stop Name]]]></c></tag>
<item>
<p>Communicates with a running port mapper daemon.</p>
</item>
</taglist>
- </comsummary>
- <description>
<p>This daemon acts as a name server on all hosts involved in
distributed Erlang computations. When an Erlang node starts,
the node has a name and it obtains an address from the host
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index 1578d40ef8..eb1d24cf12 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -46,7 +46,7 @@
you want to redirect standard input or output.</p>
<note>
- <p>As from <c>ERTS</c> 5.9 (Erlang/OTP R15B) the runtime system does by
+ <p>As from ERTS 5.9 (Erlang/OTP R15B) the runtime system does by
default <em>not</em> bind schedulers to logical processors.
For more information, see system flag
<seealso marker="#+sbt"><c>+sbt</c></seealso>.</p>
@@ -103,7 +103,7 @@
emulator flags. <c><![CDATA[-s my_init]]></c> is an init flag,
interpreted by <c><![CDATA[init]]></c>.
<c><![CDATA[-sname arnie]]></c> is a user flag, stored by
- <c><![CDATA[init]]></c>. It is read by <c>Kernel</c> and causes the
+ <c><![CDATA[init]]></c>. It is read by Kernel and causes the
Erlang runtime system to become distributed. Finally, everything after
<c><![CDATA[-extra]]></c> (that is, <c><![CDATA[+bertie]]></c>) is
considered as plain arguments.</p>
@@ -143,9 +143,9 @@
<p>Sets the application configuration parameter <c><![CDATA[Par]]></c>
to the value <c><![CDATA[Val]]></c> for the application
<c><![CDATA[Application]]></c>; see
- <seealso marker="kernel:app"><c>kernel:app(4)</c></seealso> and
+ <seealso marker="kernel:app"><c>app(4)</c></seealso> and
<seealso marker="kernel:application">
- <c>kernel:application(3)</c></seealso>.</p>
+ <c>application(3)</c></seealso>.</p>
</item>
<tag><marker id="args_file"/><c><![CDATA[-args_file FileName]]></c></tag>
<item>
@@ -192,12 +192,12 @@
<c><![CDATA[Dir]]></c>. Used when applications are installed in
another directory than <c><![CDATA[$ROOT/lib]]></c>; see
<seealso marker="sasl:systools#make_script/1">
- <c>systools:make_script/1,2</c></seealso> in <c>SASL</c>.</p>
+ <c>systools:make_script/1,2</c></seealso> in SASL.</p>
</item>
<tag><c><![CDATA[-code_path_cache]]></c></tag>
<item>
<p>Enables the code path cache of the code server; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-compile Mod1 Mod2 ...]]></c></tag>
<item>
@@ -212,16 +212,16 @@
<p>Specifies the name of a configuration file,
<c><![CDATA[Config.config]]></c>, which is used to configure
applications; see
- <seealso marker="kernel:app"><c>kernel:app(4)</c></seealso> and
+ <seealso marker="kernel:app"><c>app(4)</c></seealso> and
<seealso marker="kernel:application">
- <c>kernel:application(3)</c></seealso>.</p>
+ <c>application(3)</c></seealso>.</p>
</item>
<tag><marker id="connect_all"/><c><![CDATA[-connect_all false]]></c></tag>
<item>
<p>If this flag is present, <c><![CDATA[global]]></c> does not maintain
a fully connected network of distributed Erlang nodes, and then
global name registration cannot be used; see
- <seealso marker="kernel:global"><c>kernel:global(3)</c></seealso>.</p>
+ <seealso marker="kernel:global"><c>global(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-cookie Cookie]]></c></tag>
<item>
@@ -266,7 +266,7 @@
<item>
<p>Starts heartbeat monitoring of the Erlang runtime system;
see <seealso marker="kernel:heart">
- <c>kernel:heart(3)</c></seealso>.</p>
+ <c>heart(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-hidden]]></c></tag>
<item>
@@ -278,13 +278,13 @@
nodes are part of the result from <c><![CDATA[nodes/0]]></c> on the
other node. See also hidden global groups;
<seealso marker="kernel:global_group">
- <c>kernel:global_group(3)</c></seealso>.</p>
+ <c>global_group(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-hosts Hosts]]></c></tag>
<item>
<p>Specifies the IP addresses for the hosts on which Erlang boot servers
are running, see <seealso marker="kernel:erl_boot_server">
- <c>kernel:erl_boot_server(3)</c></seealso>. This flag
+ <c>erl_boot_server(3)</c></seealso>. This flag
is mandatory if flag <c><![CDATA[-loader inet]]></c> is present.</p>
<p>The IP addresses must be specified in the standard form (four
decimal numbers separated by periods, for example,
@@ -338,7 +338,7 @@
<item>
<p>Makes the Erlang runtime system invoke <c><![CDATA[make:all()]]></c>
in the current working directory and then terminate; see
- <seealso marker="tools:make"><c>tools:make(3)</c></seealso>. Implies
+ <seealso marker="tools:make"><c>make(3)</c></seealso>. Implies
<c><![CDATA[-noinput]]></c>.</p>
</item>
<tag><c><![CDATA[-man Module]]></c></tag>
@@ -351,7 +351,7 @@
<p>Indicates if the system is to load code dynamically
(<c><![CDATA[interactive]]></c>), or if all code is to be loaded
during system initialization (<c><![CDATA[embedded]]></c>); see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.
Defaults to <c><![CDATA[interactive]]></c>.</p>
</item>
<tag><c><![CDATA[-name Name]]></c></tag>
@@ -359,7 +359,7 @@
<p>Makes the Erlang runtime system into a distributed node.
This flag invokes all network servers necessary for a node to
become distributed; see <seealso marker="kernel:net_kernel">
- <c>kernel:net_kernel(3)</c></seealso>. It is also ensured that
+ <c>net_kernel(3)</c></seealso>. It is also ensured that
<c><![CDATA[epmd]]></c> runs on the current host before Erlang is
started; see <seealso marker="epmd"><c>epmd(1)</c></seealso>.and the
<seealso marker="#start_epmd"><c>-start_epmd</c></seealso> option.</p>
@@ -383,7 +383,7 @@
<item>
<p>Disables the sticky directory facility of the Erlang code
server; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-oldshell]]></c></tag>
<item>
@@ -393,24 +393,26 @@
<tag><c><![CDATA[-pa Dir1 Dir2 ...]]></c></tag>
<item>
<p>Adds the specified directories to the beginning of the code
- path, similar to <c><![CDATA[code:add_pathsa/1]]></c>; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.
- As an alternative to <c>-pa</c>, if several directories are
+ path, similar to <seealso marker="kernel:code#add_pathsa/1">
+ <c><![CDATA[code:add_pathsa/1]]></c></seealso>. Note that the
+ order of the given directories will be reversed in the
+ resulting path.</p>
+ <p>As an alternative to <c>-pa</c>, if several directories are
to be prepended to the code path and the directories have a
common parent directory, that parent directory can be
specified in environment variable <c>ERL_LIBS</c>; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-pz Dir1 Dir2 ...]]></c></tag>
<item>
<p>Adds the specified directories to the end of the code path,
similar to <c><![CDATA[code:add_pathsz/1]]></c>; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-path Dir1 Dir2 ...]]></c></tag>
<item>
<p>Replaces the path specified in the boot script; see
- <seealso marker="sasl:script"><c>sasl:script(4)</c></seealso>.</p>
+ <seealso marker="sasl:script"><c>script(4)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-proto_dist Proto]]></c></tag>
<item>
@@ -436,7 +438,7 @@
<item>
<p>Specifies an alternative to <c><![CDATA[rsh]]></c> for starting a
slave node on a remote host; see
- <seealso marker="stdlib:slave"><c>stdlib:slave(3)</c></seealso>.</p>
+ <seealso marker="stdlib:slave"><c>slave(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[-run Mod [Func [Arg1, Arg2, ...]]]]></c> (init
flag)</tag>
@@ -612,11 +614,11 @@
</item>
<tag><marker id="+e"/><c><![CDATA[+e Number]]></c></tag>
<item>
- <p>Sets the maximum number of <c>ets</c> tables.</p>
+ <p>Sets the maximum number of ETS tables.</p>
</item>
<tag><c><![CDATA[+ec]]></c></tag>
<item>
- <p>Forces option <c>compressed</c> on all <c>ets</c> tables.
+ <p>Forces option <c>compressed</c> on all ETS tables.
Only intended for test and evaluation.</p>
</item>
<tag><marker id="file_name_encoding"></marker>
@@ -627,11 +629,11 @@
code points &gt; 255.</p>
<p>For more information about Unicode filenames, see section
<seealso marker="stdlib:unicode_usage#unicode_file_names">Unicode
- Filenames</seealso> in the <c>STDLIB</c> User's Guide. Notice that
+ Filenames</seealso> in the STDLIB User's Guide. Notice that
this value also applies to command-line parameters and environment
variables (see section <seealso
marker="stdlib:unicode_usage#unicode_in_environment_and_parameters">
- Unicode in Enviroment and Parameters</seealso> in the <c>STDLIB</c>
+ Unicode in Enviroment and Parameters</seealso> in the STDLIB
User's Guide).</p>
</item>
<tag><c><![CDATA[+fnu[{w|i|e}]]]></c></tag>
@@ -663,11 +665,11 @@
points to an invalid filename.</p>
<p>For more information about Unicode filenames, see section
<seealso marker="stdlib:unicode_usage#unicode_file_names">Unicode
- Filenames</seealso> in the <c>STDLIB</c> User's Guide. Notice that
+ Filenames</seealso> in the STDLIB User's Guide. Notice that
this value also applies to command-line parameters and environment
variables (see section <seealso
marker="stdlib:unicode_usage#unicode_in_environment_and_parameters">
- Unicode in Enviroment and Parameters</seealso> in the <c>STDLIB</c>
+ Unicode in Enviroment and Parameters</seealso> in the STDLIB
User's Guide).</p>
</item>
<tag><c><![CDATA[+fna[{w|i|e}]]]></c></tag>
@@ -684,11 +686,11 @@
selected, then <c>w</c>, <c>i</c>, or <c>e</c> have no effect.</p>
<p>For more information about Unicode filenames, see section
<seealso marker="stdlib:unicode_usage#unicode_file_names">Unicode
- Filenames</seealso> in the <c>STDLIB</c> User's Guide. Notice that
+ Filenames</seealso> in the STDLIB User's Guide. Notice that
this value also applies to command-line parameters and environment
variables (see section <seealso
marker="stdlib:unicode_usage#unicode_in_environment_and_parameters">
- Unicode in Enviroment and Parameters</seealso> in the <c>STDLIB</c>
+ Unicode in Enviroment and Parameters</seealso> in the STDLIB
User's Guide).</p>
</item>
<tag><c><![CDATA[+hms Size]]></c></tag>
@@ -783,7 +785,7 @@
example, your font does not cover all Unicode characters.</item>
</taglist>
<p>See also <seealso marker="stdlib:io#printable_range/0">
- <c>io:printable_range/0</c></seealso> in <c>STDLIB</c>.</p>
+ <c>io:printable_range/0</c></seealso> in STDLIB.</p>
</item>
<tag><marker id="+P"/><marker id="max_processes"/><c><![CDATA[+P Number]]></c></tag>
<item>
@@ -838,7 +840,7 @@
</item>
<tag><c><![CDATA[+r]]></c></tag>
<item>
- <p>Forces <c>ets</c> memory block to be moved on realloc.</p>
+ <p>Forces ETS memory block to be moved on realloc.</p>
</item>
<tag><marker id="+rg"/><c><![CDATA[+rg ReaderGroupsLimit]]></c></tag>
<item>
@@ -1268,7 +1270,7 @@
<item>
<p>Enables or disables eager check I/O scheduling. Defaults
to <c>true</c>. The default was changed from <c>false</c>
- as from <c>ERTS</c> 7.0. The behavior before this
+ as from ERTS 7.0. The behavior before this
flag was introduced corresponds to <c>+secio false</c>.</p>
<p>The flag effects when schedulers will check for I/O
operations possible to execute, and when such I/O operations
@@ -1365,7 +1367,7 @@
<tag><marker id="+sws"/><c>+sws default|legacy</c></tag>
<item>
<p>Sets scheduler wakeup strategy. Default strategy changed in
- <c>ERTS</c> 5.10 (Erlang/OTP R16A). This strategy was known as
+ ERTS 5.10 (Erlang/OTP R16A). This strategy was known as
<c>proposal</c> in Erlang/OTP R15. The <c>legacy</c> strategy
was used as default from R13 up to and including R15.</p>
<note>
@@ -1446,7 +1448,7 @@
The current mapping can be retrieved using
<c><![CDATA[error_logger:warning_map/0]]></c>. For more information,
see <seealso marker="kernel:error_logger#warning_map/0">
- <c>error_logger:warning_map/0</c></seealso> in <c>Kernel</c>.</p>
+ <c>error_logger:warning_map/0</c></seealso> in Kernel.</p>
</item>
<tag><c><![CDATA[+zFlag Value]]></c></tag>
<item>
@@ -1515,7 +1517,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(3)</c></seealso> if <c>heart</c> is running:</p>
+ <c>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
@@ -1558,7 +1560,7 @@
<item>
<p>Contains a list of additional library directories that the code
server searches for applications and adds to the code path; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c><![CDATA[ERL_EPMD_ADDRESS]]></c></tag>
<item>
@@ -1631,14 +1633,14 @@ code:load_abs("..../user_default"). ]]></code>
<seealso marker="erts_alloc"><c>erts_alloc(3)</c></seealso>,
<seealso marker="init"><c>init(3)</c></seealso>,
<seealso marker="kernel:application">
- <c>kernel:application(3)</c></seealso>,
- <seealso marker="kernel:auth"><c>kernel:auth(3)</c></seealso>,
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>,
+ <c>application(3)</c></seealso>,
+ <seealso marker="kernel:auth"><c>auth(3)</c></seealso>,
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>,
<seealso marker="kernel:erl_boot_server">
- <c>kernel:erl_boot_server(3)</c></seealso>,
- <seealso marker="kernel:heart"><c>kernel:heart(3)</c></seealso>,
- <seealso marker="kernel:net_kernel"><c>kernel:net_kernel(3)</c></seealso>,
- <seealso marker="tools:make"><c>tools:make(3)</c></seealso></p>
+ <c>erl_boot_server(3)</c></seealso>,
+ <seealso marker="kernel:heart"><c>heart(3)</c></seealso>,
+ <seealso marker="kernel:net_kernel"><c>net_kernel(3)</c></seealso>,
+ <seealso marker="tools:make"><c>make(3)</c></seealso></p>
</section>
</comref>
diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml
index a5949ce15f..ee74983730 100644
--- a/erts/doc/src/erl_dist_protocol.xml
+++ b/erts/doc/src/erl_dist_protocol.xml
@@ -5,7 +5,7 @@
<header>
<copyright>
<year>2007</year>
- <year>2015</year>
+ <year>2016</year>
<holder>Ericsson AB, All Rights Reserved</holder>
</copyright>
<legalnotice>
@@ -48,7 +48,7 @@
</item>
<item>
<p>Authentication (done by <seealso marker="kernel:net_kernel">
- <c>kernel:net_kernel(3)</c></seealso>) (3)</p>
+ <c>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(3)</c></seealso>.
+ <seealso marker="kernel:gen_tcp"><c>gen_tcp(3)</c></seealso>.
Notice that after the handshake, the distribution switches to 4 byte
packet headers.</p>
</section>
@@ -825,7 +825,7 @@ DiB == gen_digest(ChA, ICA)?
<section>
<marker id="connected_nodes"/>
<title>Protocol between Connected Nodes</title>
- <p>As from <c>ERTS</c> 5.7.2 the runtime system passes a distribution flag
+ <p>As from ERTS 5.7.2 the runtime system passes a distribution flag
in the handshake stage that enables the use of a
<seealso marker="erl_ext_dist#distribution_header">distribution header
</seealso> on all messages passed. Messages passed between nodes have in
@@ -869,7 +869,7 @@ DiB == gen_digest(ChA, ICA)?
number is omitted from the terms that follow a distribution header
</seealso>.</p>
- <p>Nodes with an <c>ERTS</c> version earlier than 5.7.2 does not pass the
+ <p>Nodes with an ERTS version earlier than 5.7.2 does not pass the
distribution flag that enables the distribution header. Messages passed
between nodes have in this case the following format:</p>
diff --git a/erts/doc/src/erl_driver.xml b/erts/doc/src/erl_driver.xml
index 8e83b74986..836a58a676 100644
--- a/erts/doc/src/erl_driver.xml
+++ b/erts/doc/src/erl_driver.xml
@@ -71,7 +71,7 @@
</list>
</warning>
- <p>As from <c>ERTS</c> 5.5.3 the driver interface has been extended
+ <p>As from ERTS 5.5.3 the driver interface has been extended
(see <seealso marker="driver_entry#extended_marker">
<c>extended marker</c></seealso>). The extended interface introduces
<seealso marker="#version_management">version management</seealso>,
@@ -81,7 +81,7 @@
initialization, and some new driver API functions.</p>
<note>
- <p>As from <c>ERTS</c> 5.9 old drivers must be recompiled
+ <p>As from ERTS 5.9 old drivers must be recompiled
and use the extended interface. They must also be adjusted to the
<seealso marker="#rewrites_for_64_bits">
64-bit capable driver interface</seealso>.</p>
@@ -406,7 +406,7 @@
<section>
<marker id="rewrites_for_64_bits"/>
<title>Rewrites for 64-Bit Driver Interface</title>
- <p><c>ERTS</c> 5.9 introduced two new integer types,
+ <p>ERTS 5.9 introduced two new integer types,
<seealso marker="#ErlDrvSizeT"><c>ErlDrvSizeT</c></seealso> and
<seealso marker="#ErlDrvSSizeT"><c>ErlDrvSSizeT</c></seealso>,
which can hold 64-bit sizes if necessary.</p>
@@ -423,7 +423,7 @@
to get better warnings. Try to find a similar flag if you use
another compiler.</p>
- <p>The following is a checklist for rewriting a pre <c>ERTS</c> 5.9 driver,
+ <p>The following is a checklist for rewriting a pre ERTS 5.9 driver,
most important first:</p>
<taglist>
@@ -717,7 +717,7 @@ typedef struct ErlDrvBinary {
<p>Notice that as a driver binary is shared by the driver and
the emulator. A binary received from the emulator or sent to
the emulator must not be changed by the driver.</p>
- <p>Since <c>ERTS</c> 5.5 (Erlang/OTP R11B), <c>orig_bytes</c> is
+ <p>Since ERTS 5.5 (Erlang/OTP R11B), <c>orig_bytes</c> is
guaranteed to be properly aligned for storage of an array of
doubles (usually 8-byte aligned).</p>
</item>
@@ -1058,7 +1058,7 @@ r = driver_async(myPort, &myKey, myData, myFunc); ]]></code>
<p>The return value is <c>-1</c> if the <c>driver_async</c> call
fails.</p>
<note>
- <p>As from <c>ERTS</c> 5.5.4.3 the default stack size for
+ <p>As from ERTS 5.5.4.3 the default stack size for
threads in the async-thread pool is 16 kilowords,
that is, 64 kilobyte on 32-bit architectures.
This small default size has been chosen because the
@@ -2534,11 +2534,11 @@ ERL_DRV_MAP int sz</pre>
<p>The unsigned integer data type <c>ErlDrvUInt</c> and the
signed integer data type <c>ErlDrvSInt</c> are 64 bits wide
on a 64-bit runtime system and 32 bits wide on a 32-bit
- runtime system. They were introduced in <c>ERTS</c> 5.6
+ runtime system. They were introduced in ERTS 5.6
and replaced some of the <c>int</c> arguments in the list above.</p>
<p>The unsigned integer data type <c>ErlDrvUInt64</c> and the
signed integer data type <c>ErlDrvSInt64</c> are always 64 bits
- wide. They were introduced in <c>ERTS</c> 5.7.4.</p>
+ wide. They were introduced in ERTS 5.7.4.</p>
<p>To build the tuple <c>{tcp, Port, [100 | Binary]}</c>, the
following call can be made.</p>
<code type="none"><![CDATA[
@@ -2630,7 +2630,7 @@ erl_drv_output_term(driver_mk_port(drvport), spec, sizeof(spec) / sizeof(spec[0]
<c>ERL_DRV_BINARY</c> and the <c>ErlDrvBinary</c> in question.</p>
<p>The <c>ERL_DRV_UINT</c>, <c>ERL_DRV_BUF2BINARY</c>, and
<c>ERL_DRV_EXT2TERM</c> term types were introduced in
- <c>ERTS</c> 5.6.</p>
+ ERTS 5.6.</p>
<p>This function is only thread-safe when the emulator with SMP
support is used.</p>
</desc>
@@ -3213,7 +3213,7 @@ erl_drv_output_term(driver_mk_port(drvport), spec, sizeof(spec) / sizeof(spec[0]
<title>See Also</title>
<p><seealso marker="driver_entry"><c>driver_entry(3)</c></seealso>,
<seealso marker="erlang"><c>erlang(3)</c></seealso>,
- <seealso marker="kernel:erl_ddll"><c>kernel:erl_ddll(3)</c></seealso>,
+ <seealso marker="kernel:erl_ddll"><c>erl_ddll(3)</c></seealso>,
section <seealso marker="alt_dist">How to Implement an Alternative
Carrier for the Erlang Distribution></seealso> in the User's Guide</p>
</section>
diff --git a/erts/doc/src/erl_ext_dist.xml b/erts/doc/src/erl_ext_dist.xml
index fed41098f8..4f799f8f34 100644
--- a/erts/doc/src/erl_ext_dist.xml
+++ b/erts/doc/src/erl_ext_dist.xml
@@ -5,7 +5,7 @@
<header>
<copyright>
<year>2007</year>
- <year>2015</year>
+ <year>2016</year>
<holder>Ericsson AB, All Rights Reserved</holder>
</copyright>
<legalnotice>
@@ -119,7 +119,7 @@
<tcaption>Compressed Data Format when Expanded</tcaption></table>
<marker id="utf8_atoms"/>
<note>
- <p>As from <c>ERTS</c> 5.10 (OTP R16) support
+ <p>As from ERTS 5.10 (OTP R16) support
for UTF-8 encoded atoms has been introduced in the external format.
However, only characters that can be encoded using Latin-1 (ISO-8859-1)
are currently supported in atoms. The support for UTF-8 encoded atoms
@@ -149,9 +149,9 @@
<title>Distribution Header</title>
<p>
<marker id="distribution_header"/>
- As from <c>ERTS</c> 5.7.2 the old atom cache protocol was
+ As from ERTS 5.7.2 the old atom cache protocol was
dropped and a new one was introduced. This protocol
- introduced the distribution header. Nodes with an <c>ERTS</c> version
+ introduced the distribution header. Nodes with an ERTS version
earlier than 5.7.2 can still communicate with new nodes,
but no distribution header and no atom cache are used.</p>
<p>
@@ -799,7 +799,7 @@
</p>
<note>
<p>
- <c>SMALL_ATOM_EXT</c> was introduced in <c>ERTS</c> 5.7.2 and
+ <c>SMALL_ATOM_EXT</c> was introduced in ERTS 5.7.2 and
require an exchange of distribution flag
<seealso marker="erl_dist_protocol#dflags">
<c>DFLAG_SMALL_ATOM_TAGS</c></seealso> in the
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index 2b627281fe..b5dc9037c4 100644
--- a/erts/doc/src/erl_nif.xml
+++ b/erts/doc/src/erl_nif.xml
@@ -474,7 +474,7 @@ return term;</code>
register/unregister its name, and so on.</p>
<p>Termination of a process executing a dirty NIF can only be
completed up to a certain point while it executes the dirty NIF.
- All Erlang resources, such as its registered name and its <c>ets</c>
+ All Erlang resources, such as its registered name and its ETS
tables, are released. All links and monitors are triggered. The
execution of the NIF is, however, <em>not</em> stopped. The NIF
can safely continue execution, allocate heap memory, and so on,
@@ -488,18 +488,6 @@ return term;</code>
sending process is not alive. Deallocation of certain internal
resources, such as process heap and process control block, is
delayed until the dirty NIF has completed.</p>
- <p>Known issue that are planned to be fixed:</p>
- <list type="bulleted">
- <item>
- <p>As purging of a module might need to garbage
- collect a process to determine if it has
- references to the module, a process executing a dirty
- NIF can delay purging for a very long time. Delaying
- a purge operation implies delaying <em>all</em> code
- loading operations, which can cause severe problems for
- the system as a whole.</p>
- </item>
- </list>
</item>
</taglist>
</item>
@@ -1585,7 +1573,7 @@ typedef enum {
<seealso marker="#enif_raise_exception">
<c>enif_raise_exception</c></seealso>.</p>
<note>
- <p>Before <c>ERTS</c> 7.0 (Erlang/OTP 18), the return value
+ <p>Before ERTS 7.0 (Erlang/OTP 18), the return value
from <c>enif_make_badarg</c> had to be returned from the NIF. This
requirement is now lifted as the return value from the NIF is
ignored if <c>enif_make_badarg</c> has been invoked.</p>
@@ -2573,7 +2561,7 @@ enif_map_iterator_destroy(env, &amp;iter);</code>
thread.</p>
<note>
<p>Passing <c>msg_env</c> as <c>NULL</c> is only supported as from
- <c>ERTS</c> 8.0 (Erlang/OTP 19).</p>
+ ERTS 8.0 (Erlang/OTP 19).</p>
</note>
</desc>
</func>
diff --git a/erts/doc/src/erl_prim_loader.xml b/erts/doc/src/erl_prim_loader.xml
index 86a3b98eda..286bac6c93 100644
--- a/erts/doc/src/erl_prim_loader.xml
+++ b/erts/doc/src/erl_prim_loader.xml
@@ -60,7 +60,7 @@
for example,
<c>$OTPROOT/lib/</c><c>mnesia-4.4.7.ez/mnesia-4.4.7/ebin/</c><c>mnesia.beam</c>.
For information about archive files, see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</desc>
</func>
@@ -87,7 +87,7 @@
for example,
<c>$OTPROOT/lib/</c><c>mnesia-4.4.7.ez/mnesia-4.4.7/ebin</c>.
For information about archive files, see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</desc>
</func>
@@ -98,18 +98,18 @@
<p>Retrieves information about a file. Returns
<c>{ok, <anno>FileInfo</anno>}</c> if successful, otherwise
<c>error</c>. <c><anno>FileInfo</anno></c> is a record
- <c>file_info</c>, defined in the <c>Kernel</c> include file
+ <c>file_info</c>, defined in the Kernel include file
<c>file.hrl</c>. Include the following directive in the module
from which the function is called:</p>
<code type="none">
-include_lib("kernel/include/file.hrl").</code>
<p>For more information about the record <c>file_info</c>, see
- <seealso marker="kernel:file"><c>kernel:file(3)</c></seealso>.</p>
+ <seealso marker="kernel:file"><c>file(3)</c></seealso>.</p>
<p><c><anno>Filename</anno></c> can also be a file in an archive,
for example,
<c>$OTPROOT/lib/</c><c>mnesia-4.4.7.ez/mnesia-4.4.7/ebin/</c><c>mnesia</c>.
For information about archive files, see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</desc>
</func>
@@ -167,7 +167,7 @@
can use. This flag is mandatory if flag <c>-loader inet</c>
is present. On each host, there must be on Erlang node
with the <seealso marker="kernel:erl_boot_server">
- <c>kernel:erl_boot_server(3)</c></seealso>,
+ <c>erl_boot_server(3)</c></seealso>,
which handles the load requests.
<c>Hosts</c> is a list of IP addresses (hostnames
are not acceptable).</p>
@@ -184,7 +184,7 @@
<title>See Also</title>
<p><seealso marker="init"><c>init(3)</c></seealso>,
<seealso marker="kernel:erl_boot_server">
- <c>kernel:erl_boot_server(3)</c></seealso></p>
+ <c>erl_boot_server(3)</c></seealso></p>
</section>
</erlref>
diff --git a/erts/doc/src/erl_tracer.xml b/erts/doc/src/erl_tracer.xml
index 131157eef8..83eef374ca 100644
--- a/erts/doc/src/erl_tracer.xml
+++ b/erts/doc/src/erl_tracer.xml
@@ -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(3)</c></seealso>.</p>
+ <c>seq_trace(3)</c></seealso>.</p>
</desc>
</func>
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 2b7a3b85e5..b0d25389fd 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -84,22 +84,22 @@
<p>Time unit expressed in parts per second. That is,
the time unit equals <c>1/PartsPerSecond</c> second.</p>
</item>
- <tag><c>seconds</c></tag>
+ <tag><c>second</c></tag>
<item>
<p>Symbolic representation of the time unit
represented by the integer <c>1</c>.</p>
</item>
- <tag><c>milli_seconds</c></tag>
+ <tag><c>millisecond</c></tag>
<item>
<p>Symbolic representation of the time unit
represented by the integer <c>1000</c>.</p>
</item>
- <tag><c>micro_seconds</c></tag>
+ <tag><c>microsecond</c></tag>
<item>
<p>Symbolic representation of the time unit
represented by the integer <c>1000000</c>.</p>
</item>
- <tag><c>nano_seconds</c></tag>
+ <tag><c>nanosecond</c></tag>
<item>
<p>Symbolic representation of the time unit
represented by the integer <c>1000000000</c>.</p>
@@ -119,7 +119,7 @@
<p>One can get an approximation of the <c>native</c>
time unit by calling
<seealso marker="erlang:convert_time_unit/3">
- <c>erlang:convert_time_unit(1, seconds, native)</c></seealso>.
+ <c>erlang:convert_time_unit(1, second, native)</c></seealso>.
The result equals the number
of whole <c>native</c> time units per second. If
the number of <c>native</c> time units per second does not
@@ -149,6 +149,10 @@
<seealso marker="kernel:os#perf_counter/0">
<c>os:perf_counter/0</c></seealso>.</p>
</item>
+ <tag><seealso marker="#type_deprecated_time_unit"><c>deprecated_time_unit()</c></seealso></tag>
+ <item><p>
+ Deprecated symbolic representations kept for backwards-compatibility.
+ </p></item>
</taglist>
<p>The <c>time_unit/0</c> type can be extended.
To convert time values between time units, use
@@ -156,6 +160,27 @@
<c>erlang:convert_time_unit/3</c></seealso>.</p>
</desc>
</datatype>
+ <datatype>
+ <name name="deprecated_time_unit"></name>
+ <desc><marker id="type_deprecated_time_unit"/>
+ <p>The <seealso marker="#type_time_unit"><c>time_unit()</c></seealso>
+ type also consist of the following <em>deprecated</em> symbolic
+ time units:</p>
+ <taglist>
+ <tag><c>seconds</c></tag>
+ <item><p>Same as <seealso marker="#type_time_unit"><c>second</c></seealso>.</p></item>
+
+ <tag><c>milli_seconds</c></tag>
+ <item><p>Same as <seealso marker="#type_time_unit"><c>millisecond</c></seealso>.</p></item>
+
+ <tag><c>micro_seconds</c></tag>
+ <item><p>Same as <seealso marker="#type_time_unit"><c>microsecond</c></seealso>.</p></item>
+
+ <tag><c>nano_seconds</c></tag>
+ <item><p>Same as <seealso marker="#type_time_unit"><c>nanosecond</c></seealso>.</p></item>
+ </taglist>
+ </desc>
+ </datatype>
</datatypes>
<funcs>
@@ -352,7 +377,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(3)</c></seealso>.</p>
+ <seealso marker="stdlib:binary"><c>binary(3)</c></seealso>.</p>
<p>Allowed in guard tests.</p>
</desc>
</func>
@@ -479,7 +504,7 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
this function is deprecated.</em> New code is to use
<seealso marker="stdlib:binary#bin_to_list/3">
<c>binary:bin_to_list/3</c></seealso>
- in <c>STDLIB</c> instead. All functions in module
+ in STDLIB instead. All functions in module
<c>binary</c> consistently use zero-based indexing.</p>
</note>
</desc>
@@ -491,7 +516,14 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
<desc>
<p>Returns an Erlang term that is the result of decoding
binary object <c><anno>Binary</anno></c>, which must be encoded
- according to the Erlang external term format.</p>
+ according to the <seealso marker="erts:erl_ext_dist">
+ Erlang external term format</seealso>.</p>
+ <pre>
+> <input>Bin = term_to_binary(hello).</input>
+&lt;&lt;131,100,0,5,104,101,108,108,111>>
+> <input>hello = binary_to_term(Bin).</input>
+hello
+</pre>
<warning>
<p>When decoding binaries from untrusted sources,
consider using <c>binary_to_term/2</c> to prevent Denial
@@ -530,6 +562,14 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
</taglist>
<p>Failure: <c>badarg</c> if <c>safe</c> is specified and unsafe
data is decoded.</p>
+ <pre>
+> <input>binary_to_term(&lt;&lt;131,100,0,5,104,101,108,108,111>>, [safe]).</input>
+** exception error: bad argument
+> <input>hello.</input>
+hello
+> <input>binary_to_term(&lt;&lt;131,100,0,5,104,101,108,108,111>>, [safe]).</input>
+hello
+</pre>
<p>See also
<seealso marker="#term_to_binary/1"><c>term_to_binary/1</c></seealso>,
<seealso marker="#binary_to_term/1">
@@ -699,7 +739,7 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
<p>Returns <c>true</c> if <c><anno>Module</anno></c> has old code,
otherwise <c>false</c>.</p>
<p>See also <seealso marker="kernel:code">
- <c>kernel:code(3)</c></seealso>.</p>
+ <c>code(3)</c></seealso>.</p>
</desc>
</func>
@@ -776,8 +816,31 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
by passing option <c>{allow_gc, false}</c>.</p>
</item>
</taglist>
+ <note>
+ <p>
+ Up until ERTS version 8.*, the check process code operation
+ checks for all types of references to the old code. That is,
+ direct references (e.g. return addresses on the process
+ stack), indirect references (<c>fun</c>s in process
+ context), and references to literals in the code.
+ </p>
+ <p>
+ As of ERTS version 9.0, the check process code operation
+ only checks for direct references to the code. Indirect
+ references via <c>fun</c>s will be ignored. If such
+ <c>fun</c>s exist and are used after a purge of the old
+ code, an exception will be raised upon usage (same as
+ the case when the <c>fun</c> is received by the process
+ after the purge). Literals will be taken care of (copied)
+ at a later stage. This behavior can as of ERTS version
+ 8.1 be enabled when
+ <seealso marker="doc/installation_guide:INSTALL#Advanced-configuration-and-build-of-ErlangOTP_Configuring">building OTP</seealso>,
+ and will automatically be enabled if dirty scheduler
+ support is enabled.
+ </p>
+ </note>
<p>See also <seealso marker="kernel:code">
- <c>kernel:code(3)</c></seealso>.</p>
+ <c>code(3)</c></seealso>.</p>
<p>Failures:</p>
<taglist>
<tag><c>badarg</c></tag>
@@ -1003,7 +1066,7 @@ Z = erlang:crc32_combine(X,Y,iolist_size(Data2)).</code>
otherwise <c>true</c>.</p>
<warning>
<p>This BIF is intended for the code server (see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>)
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>)
and is not to be used elsewhere.</p>
</warning>
<p>Failure: <c>badarg</c> if there already is an old version of
@@ -2471,7 +2534,7 @@ os_prompt%</pre>
</taglist>
<warning>
<p>This BIF is intended for the code server (see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>)
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>)
and is not to be used elsewhere.</p>
</warning>
</desc>
@@ -2536,7 +2599,7 @@ os_prompt%</pre>
<p>Returns a list of all loaded Erlang modules (current and
old code), including preloaded modules.</p>
<p>See also <seealso marker="kernel:code">
- <c>kernel:code(3)</c></seealso>.</p>
+ <c>code(3)</c></seealso>.</p>
</desc>
</func>
@@ -2641,7 +2704,7 @@ os_prompt%</pre>
to the last occurrence is used. Example:</p>
<pre>
> <input>erlang:make_tuple(5, [], [{2,ignored},{5,zz},{2,aa}]).</input>
-{{[],aa,[],[],zz}</pre>
+{[],aa,[],[],zz}</pre>
</desc>
</func>
@@ -2816,7 +2879,7 @@ os_prompt%</pre>
</item>
<tag><c>ets</c></tag>
<item>
- <p>The total amount of memory currently allocated for <c>ets</c>
+ <p>The total amount of memory currently allocated for ETS
tables. This memory is part of the memory presented as
<c>system</c> memory.</p>
</item>
@@ -2837,7 +2900,7 @@ os_prompt%</pre>
<p>For information on how to run the emulator with
instrumentation, see
<seealso marker="tools:instrument">
- <c>tools:instrument(3)</c></seealso>
+ <c>instrument(3)</c></seealso>
and/or <seealso marker="erl"><c>erl(1)</c></seealso>.</p>
</item>
</taglist>
@@ -2885,7 +2948,7 @@ RealSystem = system + MissedSystem</code>
memory blocks.</p>
</note>
<note>
- <p>As from <c>ERTS</c> 5.6.4, <c>erlang:memory/0</c> requires that
+ <p>As from ERTS 5.6.4, <c>erlang:memory/0</c> requires that
all <seealso marker="erts:erts_alloc"><c>erts_alloc(3)</c></seealso>
allocators are enabled (default behavior).</p>
</note>
@@ -2906,7 +2969,7 @@ RealSystem = system + MissedSystem</code>
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>
- <p>As from <c>ERTS</c> 5.6.4,
+ <p>As from ERTS 5.6.4,
<c>erlang:memory/1</c> requires that
all <seealso marker="erts_alloc"><c>erts_alloc(3)</c></seealso>
allocators are enabled (default behavior).</p>
@@ -2954,7 +3017,7 @@ RealSystem = system + MissedSystem</code>
the module.</p>
<warning>
<p>This BIF is intended for the code server (see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>)
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>)
and is not to be used elsewhere.</p>
</warning>
</desc>
@@ -3177,13 +3240,13 @@ RealSystem = system + MissedSystem</code>
time-out for the <em>monitored node</em> to connect itself,
even if it cannot be actively connected from this node
(that is, it is blocked). The state where this can be useful
- can only be achieved by using the <c>Kernel</c> option
+ can only be achieved by using the Kernel option
<c>dist_auto_connect once</c>. If that option is not
used, option <c>allow_passive_connect</c> has no effect.</p>
<note>
<p>Option <c>allow_passive_connect</c> is used
internally and is seldom needed in applications where the
- network topology and the <c>Kernel</c> options in effect
+ network topology and the Kernel options in effect
are known in advance.</p>
</note>
<p>Failure: <c>badarg</c> if the local node is not alive or the
@@ -3249,9 +3312,9 @@ RealSystem = system + MissedSystem</code>
<desc>
<p>Works exactly like
<seealso marker="#error/1"><c>error/1</c></seealso>, but
- <c>Dialyzer</c> thinks that this BIF will return an arbitrary
+ Dialyzer thinks that this BIF will return an arbitrary
term. When used in a stub function for a NIF to generate an
- exception when the NIF library is not loaded, <c>Dialyzer</c>
+ exception when the NIF library is not loaded, Dialyzer
does not generate false warnings.</p>
</desc>
</func>
@@ -3262,9 +3325,9 @@ RealSystem = system + MissedSystem</code>
<desc>
<p>Works exactly like
<seealso marker="#error/2"><c>error/2</c></seealso>, but
- <c>Dialyzer</c> thinks that this BIF will return an arbitrary
+ Dialyzer thinks that this BIF will return an arbitrary
term. When used in a stub function for a NIF to generate an
- exception when the NIF library is not loaded, <c>Dialyzer</c>
+ exception when the NIF library is not loaded, Dialyzer
does not generate false warnings.</p>
</desc>
</func>
@@ -3387,9 +3450,9 @@ 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(3)</c></seealso>, the
+ <seealso marker="kernel:file"><c>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
+ <c>file:native_name_encoding/0</c></seealso> in Kernel, and
the <seealso marker="stdlib:unicode_usage">
<c>Using Unicode in Erlang</c></seealso> User's Guide.</p>
<note>
@@ -3701,7 +3764,7 @@ RealSystem = system + MissedSystem</code>
the owning process using signals of the form
<c>{'EXIT', Port, PosixCode}</c>. For the possible values of
<c>PosixCode</c>, see
- <seealso marker="kernel:file"><c>kernel:file(3)</c></seealso>.</p>
+ <seealso marker="kernel:file"><c>file(3)</c></seealso>.</p>
<p>The maximum number of ports that can be open at the same
time can be configured by passing command-line flag
<seealso marker="erl#max_ports"><c>+Q</c></seealso> to
@@ -3716,7 +3779,7 @@ RealSystem = system + MissedSystem</code>
<desc>
<p>Portable hash function that gives the same hash for
the same Erlang term regardless of machine architecture and
- <c>ERTS</c> version (the BIF was introduced in <c>ERTS</c> 4.9.1.1).
+ ERTS version (the BIF was introduced in ERTS 4.9.1.1).
The function returns a hash value for
<c><anno>Term</anno></c> within the range
<c>1..<anno>Range</anno></c>. The maximum value for
@@ -3736,7 +3799,7 @@ RealSystem = system + MissedSystem</code>
<desc>
<p>Portable hash function that gives the same hash for
the same Erlang term regardless of machine architecture and
- <c>ERTS</c> version (the BIF was introduced in <c>ERTS</c> 5.2).
+ ERTS version (the BIF was introduced in ERTS 5.2).
The function returns a hash value for
<c><anno>Term</anno></c> within the range
<c>0..<anno>Range</anno>-1</c>. The maximum value for
@@ -4299,7 +4362,7 @@ RealSystem = system + MissedSystem</code>
<fsummary>Information about the queue size of a port.</fsummary>
<desc>
<p><c><anno>Bytes</anno></c> is the total number
- of bytes queued by the port using the <c>ERTS</c> driver queue
+ of bytes queued by the port using the ERTS driver queue
implementation.</p>
<p>If the port identified by <c><anno>Port</anno></c> is not open,
<c>undefined</c> is returned. If the port is closed and the
@@ -4407,12 +4470,12 @@ RealSystem = system + MissedSystem</code>
</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.
</fsummary>
<desc>
+ <marker id="process_flag_min_heap_size"/>
<p>Changes the minimum heap size for the calling process.</p>
<p>Returns the old value of the flag.</p>
</desc>
@@ -4429,13 +4492,13 @@ RealSystem = system + MissedSystem</code>
</desc>
</func>
- <marker id="process_flag_max_heap_size"/>
<func>
<name name="process_flag" arity="2" clause_i="5"/>
<fsummary>Set process flag max_heap_size for the calling process.
</fsummary>
<type name="max_heap_size"/>
<desc>
+ <marker id="process_flag_max_heap_size"/>
<p>This flag sets the maximum heap size for the calling process.
If <c><anno>MaxHeapSize</anno></c> is an integer, the system default
values for <c>kill</c> and <c>error_logger</c> are used.
@@ -4503,13 +4566,13 @@ RealSystem = system + MissedSystem</code>
</desc>
</func>
- <marker id="process_flag_message_queue_data"/>
<func>
<name name="process_flag" arity="2" clause_i="6"/>
<fsummary>Set process flag message_queue_data for the calling process.
</fsummary>
<type name="message_queue_data"/>
<desc>
+ <marker id="process_flag_message_queue_data"/>
<p>This flag determines how messages in the message queue
are stored, as follows:</p>
<taglist>
@@ -4525,7 +4588,7 @@ RealSystem = system + MissedSystem</code>
<p>All messages in the message queue will eventually be
placed on heap. They can however temporarily be stored
off heap. This is how messages always have been stored
- up until <c>ERTS</c> 8.0.</p>
+ up until ERTS 8.0.</p>
</item>
</taglist>
<p>The default <c>message_queue_data</c> process flag is determined
@@ -5105,11 +5168,11 @@ RealSystem = system + MissedSystem</code>
that no processes execute old code in the module.</p>
<warning>
<p>This BIF is intended for the code server (see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>)
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>)
and is not to be used elsewhere.</p>
</warning>
<note>
- <p>As from <c>ERTS</c> 8.0 (Erlang/OTP 19), any lingering processes
+ <p>As from ERTS 8.0 (Erlang/OTP 19), any lingering processes
that still execute the old code is killed by this function.
In earlier versions, such incorrect use could cause much
more fatal failures, like emulator crash.</p>
@@ -6008,7 +6071,7 @@ true</pre>
<p>If <c><anno>Dest</anno></c> is a <c>pid()</c>, the timer is
automatically canceled if the process referred to by the
<c>pid()</c> is not alive, or if the process exits. This
- feature was introduced in <c>ERTS</c> 5.4.11. Notice that
+ feature was introduced in ERTS 5.4.11. Notice that
timers are not automatically canceled when
<c><anno>Dest</anno></c> is an <c>atom()</c>.</p>
<p>See also
@@ -6109,7 +6172,7 @@ true</pre>
system flag <seealso marker="#system_flag_microstate_accounting">
<c>microstate_accounting</c></seealso>.</p>
<p><c>statistics(microstate_accounting)</c> returns a list of maps
- representing some of the OS threads within <c>ERTS</c>. Each map
+ representing some of the OS threads within ERTS. Each map
contains <c>type</c> and <c>id</c> fields that can be used to
identify what
thread it is, and also a counters field that contains data about how
@@ -6201,7 +6264,7 @@ lists:map(
<c>scheduler_wall_time</c> fraction. Without extra states this
time is part of the <c>other</c> state.</item>
<tag><c>ets</c></tag>
- <item>Time spent executing <c>ets</c> BIFs. Without extra states
+ <item>Time spent executing ETS BIFs. Without extra states
this time is part of the <c>emulator</c> state.</item>
<tag><c>gc_full</c></tag>
<item>Time spent doing fullsweep garbage collection. Without extra
@@ -6217,7 +6280,7 @@ lists:map(
part of the <c>other</c> state.</item>
</taglist>
<p>The utility module
- <seealso marker="runtime_tools:msacc"><c>runtime_tools:msacc(3)</c></seealso>
+ <seealso marker="runtime_tools:msacc"><c>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">
@@ -6240,7 +6303,7 @@ lists:map(
<pre>
> <input>statistics(reductions).</input>
{2046,11}</pre>
- <note><p>As from <c>ERTS</c> 5.5 (Erlang/OTP R11B),
+ <note><p>As from ERTS 5.5 (Erlang/OTP R11B),
this value does not include reductions performed in current
time slices of currently scheduled processes. If an
exact value is wanted, use
@@ -6697,12 +6760,12 @@ ok
</desc>
</func>
- <marker id="system_flag_max_heap_size"></marker>
<func>
<name name="system_flag" arity="2" clause_i="8"/>
<fsummary>Set system flag max_heap_size.</fsummary>
<type name="max_heap_size"/>
<desc>
+ <marker id="system_flag_max_heap_size"></marker>
<p>
Sets the default maximum heap size settings for processes.
The size is specified in words. The new <c>max_heap_size</c>
@@ -7059,7 +7122,7 @@ ok
<item>
<marker id="system_info_alloc_util_allocators"></marker>
<p>Returns a list of the names of all allocators using
- the <c>ERTS</c> internal <c>alloc_util</c> framework
+ the ERTS internal <c>alloc_util</c> framework
as atoms. For more information, see section
<seealso marker="erts:erts_alloc#alloc_util">The
alloc_util framework</seealso>
@@ -7069,7 +7132,7 @@ ok
<item>
<marker id="system_info_allocator_tuple"></marker>
<p>Returns information about the specified allocator.
- As from <c>ERTS</c> 5.6.1, the return value is a list
+ As from ERTS 5.6.1, the return value is a list
of <c>{instance, InstanceNo, InstanceInfo}</c> tuples,
where <c>InstanceInfo</c> contains information about
a specific instance of the allocator.
@@ -7086,8 +7149,8 @@ ok
<p>The recognized allocators are listed in
<seealso marker="erts:erts_alloc"><c>erts_alloc(3)</c></seealso>.
Information about super carriers can be obtained from
- <c>ERTS</c> 8.0 with <c>{allocator, erts_mmap}</c> or from
- <c>ERTS</c> 5.10.4; the returned list when calling with
+ ERTS 8.0 with <c>{allocator, erts_mmap}</c> or from
+ ERTS 5.10.4; the returned list when calling with
<c>{allocator, mseg_alloc}</c> also includes an
<c>{erts_mmap, _}</c> tuple as one element in the list.</p>
<p>After reading the <c>erts_alloc(3)</c> documentation,
@@ -7571,7 +7634,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(3)</c></seealso> manual page and the
+ <c>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>
@@ -7611,7 +7674,7 @@ ok
</item>
<tag><c>ets_limit</c></tag>
<item>
- <p>Returns the maximum number of <c>ets</c> tables allowed. This
+ <p>Returns the maximum number of ETS tables allowed. This
limit can be increased at startup by passing
command-line flag
<seealso marker="erts:erl#+e"><c>+e</c></seealso> to
@@ -7799,7 +7862,7 @@ ok
<item>
<marker id="system_info_otp_release"></marker>
<p>Returns a string containing the OTP release number of the
- OTP release that the currently executing <c>ERTS</c> application
+ OTP release that the currently executing ERTS application
is part of.</p>
<p>As from Erlang/OTP 17, the OTP release number corresponds to
the major OTP version number. No
@@ -8174,7 +8237,7 @@ ok
<tag><c>tolerant_timeofday</c></tag>
<item>
<marker id="system_info_tolerant_timeofday"></marker>
- <p>Returns whether a pre <c>ERTS</c> 7.0 backwards compatible
+ <p>Returns whether a pre ERTS 7.0 backwards compatible
compensation for sudden changes of system time is <c>enabled</c>
or <c>disabled</c>. Such compensation is <c>enabled</c> when the
<seealso marker="#system_info_time_offset">time offset</seealso>
@@ -8242,8 +8305,8 @@ ok
<p>Argument <c>scheduler</c> has changed name to
<c>scheduler_id</c> to avoid mix up with argument
<c>schedulers</c>. Argument <c>scheduler</c> was
- introduced in <c>ERTS</c> 5.5 and renamed in
- <c>ERTS</c> 5.5.1.</p>
+ introduced in ERTS 5.5 and renamed in
+ ERTS 5.5.1.</p>
</note>
</desc>
</func>
@@ -8451,7 +8514,7 @@ ok
<seealso marker="time_correction#Erlang_Monotonic_Time">Erlang
monotonic time</seealso>. The time stamp (Ts) has the same
format and value as produced by
- <c>erlang:monotonic_time(nano_seconds)</c>.</p>
+ <c>erlang:monotonic_time(nanosecond)</c>.</p>
</item>
<tag><c>runnable_procs</c></tag>
<item>
@@ -8479,7 +8542,7 @@ ok
<seealso marker="time_correction#Erlang_Monotonic_Time">Erlang
monotonic time</seealso> and a monotonically increasing
integer. The time stamp (Ts) has the same format and value
- as produced by <c>{erlang:monotonic_time(nano_seconds),
+ as produced by <c>{erlang:monotonic_time(nanosecond),
erlang:unique_integer([monotonic])}</c>.</p>
</item>
<tag><c>timestamp</c></tag>
@@ -8551,12 +8614,19 @@ ok
</fsummary>
<desc>
<p>Returns a binary data object that is the result of encoding
- <c><anno>Term</anno></c> according to the Erlang external
- term format.</p>
+ <c><anno>Term</anno></c> according to the
+ <seealso marker="erts:erl_ext_dist">Erlang external
+ term format.</seealso></p>
<p>This can be used for various purposes, for example,
writing a term to a file in an efficient way, or sending an
Erlang term to some type of communications channel not
supported by distributed Erlang.</p>
+ <pre>
+> <input>Bin = term_to_binary(hello).</input>
+&lt;&lt;131,100,0,5,104,101,108,108,111>>
+> <input>hello = binary_to_term(Bin).</input>
+hello
+</pre>
<p>See also <seealso marker="#binary_to_term/1">
<c>binary_to_term/1</c></seealso>.</p>
</desc>
@@ -8709,7 +8779,7 @@ ok
<p>The <c>erlang:timestamp()</c> BIF is equivalent to:</p>
<code type="none">
timestamp() ->
- ErlangSystemTime = erlang:system_time(micro_seconds),
+ ErlangSystemTime = erlang:system_time(microsecond),
MegaSecs = ErlangSystemTime div 1000000000000,
Secs = ErlangSystemTime div 1000000 - MegaSecs*1000000,
MicroSecs = ErlangSystemTime rem 1000000,
@@ -8990,7 +9060,7 @@ timestamp() ->
monotonic time</seealso> time stamp in all trace messages. The
time stamp (Ts) has the same format and value as produced by
<seealso marker="#monotonic_time-1">
- <c>erlang:monotonic_time(nano_seconds)</c></seealso>.
+ <c>erlang:monotonic_time(nanosecond)</c></seealso>.
This flag overrides flag <c>cpu_timestamp</c>.</p>
</item>
<tag><c>strict_monotonic_timestamp</c></tag>
@@ -9001,7 +9071,7 @@ timestamp() ->
integer in all trace messages. The time stamp (Ts) has the
same format and value as produced by <c>{</c>
<seealso marker="#monotonic_time-1">
- <c>erlang:monotonic_time(nano_seconds)</c></seealso><c>,</c>
+ <c>erlang:monotonic_time(nanosecond)</c></seealso><c>,</c>
<seealso marker="#unique_integer-1">
<c>erlang:unique_integer([monotonic])</c></seealso><c>}</c>.
This flag overrides flag <c>cpu_timestamp</c>.</p>
@@ -9403,7 +9473,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(3)</c></seealso>,
+ <seealso marker="kernel:seq_trace"><c>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/erlc.xml b/erts/doc/src/erlc.xml
index ca3412b72c..7355be488b 100644
--- a/erts/doc/src/erlc.xml
+++ b/erts/doc/src/erlc.xml
@@ -303,9 +303,9 @@ erlc +export_all file.erl</pre>
<section>
<title>See Also</title>
<p><seealso marker="erl"><c>erl(1)</c></seealso>,
- <seealso marker="compiler:compile"><c>compiler:compile(3)</c></seealso>,
- <seealso marker="parsetools:yecc"><c>parsetools:yecc(3)</c></seealso>,
- <seealso marker="snmp:snmp"><c>snmp:snmp(3)</c></seealso></p>
+ <seealso marker="compiler:compile"><c>compile(3)</c></seealso>,
+ <seealso marker="parsetools:yecc"><c>yecc(3)</c></seealso>,
+ <seealso marker="snmp:snmp"><c>snmp(3)</c></seealso></p>
</section>
</comref>
diff --git a/erts/doc/src/erlsrv.xml b/erts/doc/src/erlsrv.xml
index 53583b625d..6c08b25220 100644
--- a/erts/doc/src/erlsrv.xml
+++ b/erts/doc/src/erlsrv.xml
@@ -527,7 +527,7 @@ void initialize_handler(void){
<title>See Also</title>
<p><seealso marker="start_erl"><c>start_erl(1)</c></seealso>,
<seealso marker="sasl:release_handler">
- <c>sasl:release_handler(3)</c></seealso></p>
+ <c>release_handler(3)</c></seealso></p>
</section>
</comref>
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml
index a43f51b10a..8ab35851c1 100644
--- a/erts/doc/src/erts_alloc.xml
+++ b/erts/doc/src/erts_alloc.xml
@@ -246,7 +246,7 @@
If it satisfies the request, it is used, otherwise a new
carrier is created. The implementation has a time
complexity that is constant.</p>
- <p>As from <c>ERTS</c> 5.6.1 the emulator refuses to
+ <p>As from ERTS 5.6.1 the emulator refuses to
use this strategy on other allocators than <c>temp_alloc</c>.
This because it only causes problems for other allocators.</p>
</item>
@@ -454,7 +454,7 @@
enabled) is passed instead of a <c><![CDATA[<utilization>]]></c>,
a recomended non-zero utilization value is used. The value
chosen depends on the allocator type and can be changed between
- <c>ERTS</c> versions. Defaults to <c>de</c>, but this
+ ERTS versions. Defaults to <c>de</c>, but this
can be changed in the future.</p>
<p>Carriers are abandoned when
memory utilization in the allocator instance falls below the
@@ -617,7 +617,7 @@
SMP support is <c>NoSchedulers+1</c> instances. Each scheduler
uses a lock-free instance of its own and other threads use
a common instance.</p>
- <p>Before <c>ERTS</c> 5.9 it was possible to configure
+ <p>Before ERTS 5.9 it was possible to configure
a smaller number of thread-specific instances than schedulers.
This is, however, not possible anymore.</p>
</item>
@@ -688,7 +688,7 @@
<p>A map over current allocations is kept by the emulator.
The allocation map can be retrieved through module
<seealso marker="tools:instrument">
- <c>tools:instrument(3)</c></seealso>. <c>+Mim true</c>
+ <c>instrument(3)</c></seealso>. <c>+Mim true</c>
implies <c>+Mis true</c>. <c>+Mim true</c> is the same as flag
<seealso marker="erl#instr"><c>-instr</c></seealso> in
<c>erl(1)</c>.</p>
@@ -698,7 +698,7 @@
<p>Status over allocated memory is kept by the emulator.
The allocation status can be retrieved through module
<seealso marker="tools:instrument">
- <c>tools:instrument(3)</c></seealso>.</p>
+ <c>instrument(3)</c></seealso>.</p>
</item>
<tag><marker id="Mit"/><c>+Mit X</c></tag>
<item>
@@ -737,10 +737,10 @@
<p>Disables features that cannot be enabled while creating an
allocator configuration with
<seealso marker="runtime_tools:erts_alloc_config">
- <c>runtime_tools:erts_alloc_config(3)</c></seealso>.</p>
+ <c>erts_alloc_config(3)</c></seealso>.</p>
<note>
<p>This option is to be used only while running
- <c>runtime_tools:erts_alloc_config(3)</c>, <em>not</em> when
+ <c>erts_alloc_config(3)</c>, <em>not</em> when
using the created configuration.</p>
</note>
</item>
@@ -780,7 +780,7 @@
</note>
<p>The <seealso marker="runtime_tools:erts_alloc_config">
- <c>runtime_tools:erts_alloc_config(3)</c></seealso>
+ <c>erts_alloc_config(3)</c></seealso>
tool can be used to aid creation of an
<c>erts_alloc</c> configuration that is suitable for a limited
number of runtime scenarios.</p>
@@ -791,9 +791,9 @@
<p><seealso marker="erl"><c>erl(1)</c></seealso>,
<seealso marker="erlang"><c>erlang(3)</c></seealso>,
<seealso marker="runtime_tools:erts_alloc_config">
- <c>runtime_tools:erts_alloc_config(3)</c></seealso>,
+ <c>erts_alloc_config(3)</c></seealso>,
<seealso marker="tools:instrument">
- <c>tools:instrument(3)</c></seealso></p>
+ <c>instrument(3)</c></seealso></p>
</section>
</cref>
diff --git a/erts/doc/src/escript.xml b/erts/doc/src/escript.xml
index 602b88f6ed..1d5d280338 100644
--- a/erts/doc/src/escript.xml
+++ b/erts/doc/src/escript.xml
@@ -4,7 +4,7 @@
<comref>
<header>
<copyright>
- <year>2007</year><year>2015</year>
+ <year>2007</year><year>2016</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -101,7 +101,7 @@ io:setopts([{encoding, unicode}])</code>
is <c>latin1</c>, as the script runs in a non-interactive terminal
(see section
<seealso marker="stdlib:unicode_usage#unicode_options_summary">
- Summary of Options</seealso>) in the <c>STDLIB</c> User's Guide.</p>
+ Summary of Options</seealso>) in the STDLIB User's Guide.</p>
</note>
<p>On the third line (or second line depending on the presence
of the Emacs directive), arguments can be specified to
@@ -193,7 +193,7 @@ halt(1).</pre>
as one of the emulator flags. <c>Module</c> must be the
name of a module that has an exported <c>main/1</c>
function. For more information about archives and code loading, see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
<p>It is often very convenient to have a header in
the escript, especially on Unix platforms. However, the header
is optional, so you directly can "execute"
diff --git a/erts/doc/src/inet_cfg.xml b/erts/doc/src/inet_cfg.xml
index 3b104a0032..0cfcc7905d 100644
--- a/erts/doc/src/inet_cfg.xml
+++ b/erts/doc/src/inet_cfg.xml
@@ -40,7 +40,7 @@
for specific settings for Erlang to function properly on a correctly
IP-configured platform.</p>
- <p>When Erlang starts up it reads the <c>Kernel</c> variable
+ <p>When Erlang starts up it reads the Kernel variable
<c><![CDATA[inetrc]]></c>, which, if defined, is to specify the location
and name of a user configuration file. Example:</p>
@@ -57,7 +57,7 @@
<code type="none"><![CDATA[
% export ERL_INETRC=./cfg_files/erl_inetrc]]></code>
- <p>Notice that the <c>Kernel</c> variable <c><![CDATA[inetrc]]></c>
+ <p>Notice that the Kernel variable <c><![CDATA[inetrc]]></c>
overrides this environment variable.</p>
<p>If no user configuration file is specified and Erlang is started
@@ -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(3)</c></seealso>.</p>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>,
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>.
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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(3)</c></seealso>
+ <seealso marker="kernel:inet_res"><c>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/init.xml b/erts/doc/src/init.xml
index 54507c6572..c14f0a558d 100644
--- a/erts/doc/src/init.xml
+++ b/erts/doc/src/init.xml
@@ -42,7 +42,7 @@
<p><c>init</c> reads the boot script, which contains instructions on
how to initiate the system. For more information about boot scripts, see
- <seealso marker="sasl:script"><c>sasl:script(4)</c></seealso>.</p>
+ <seealso marker="sasl:script"><c>script(4)</c></seealso>.</p>
<p><c>init</c> also contains functions to restart, reboot, and stop
the system.</p>
@@ -154,7 +154,7 @@
terminates. If command-line flag <c>-heart</c> was specified,
the <c>heart</c> program tries to reboot the system. For more
information, see
- <seealso marker="kernel:heart"><c>kernel:heart(3)</c></seealso>.</p>
+ <seealso marker="kernel:heart"><c>heart(3)</c></seealso>.</p>
<p>To limit the shutdown time, the time <c>init</c> is allowed
to spend taking down applications, command-line flag
<c>-shutdown_time</c> is to be used.</p>
@@ -207,7 +207,7 @@
command-line flag <c>-heart</c> was specified, the <c>heart</c>
program is terminated before the Erlang node terminates.
For more information, see
- <seealso marker="kernel:heart"><c>kernel:heart(3)</c></seealso>.</p>
+ <seealso marker="kernel:heart"><c>heart(3)</c></seealso>.</p>
<p>To limit the shutdown time, the time <c>init</c> is allowed
to spend taking down applications, command-line flag
<c>-shutdown_time</c> is to be used.</p>
@@ -254,9 +254,9 @@
useful when you want to elaborate with code loading from
archives without editing the <c>boot script</c>. For more
information about interpretation of boot scripts, see
- <seealso marker="sasl:script"><c>sasl:script(4)</c></seealso>.
+ <seealso marker="sasl:script"><c>script(4)</c></seealso>.
The flag has also a similar effect on how the code server works; see
- <seealso marker="kernel:code"><c>kernel:code(3)</c></seealso>.</p>
+ <seealso marker="kernel:code"><c>code(3)</c></seealso>.</p>
</item>
<tag><c>-epmd_module Module</c></tag>
<item>
@@ -361,7 +361,7 @@ error</pre>
<section>
<title>See Also</title>
<p><seealso marker="erl_prim_loader"><c>erl_prim_loader(3)</c></seealso>,
- <seealso marker="kernel:heart"><c>kernel:heart(3)</c></seealso></p>
+ <seealso marker="kernel:heart"><c>heart(3)</c></seealso></p>
</section>
</erlref>
diff --git a/erts/doc/src/introduction.xml b/erts/doc/src/introduction.xml
index 97a0d5999e..790e24f9f3 100644
--- a/erts/doc/src/introduction.xml
+++ b/erts/doc/src/introduction.xml
@@ -34,7 +34,7 @@
</header>
<section>
<title>Scope</title>
- <p>The Erlang Runtime System Application, <c>ERTS</c>, contains
+ <p>The Erlang Runtime System Application, ERTS, contains
functionality necessary to run the Erlang system.</p>
<note>
<p>By default, <c><![CDATA[ERTS]]></c> is only guaranteed to be
diff --git a/erts/doc/src/match_spec.xml b/erts/doc/src/match_spec.xml
index 1b297c5d29..2a14f1e47b 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(3)</c></seealso>
+ <seealso marker="stdlib:ets"><c>ets(3)</c></seealso>
can be described in the following <em>informal</em> grammar:</p>
<list type="bulleted">
@@ -678,7 +678,7 @@
</item>
<item>
<p>If the match specification is executed when selecting objects
- from an <c>ets</c> table:</p>
+ from an ETS table:</p>
<p>Evaluate the expressions in order and return the value of
the last expression (typically there is only one expression
in this context).</p>
@@ -691,11 +691,11 @@
<section>
<marker id="differences_ets_tracing"/>
<title>Differences between Match Specifications in ETS and Tracing</title>
- <p><c>ets</c> match specifications produce a return value.
+ <p>ETS match specifications produce a return value.
Usually the <c><![CDATA[MatchBody]]></c> contains one single
<c><![CDATA[ConditionExpression]]></c> that defines the return value
without any side effects. Calls with side effects are not allowed in
- the <c>ets</c> context.</p>
+ the ETS context.</p>
<p>When tracing there is no return value to produce, the
match specification either matches or does not. The effect when the
@@ -824,7 +824,7 @@
<section>
<title>ETS Examples</title>
- <p>Match all objects in an <c>ets</c> table, where the first element is
+ <p>Match all objects in an ETS table, where the first element is
the atom <c>'strider'</c> and the tuple arity is 3, and return the whole
object:</p>
@@ -834,7 +834,7 @@
['$_']}]
]]></code>
- <p>Match all objects in an <c>ets</c> table with arity &gt; 1 and the first
+ <p>Match all objects in an ETS table with arity &gt; 1 and the first
element is 'gandalf', and return element 2:</p>
<code type="none"><![CDATA[
@@ -863,7 +863,7 @@
]]></code>
<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>
+ can be useful for testing complicated ETS matches.</p>
</section>
</chapter>
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml
index b3f5e1073b..412675fd2b 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -32,6 +32,370 @@
<p>This document describes the changes made to the ERTS application.</p>
+<section><title>Erts 8.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix bug for calls from hipe code to BIFs that disable GC
+ while yielding. Has been causing Dialyzer crashes on ARM
+ (and presumably all other non-intel platforms).</p>
+ <p>
+ Own Id: OTP-13724 Aux Id: PR-1116 </p>
+ </item>
+ <item>
+ <p>
+ Fix a bug where changing the current working directory of
+ the VM would not change the current working directory of
+ programs spawned using <c>erlang:open_port({spawn,""},
+ ...)</c>.</p>
+ <p>
+ Own Id: OTP-13733 Aux Id: ERL-175 </p>
+ </item>
+ <item>
+ <p>
+ Fix a bug where disabling tracing from a process that had
+ return_to tracing enabled and was tracing on
+ <c>erlang:trace/3</c> would cause a segmentation fault.</p>
+ <p>
+ Own Id: OTP-13734</p>
+ </item>
+ <item>
+ <p>
+ Update all erts documentation to use simpler English, use
+ consistent terminology and be easier to navigate.</p>
+ <p>
+ Own Id: OTP-13740</p>
+ </item>
+ <item>
+ <p>
+ Add dirty schedulers to the microstate accounting
+ statistics.</p>
+ <p>
+ Own Id: OTP-13744</p>
+ </item>
+ <item>
+ <p>
+ Fixed dirty scheduler build support on 32-bit windows.</p>
+ <p>
+ Own Id: OTP-13759</p>
+ </item>
+ <item>
+ <p>
+ inet:getstat(Socket) on an SCTP socket returned 0 for
+ send stats. This bug has now been corrected. Reported by
+ systra as issue ERL-102 on bugs.erlang.org.</p>
+ <p>
+ Own Id: OTP-13773 Aux Id: ERL-102 </p>
+ </item>
+ <item>
+ <p>
+ AF_UNSPEC and unknown address families were misread by
+ UDP receive in prim_inet resulting in an exception. This
+ bug has now been corrected.</p>
+ <p>
+ Own Id: OTP-13775</p>
+ </item>
+ <item>
+ <p>
+ Sweep HiPE stack for literals during code purge.</p>
+ <p>
+ Own Id: OTP-13777 Aux Id: PR-1122 </p>
+ </item>
+ <item>
+ <p>
+ Fix bug in run_erl for OpenBSD that could cause it on
+ rare occations to exit without starting the program (erl)
+ at all.</p>
+ <p>
+ Own Id: OTP-13795</p>
+ </item>
+ <item>
+ <p>
+ Update build scripts to not make assumtions about where
+ env, cp and perl are located.</p>
+ <p>
+ Own Id: OTP-13800</p>
+ </item>
+ <item>
+ <p>
+ Fixed a bug where init:stop could deadlock if a process
+ with infinite shutdown timeout (e.g. a supervisor)
+ attempted to load code while terminating.</p>
+ <p>
+ Own Id: OTP-13802</p>
+ </item>
+ <item>
+ <p>
+ Fixed a segmentation fault on sparc CPUs when free'ing a
+ tracer module's state.</p>
+ <p>
+ Own Id: OTP-13803</p>
+ </item>
+ <item>
+ <p>
+ <c>fun</c>s was not properly handled during purge of a
+ module. This could cause a crash of the VM after a purge
+ of a module.</p>
+ <p>
+ Own Id: OTP-13809</p>
+ </item>
+ <item>
+ <p>
+ Fixed a memory leak when the process monitoring a port
+ crashed.</p>
+ <p>
+ Own Id: OTP-13818</p>
+ </item>
+ <item>
+ <p>
+ Fixed multiple dirty scheduler related tracing bugs.</p>
+ <p>
+ Own Id: OTP-13822</p>
+ </item>
+ <item>
+ <p>
+ Fix error handling in beam code runtime loader for a
+ number of cases when index and size fields got corrupted
+ (negative) values.</p>
+ <p>
+ Own Id: OTP-13848 Aux Id: ERL-216 </p>
+ </item>
+ <item>
+ <p>
+ Minor fix of dirty scheduler implementation.</p>
+ <p>
+ Own Id: OTP-13852</p>
+ </item>
+ <item>
+ <p>
+ Calls to <c>erl_drv_send_term()</c> or
+ <c>erl_drv_output_term()</c> from a non-scheduler thread
+ while the corresponding port was invalid caused the
+ emulator to enter an inconsistent state which eventually
+ caused an emulator crash.</p>
+ <p>
+ Own Id: OTP-13866</p>
+ </item>
+ <item>
+ <p>
+ Fix a rare race condition in <c>erlang:open_port({spawn,
+ ""}, ...)</c> that would result in the erl_child_setup
+ program aborting and cause the emulator to exit.</p>
+ <p>
+ Own Id: OTP-13868</p>
+ </item>
+ <item>
+ <p>Driver and NIF operations accessing processes or ports
+ could cause an emulator crash when used from
+ non-scheduler threads. Those operations are:</p> <list>
+ <item><c>erl_drv_send_term()</c></item>
+ <item><c>driver_send_term()</c></item>
+ <item><c>erl_drv_output_term()</c></item>
+ <item><c>driver_output_term()</c></item>
+ <item><c>enif_send()</c></item>
+ <item><c>enif_port_command()</c></item> </list>
+ <p>
+ Own Id: OTP-13869</p>
+ </item>
+ <item>
+ <p>
+ Fix start scripts generation dependency in Makefile</p>
+ <p>
+ Own Id: OTP-13871 Aux Id: ERL-241 </p>
+ </item>
+ <item>
+ <p>
+ The VM could crash if <c>erlang:get_stacktrace()</c> was
+ called after a rescheduled NIF had thrown an exception.</p>
+ <p>
+ Own Id: OTP-13877</p>
+ </item>
+ <item>
+ <p>Calling <c>code:delete/1</c> before a loading a module
+ with an on_load function, the old code would be
+ overwritten, causing a memory or a crash if NIFs were
+ involved. (Thanks to vans163 for reporting this bug.)</p>
+ <p>
+ Own Id: OTP-13893 Aux Id: ERL-240 </p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Improved accuracy of timeouts on MacOS X. This by setting
+ premature timeouts followed by a short actual timeout
+ during scheduler wait.</p>
+ <p>
+ Own Id: OTP-13698</p>
+ </item>
+ <item>
+ <p>Added the following symbolic time unit representations
+ to the <seealso
+ marker="erlang#type-time_unit"><c>erlang:time_unit()</c></seealso>
+ type:</p> <list> <item><c>second</c></item>
+ <item><c>millisecond</c></item>
+ <item><c>microsecond</c></item>
+ <item><c>nanosecond</c></item> </list> <p>The following
+ symbolic time unit representations are now
+ <em>deprecated</em>, but still part of the
+ <c>erlang:time_unit()</c> type:</p> <list>
+ <item><c>seconds</c></item>
+ <item><c>milli_seconds</c></item>
+ <item><c>micro_seconds</c></item>
+ <item><c>nano_seconds</c></item> </list>
+ <p>
+ Own Id: OTP-13735</p>
+ </item>
+ <item>
+ <p>
+ Fix maps hashing entropy of maps with maps keys.</p>
+ <p>
+ Own Id: OTP-13763 Aux Id: ERL-199 </p>
+ </item>
+ <item>
+ <p>
+ Improved dirty scheduler support. A purge of a module can
+ now be performed without having to wait for completion of
+ all ongoing dirty NIF calls.</p>
+ <p>
+ Note that when enabling support for dirty schedulers, a
+ new purge strategy will as of ERTS version 8.1 be
+ enabled. This new strategy is not fully backwards
+ compatible with the strategy used by default. For more
+ information see the documentation of <seealso
+ marker="erts:erlang#check_process_code/3"><c>erlang:check_process_code/3</c></seealso>.</p>
+ <p>
+ Own Id: OTP-13808 Aux Id: OTP-13833 </p>
+ </item>
+ <item>
+ <p>
+ A new purge strategy has been introduced. The new
+ strategy will by default be disabled during the OTP 19
+ release, but will be the only strategy available as of
+ the OTP 20 release.</p>
+ <p>
+ The new strategy is slightly incompatible with the
+ strategy being used by default in OTP 19. Using the
+ default strategy, processes holding <c>fun</c>s that
+ refer to the module being purged either fail a soft
+ purge, or will be killed during a hard purge. The new
+ strategy completely ignores <c>fun</c>s. If <c>fun</c>s
+ referring to the code being purged exist, and are used
+ after a purge, an exception will be raised upon usage.
+ That is, the behavior will be exactly the same as the
+ case when a <c>fun</c> is received by a process after the
+ purge.</p>
+ <p>
+ The new strategy can optionally be enabled when building
+ OTP during OTP 19, and will automatically be enabled if
+ the runtime system is built with support for dirty
+ schedulers.</p>
+ <p>
+ For more information see the documentation of <seealso
+ marker="erts:erlang#check_process_code/3"><c>erlang:check_process_code/3</c></seealso>.</p>
+ <p>
+ Own Id: OTP-13833</p>
+ </item>
+ <item>
+ <p>
+ Fixed unnecessary overestimation of heap size need during
+ garbage collection.</p>
+ <p>
+ Own Id: OTP-13851</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Erts 8.0.5</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fixed a VM crash that occured in a garbage collection of
+ a process when it had received binaries. This bug was
+ introduced in ERTS version 8.0 (OTP 19.0).</p>
+ <p>
+ Own Id: OTP-13890</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Erts 8.0.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fixed a VM crash that occured in garbage collection of a
+ process when it had received maps over the distribution.
+ This bug was introduced in ERTS version 8.0 (OTP 19.0).</p>
+ <p>
+ Own Id: OTP-13889</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Erts 8.0.3</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fixed a race that could cause a lost wakeup of a process
+ that timed out in a <c>receive ... after</c>. This bug
+ was introduced in ERTS version 7.0.</p>
+ <p>
+ Own Id: OTP-13798 Aux Id: OTP-11997 </p>
+ </item>
+ <item>
+ <p>
+ Fixed segfault after writing an erl crash dump.</p>
+ <p>
+ Own Id: OTP-13799</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Erts 8.0.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix scheduler deadlock bug in <c>ets:update_counter/4</c>
+ when key is not found and inserting the default object
+ causes the table to grow.</p>
+ <p>
+ Own Id: OTP-13731 Aux Id: ERL-188 </p>
+ </item>
+ <item>
+ <p>
+ Fix VM abort "Overrun stack and heap" in garbage
+ collection triggered by a <c>bsl</c> operation and some
+ very specific heap conditions.</p>
+ <p>
+ Own Id: OTP-13732 Aux Id: seq13142 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>Erts 8.0.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
@@ -9332,9 +9696,9 @@
dynamically linking against <c>libssl.so</c> and
<c>libcrypto.so</c>. The runtime library search path has
also been extended. </item><item> The <c>configure</c>
- scripts of <c>erl_interface</c> and <c>odbc</c> now
+ scripts of Erl_interface and ODBC now
search for thread libraries and thread library quirks the
- same way as <c>erts</c> do. </item><item> The
+ same way as ERTS do. </item><item> The
<c>configure</c> script of the <c>odbc</c> application
now also looks for odbc libraries in <c>lib64</c> and
<c>lib/64</c> directories when building on a 64-bit
@@ -10450,7 +10814,7 @@
</item>
<item>
<p>
- A corrected bug in <c>ets</c> for <c>bag</c> and
+ A corrected bug in ETS for <c>bag</c> and
<c>duplicate_bag</c>. A <c>delete/2</c> or
<c>lookup_element/3</c> could miss objects in a fixed
table if one or more objects with the same key had
@@ -10892,7 +11256,7 @@
<list>
<item>
<p>
- A corrected bug in <c>ets</c> for <c>bag</c> and
+ A corrected bug in ETS for <c>bag</c> and
<c>duplicate_bag</c>. A <c>delete/2</c> or
<c>lookup_element/3</c> could miss objects in a fixed
table if one or more objects with the same key had
diff --git a/erts/doc/src/run_erl.xml b/erts/doc/src/run_erl.xml
index 4780c00ea4..a9b6a7e2c6 100644
--- a/erts/doc/src/run_erl.xml
+++ b/erts/doc/src/run_erl.xml
@@ -49,7 +49,7 @@
<funcs>
<func>
<name>run_erl [-daemon] pipe_dir/ log_dir "exec command
- [command_arguments]"</name>
+ arg1 arg2 ..."</name>
<fsummary>Start the Erlang emulator without attached terminal.</fsummary>
<desc>
<p>Arguments:</p>
@@ -92,11 +92,10 @@
</item>
</list>
</item>
- <tag><c>"exec command [command_arguments]"</c></tag>
+ <tag><c>"exec command arg1 arg2 ..."</c></tag>
<item>
- <p>In the third argument, <c><![CDATA[command]]></c> is the
- executable to execute where everything written to <c>stdin</c>
- and <c>stdout</c> is logged to <c><![CDATA[log_dir]]></c>.</p>
+ <p>A space-separated string specifying the program to be executed.
+ The second field is typically a command name such as <c>erl</c>.</p>
</item>
</taglist>
</desc>
@@ -105,7 +104,7 @@
<section>
<title>Notes concerning the Log Files</title>
- <p>While running, <c>run_erl</c> (as stated earlier) sends all output,
+ <p>While running, <c>run_erl</c> sends all output,
uninterpreted, to a log file. The file is named
<c><![CDATA[erlang.log.N]]></c>, where <c>N</c> is an integer. When the
log is "full" (default log size is 100 KB), <c>run_erl</c> starts to log
@@ -174,7 +173,7 @@
without Daylight Saving Time), rather than in local time.
This does not affect data coming from Erlang,
only the logs output directly by <c>run_erl</c>. Application
- <c>SASL</c> can be modified accordingly by setting the Erlang
+ SASL can be modified accordingly by setting the Erlang
application variable <c><![CDATA[utc_log]]></c> to
<c><![CDATA[true]]></c>.</p>
</item>
diff --git a/erts/doc/src/start_erl.xml b/erts/doc/src/start_erl.xml
index 50f8c58a48..4887d4606e 100644
--- a/erts/doc/src/start_erl.xml
+++ b/erts/doc/src/start_erl.xml
@@ -163,7 +163,7 @@
<title>See Also</title>
<p><seealso marker="erlsrv"><c>erlsrv(1)</c></seealso>,
<seealso marker="sasl:release_handler">
- <c>sasl:release_handler(3)</c></seealso></p>
+ <c>release_handler(3)</c></seealso></p>
</section>
</comref>
diff --git a/erts/doc/src/time_correction.xml b/erts/doc/src/time_correction.xml
index 8042ad3b99..77e7a40529 100644
--- a/erts/doc/src/time_correction.xml
+++ b/erts/doc/src/time_correction.xml
@@ -4,7 +4,7 @@
<chapter>
<header>
<copyright>
- <year>1999</year><year>2015</year>
+ <year>1999</year><year>2016</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -35,7 +35,7 @@
<section>
<title>New Extended Time Functionality</title>
- <note><p>As from Erlang/OTP 18 (<c>ERTS</c> 7.0) the time functionality
+ <note><p>As from Erlang/OTP 18 (ERTS 7.0) the time functionality
has been extended. This includes a
<seealso marker="#The_New_Time_API">new API</seealso>
for time and
@@ -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(3)</c></seealso>
+ <seealso marker="stdlib:timer"><c>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.
@@ -408,7 +408,7 @@
and does not change later. This is the default behavior, but
not because it is the best mode (which it is not). It is
default <em>only</em> because this is how the runtime system
- behaved until <c>ERTS</c> 7.0.
+ behaved until ERTS 7.0.
Ensure that your Erlang code that can execute during a time
warp is <seealso marker="#Time_Warp_Safe_Code">time warp
safe</seealso> before enabling other modes.</p>
@@ -663,7 +663,7 @@
<marker id="The_New_Erlang_Monotonic_Time"/>
<section>
<title>New Erlang Monotonic Time</title>
- <p>Erlang monotonic time as such is new as from <c>ERTS</c> 7.0.
+ <p>Erlang monotonic time as such is new as from ERTS 7.0.
It is introduced to detach time measurements, such as elapsed
time from calendar time. In many use cases there is a need to
measure elapsed time or specify a time relative to another point