From 5ae78de4e4f6e220e29ad2f54b95a0098da4b365 Mon Sep 17 00:00:00 2001
From: Hans Bolinder <hasse@erlang.org>
Date: Mon, 12 Oct 2015 12:12:27 +0200
Subject: [erts] Correct documentation

Fix mistakes found by 'xmllint'.
---
 erts/doc/src/driver_entry.xml      |  5 ++-
 erts/doc/src/erl.xml               | 83 +++++++++++++++++++-------------------
 erts/doc/src/erl_dist_protocol.xml |  4 +-
 erts/doc/src/erl_driver.xml        | 16 ++++----
 erts/doc/src/erl_ext_dist.xml      |  4 +-
 erts/doc/src/erl_nif.xml           |  7 ++--
 erts/doc/src/erlang.xml            | 37 +++++++++--------
 erts/doc/src/erts_alloc.xml        | 74 ++++++++++++++++-----------------
 erts/doc/src/escript.xml           |  6 +--
 erts/doc/src/notes.xml             | 49 ++++++++++++----------
 erts/doc/src/time_correction.xml   |  4 +-
 11 files changed, 148 insertions(+), 141 deletions(-)

(limited to 'erts/doc')

diff --git a/erts/doc/src/driver_entry.xml b/erts/doc/src/driver_entry.xml
index 30772c68fe..bad20d6343 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>2013</year>
+      <year>2001</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -126,7 +126,7 @@
   <section>
     <title>DATA TYPES</title>
     <taglist>
-    <tag><b>ErlDrvEntry</b></tag>
+    <tag><em>ErlDrvEntry</em></tag>
     <item>
     <p/>
     <code type="none">
@@ -235,6 +235,7 @@ typedef struct erl_drv_entry {
       </item>
 
       <tag><marker id="ready_input"/>void (*ready_input)(ErlDrvData drv_data, ErlDrvEvent event)</tag>
+      <item/>
       <tag><marker id="ready_output"/>void (*ready_output)(ErlDrvData drv_data, ErlDrvEvent event)</tag>
       <item>
         <p>This is called when a driver event (given in the
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index b0322b7d43..63ab2532ab 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -4,7 +4,7 @@
 <comref>
   <header>
     <copyright>
-      <year>1996</year><year>2013</year>
+      <year>1996</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -138,7 +138,7 @@
           see <seealso marker="kernel:app">app(4)</seealso> and
           <seealso marker="kernel:application">application(3)</seealso>.</p>
       </item>
-      <tag><marker id="args_file"><c><![CDATA[-args_file FileName]]></c></marker></tag>
+      <tag><marker id="args_file"/><c><![CDATA[-args_file FileName]]></c></tag>
       <item>
         <p>Command line arguments are read from the file <c><![CDATA[FileName]]></c>.
           The arguments read from the file replace the
@@ -203,7 +203,7 @@
           <seealso marker="kernel:app">app(4)</seealso> and
           <seealso marker="kernel:application">application(3)</seealso>.</p>
       </item>
-      <tag><marker id="connect_all"><c><![CDATA[-connect_all false]]></c></marker></tag>
+      <tag><marker id="connect_all"/><c><![CDATA[-connect_all false]]></c></tag>
       <item>
         <p>If this flag is present, <c><![CDATA[global]]></c> will not maintain a
           fully connected network of distributed Erlang nodes, and then
@@ -288,7 +288,7 @@
         <p>Makes <c><![CDATA[init]]></c> write some debug information while
           interpreting the boot script.</p>
       </item>
-      <tag><marker id="instr"><c><![CDATA[-instr]]></c>(emulator flag)</marker></tag>
+      <tag><marker id="instr"/><c><![CDATA[-instr]]></c>(emulator flag)</tag>
       <item>
         <p>Selects an instrumented Erlang runtime system (virtual
           machine) to run, instead of the ordinary one. When running an
@@ -436,7 +436,7 @@
           flag and those running with the <c><![CDATA[-name]]></c> flag, as node
           names must be unique in distributed Erlang systems.</p>
       </item>
-      <tag><marker id="smp"><c><![CDATA[-smp [enable|auto|disable]]]></c></marker></tag>
+      <tag><marker id="smp"/><c><![CDATA[-smp [enable|auto|disable]]]></c></tag>
       <item>
         <p><c>-smp enable</c> and <c>-smp</c> starts the Erlang runtime
 	  system with SMP support enabled. This may fail if no runtime
@@ -462,7 +462,7 @@
     <p><c><![CDATA[erl]]></c> invokes the code for the Erlang emulator (virtual
       machine), which supports the following flags:</p>
     <taglist>
-      <tag><marker id="async_thread_stack_size"><c><![CDATA[+a size]]></c></marker></tag>
+      <tag><marker id="async_thread_stack_size"/><c><![CDATA[+a size]]></c></tag>
       <item>
         <p>Suggested stack size, in kilowords, for threads in the
           async-thread pool. Valid range is 16-8192 kilowords. The
@@ -477,7 +477,7 @@
           suggestion, and it might even be ignored on some
           platforms.</p>
       </item>
-      <tag><marker id="async_thread_pool_size"><c><![CDATA[+A size]]></c></marker></tag>
+      <tag><marker id="async_thread_pool_size"/><c><![CDATA[+A size]]></c></tag>
       <item>
         <p>Sets the number of threads in async thread pool, valid range
           is 0-1024. If thread support is available, the default is 10.</p>
@@ -496,7 +496,7 @@
           <c><![CDATA[werl]]></c>, not <c><![CDATA[erl]]></c> (<c><![CDATA[oldshell]]></c>). Note also that
           <c><![CDATA[Ctrl-Break]]></c> is used instead of <c><![CDATA[Ctrl-C]]></c> on Windows.</p>
       </item>
-      <tag><marker id="+c"><c><![CDATA[+c true | false]]></c></marker></tag>
+      <tag><marker id="+c"/><c><![CDATA[+c true | false]]></c></tag>
       <item>
         <p>Enable or disable
 	<seealso marker="time_correction#Time_Correction">time correction</seealso>:</p>
@@ -512,7 +512,7 @@
 	This is interpreted as <c>+c false</c>.
 	</p>
       </item>
-      <tag><marker id="+C_"><c><![CDATA[+C no_time_warp | single_time_warp | multi_time_warp]]></c></marker></tag>
+      <tag><marker id="+C_"/><c><![CDATA[+C no_time_warp | single_time_warp | multi_time_warp]]></c></tag>
       <item>
         <p>Set
 	<seealso marker="time_correction#Time_Warp_Modes">time warp mode</seealso>:
@@ -540,7 +540,7 @@
 	produce a crash dump. On Unix systems, sending an emulator process
 	a SIGUSR1 signal will also force a crash dump.</p>
       </item>
-      <tag><marker id="+e"><c><![CDATA[+e Number]]></c></marker></tag>
+      <tag><marker id="+e"/><c><![CDATA[+e Number]]></c></tag>
       <item>
         <p>Set max number of ETS tables.</p>
       </item>
@@ -625,7 +625,7 @@
 	  information about the file names and line numbers.
           </p>
       </item>
-      <tag><marker id="erts_alloc"><c><![CDATA[+MFlag Value]]></c></marker></tag>
+      <tag><marker id="erts_alloc"/><c><![CDATA[+MFlag Value]]></c></tag>
       <item>
         <p>Memory allocator specific flags, see
           <seealso marker="erts_alloc">erts_alloc(3)</seealso> for
@@ -664,10 +664,10 @@
 	     debugging.</item>
 	   </taglist>
       </item>
-      <tag><marker id="+pc"/><marker id="printable_character_range"><c><![CDATA[+pc Range]]></c></marker></tag>
+      <tag><marker id="+pc"/><marker id="printable_character_range"/><c><![CDATA[+pc Range]]></c></tag>
       <item>
 	<p>Sets the range of characters that the system will consider printable in heuristic detection of strings. This typically affects the shell, debugger and io:format functions (when ~tp is used in the format string).</p> 
-	<p>Currently two values for the <c>Range</c> are supported:
+	<p>Currently two values for the <c>Range</c> are supported:</p>
 	<taglist>
 	  <tag><c>latin1</c></tag> <item>The default. Only characters
 	  in the ISO-latin-1 range can be considered printable, which means
@@ -682,11 +682,10 @@
 	  example your font does not cover all Unicode
 	  characters.</item>
 	</taglist>
-	</p>
 	<p>Se also <seealso marker="stdlib:io#printable_range/0">
 	io:printable_range/0</seealso>.</p>
       </item>
-      <tag><marker id="+P"/><marker id="max_processes"><c><![CDATA[+P Number|legacy]]></c></marker></tag>
+      <tag><marker id="+P"/><marker id="max_processes"/><c><![CDATA[+P Number|legacy]]></c></tag>
       <item>
 	<p>Sets the maximum number of simultaneously existing processes for this
           system if a <c>Number</c> is passed as value. Valid range for
@@ -706,7 +705,7 @@
 	circumstances be extremely expensive. The legacy algoritm is deprecated,
 	and the <c>legacy</c> option is scheduled for removal in OTP-R18.</p>
       </item>
-      <tag><marker id="+Q"/><marker id="max_ports"><c><![CDATA[+Q Number|legacy]]></c></marker></tag>
+      <tag><marker id="+Q"/><marker id="max_ports"/><c><![CDATA[+Q Number|legacy]]></c></tag>
       <item>
 	<p>Sets the maximum number of simultaneously existing ports for this
           system if a Number is passed as value. Valid range for <c>Number</c>
@@ -737,7 +736,7 @@
 	circumstances be extremely expensive. The legacy algoritm is deprecated,
 	and the <c>legacy</c> option is scheduled for removal in OTP-R18.</p>
       </item>
-      <tag><marker id="compat_rel"><c><![CDATA[+R ReleaseNumber]]></c></marker></tag>
+      <tag><marker id="compat_rel"/><c><![CDATA[+R ReleaseNumber]]></c></tag>
       <item>
         <p>Sets the compatibility mode.</p>
         <p>The distribution mechanism is not backwards compatible by
@@ -757,7 +756,7 @@
       <item>
         <p>Force ets memory block to be moved on realloc.</p>
       </item>
-      <tag><marker id="+rg"><c><![CDATA[+rg ReaderGroupsLimit]]></c></marker></tag>
+      <tag><marker id="+rg"/><c><![CDATA[+rg ReaderGroupsLimit]]></c></tag>
       <item>
         <p>Limits the amount of reader groups used by read/write locks
 	   optimized for read operations in the Erlang runtime system. By
@@ -775,7 +774,7 @@
 	   schedulers to logical processors</seealso>, since the reader groups
 	   are distributed better between schedulers.</p>
       </item>
-      <tag><marker id="+S"><c><![CDATA[+S Schedulers:SchedulerOnline]]></c></marker></tag>
+      <tag><marker id="+S"/><c><![CDATA[+S Schedulers:SchedulerOnline]]></c></tag>
       <item>
         <p>Sets the number of scheduler threads to create and scheduler
 	  threads to set online when SMP support has been enabled. The maximum for
@@ -800,7 +799,7 @@
           SMP support enabled (see the <seealso marker="#smp">-smp</seealso>
           flag).</p>
       </item>
-      <tag><marker id="+SP"><c><![CDATA[+SP SchedulersPercentage:SchedulersOnlinePercentage]]></c></marker></tag>
+      <tag><marker id="+SP"/><c><![CDATA[+SP SchedulersPercentage:SchedulersOnlinePercentage]]></c></tag>
       <item>
         <p>Similar to <seealso marker="#+S">+S</seealso> but uses percentages to set the
 	  number of scheduler threads to create, based on logical processors configured,
@@ -821,7 +820,7 @@
           SMP support enabled (see the <seealso marker="#smp">-smp</seealso>
           flag).</p>
       </item>
-      <tag><marker id="+SDcpu"><c><![CDATA[+SDcpu DirtyCPUSchedulers:DirtyCPUSchedulersOnline]]></c></marker></tag>
+      <tag><marker id="+SDcpu"/><c><![CDATA[+SDcpu DirtyCPUSchedulers:DirtyCPUSchedulersOnline]]></c></tag>
       <item>
           <p>Sets the number of dirty CPU scheduler threads to create and dirty
             CPU scheduler threads to set online when threading support has been
@@ -845,7 +844,7 @@
             enabled (it's disabled by default).
           </p>
       </item>
-      <tag><marker id="+SDPcpu"><c><![CDATA[+SDPcpu DirtyCPUSchedulersPercentage:DirtyCPUSchedulersOnlinePercentage]]></c></marker></tag>
+      <tag><marker id="+SDPcpu"/><c><![CDATA[+SDPcpu DirtyCPUSchedulersPercentage:DirtyCPUSchedulersOnlinePercentage]]></c></tag>
       <item>
           <p>Similar to <seealso marker="#+SDcpu">+SDcpu</seealso> but uses percentages to set the
             number of dirty CPU scheduler threads to create and number of dirty CPU scheduler threads
@@ -868,7 +867,7 @@
             enabled (it's disabled by default).
           </p>
       </item>
-      <tag><marker id="+SDio"><c><![CDATA[+SDio IOSchedulers]]></c></marker></tag>
+      <tag><marker id="+SDio"/><c><![CDATA[+SDio IOSchedulers]]></c></tag>
       <item>
           <p>Sets the number of dirty I/O scheduler threads to create when threading
             support has been enabled. The valid range is 0-1024. By default, the number
@@ -886,7 +885,7 @@
       <item>
         <p>Scheduling specific flags.</p>
         <taglist>
-          <tag><marker id="+sbt"><c>+sbt BindType</c></marker></tag>
+          <tag><marker id="+sbt"/><c>+sbt BindType</c></tag>
           <item>
             <p>Set scheduler bind type.</p>
 	    <p>Schedulers can also be bound using the
@@ -1010,7 +1009,7 @@
 	       <seealso marker="erlang#system_info_scheduler_bindings">erlang:system_info(scheduler_bindings)</seealso>.
 	    </p>
           </item>
-	  <tag><marker id="+sbwt"><c>+sbwt none|very_short|short|medium|long|very_long</c></marker></tag>
+	  <tag><marker id="+sbwt"/><c>+sbwt none|very_short|short|medium|long|very_long</c></tag>
 	  <item>
              <p>Set scheduler busy wait threshold. Default is <c>medium</c>.
 	        The threshold determines how long schedulers should busy
@@ -1020,7 +1019,7 @@
 	        without prior notice.
 	     </p>
 	  </item>
-          <tag><marker id="+scl"><c>+scl true|false</c></marker></tag>
+          <tag><marker id="+scl"/><c>+scl true|false</c></tag>
           <item>
 	    <p>Enable or disable scheduler compaction of load. By default
 	    scheduler compaction of load is enabled. When enabled, load
@@ -1037,7 +1036,7 @@
 	    between schedulers.
 	    </p>
           </item>
-          <tag><marker id="+sct"><c>+sct CpuTopology</c></marker></tag>
+          <tag><marker id="+sct"/><c>+sct CpuTopology</c></tag>
           <item>
             <list type="bulleted">
               <item><c><![CDATA[<Id> = integer(); when 0 =< <Id> =< 65535]]></c></item>
@@ -1159,7 +1158,7 @@
 	    <p>For more information, see
 	    <seealso marker="erlang#system_info_cpu_topology">erlang:system_info(cpu_topology)</seealso>.</p>
           </item>
-          <tag><marker id="+secio"><c>+secio true|false</c></marker></tag>
+          <tag><marker id="+secio"/><c>+secio true|false</c></tag>
           <item>
 	    <p>Enable or disable eager check I/O scheduling. The default
 	    is currently <c>true</c>. The default was changed from <c>false</c>
@@ -1176,7 +1175,7 @@
 	    <p><seealso marker="erlang#system_info_eager_check_io"><c>erlang:system_info(eager_check_io)</c></seealso>
 	    returns the value of this parameter used when starting the VM.</p>
           </item>
-          <tag><marker id="+sfwi"><c>+sfwi Interval</c></marker></tag>
+          <tag><marker id="+sfwi"/><c>+sfwi Interval</c></tag>
           <item>
             <p>Set scheduler forced wakeup interval. All run queues will
 	    be scanned each <c>Interval</c> milliseconds. While there are
@@ -1190,7 +1189,7 @@
 	    the <c>+sfwi</c> flag will be removed.
 	    </p>
 	  </item>
-          <tag><marker id="+stbt"><c>+stbt BindType</c></marker></tag>
+          <tag><marker id="+stbt"/><c>+stbt BindType</c></tag>
           <item>
             <p>Try to set scheduler bind type. The same as the
 	    <seealso marker="#+sbt">+sbt</seealso> flag with the exception of
@@ -1198,7 +1197,7 @@
 	    documentation of the <seealso marker="#+sbt">+sbt</seealso> flag.
 	    </p>
 	  </item>
-          <tag><marker id="+sub"><c>+sub true|false</c></marker></tag>
+          <tag><marker id="+sub"/><c>+sub true|false</c></tag>
           <item>
 	    <p>Enable or disable
 	    <seealso marker="erts:erlang#statistics_scheduler_wall_time">scheduler
@@ -1221,7 +1220,7 @@
 	    utilization.
 	    </p>
           </item>
-	  <tag><marker id="+swct"><c>+swct very_eager|eager|medium|lazy|very_lazy</c></marker></tag>
+	  <tag><marker id="+swct"/><c>+swct very_eager|eager|medium|lazy|very_lazy</c></tag>
 	  <item>
              <p>
 	       Set scheduler wake cleanup threshold. Default is <c>medium</c>.
@@ -1235,7 +1234,7 @@
              <p><em>NOTE:</em> This flag may be removed or changed at any time without prior notice.
 	     </p>
 	  </item>
-	  <tag><marker id="+sws"><c>+sws default|legacy</c></marker></tag>
+	  <tag><marker id="+sws"/><c>+sws default|legacy</c></tag>
 	  <item>
              <p>
 	       Set scheduler wakeup strategy. Default strategy changed in erts-5.10/OTP-R16A. This strategy was previously known as <c>proposal</c> in OTP-R15. The <c>legacy</c> strategy was used as default from R13 up to and including R15.
@@ -1243,7 +1242,7 @@
              <p><em>NOTE:</em> This flag may be removed or changed at any time without prior notice.
 	     </p>
 	  </item>
-	  <tag><marker id="+swt"><c>+swt very_low|low|medium|high|very_high</c></marker></tag>
+	  <tag><marker id="+swt"/><c>+swt very_low|low|medium|high|very_high</c></tag>
 	  <item>
              <p>Set scheduler wakeup threshold. Default is <c>medium</c>.
 	        The threshold determines when to wake up sleeping schedulers
@@ -1257,7 +1256,7 @@
 	        without prior notice.
 	     </p>
 	  </item>
-          <tag><marker id="+spp"><c>+spp Bool</c></marker></tag>
+          <tag><marker id="+spp"/><c>+spp Bool</c></tag>
           <item>
 	    <p>Set default scheduler hint for port parallelism. If set to
 	    <c>true</c>, the VM will schedule port tasks when doing so will
@@ -1273,7 +1272,7 @@
 	    option to <seealso
 	    marker="erlang#open_port/2">open_port/2</seealso></p>.
 	  </item>
-	  <tag><marker id="sched_thread_stack_size"><c><![CDATA[+sss size]]></c></marker></tag>
+	  <tag><marker id="sched_thread_stack_size"/><c><![CDATA[+sss size]]></c></tag>
 	  <item>
 	    <p>Suggested stack size, in kilowords, for scheduler threads.
             Valid range is 4-8192 kilowords. The default stack size
@@ -1281,11 +1280,11 @@
 	  </item>
         </taglist>
       </item>
-      <tag><marker id="+t"><c><![CDATA[+t size]]></c></marker></tag>
+      <tag><marker id="+t"/><c><![CDATA[+t size]]></c></tag>
       <item>
         <p>Set the maximum number of atoms the VM can handle. Default is 1048576.</p>
       </item>
-      <tag><marker id="+T"><c><![CDATA[+T Level]]></c></marker></tag>
+      <tag><marker id="+T"/><c><![CDATA[+T Level]]></c></tag>
       <item>
         <p>Enables modified timing and sets the modified timing level.
           Currently valid range is 0-9. The timing of the runtime system
@@ -1339,7 +1338,7 @@
       <item>
         <p>Miscellaneous flags.</p>
         <taglist>
-          <tag><marker id="+zdbbl"><c>+zdbbl size</c></marker></tag>
+          <tag><marker id="+zdbbl"/><c>+zdbbl size</c></tag>
           <item>
             <p>Set the distribution buffer busy limit
 	    (<seealso marker="erlang#system_info_dist_buf_busy_limit">dist_buf_busy_limit</seealso>)
@@ -1352,7 +1351,7 @@
             give lower latency and higher throughput at the expense
             of higher memory usage.</p>
           </item>
-          <tag><marker id="+zdntgc"><c>+zdntgc time</c></marker></tag>
+          <tag><marker id="+zdntgc"/><c>+zdntgc time</c></tag>
           <item>
             <p>Set the delayed node table garbage collection time
 	    (<seealso marker="erlang#system_info_delayed_node_table_gc">delayed_node_table_gc</seealso>)
@@ -1426,7 +1425,7 @@
 		  </item>
 	  </taglist>
       </item>
-      <tag><marker id="ERL_AFLAGS"><c><![CDATA[ERL_AFLAGS]]></c></marker></tag>
+      <tag><marker id="ERL_AFLAGS"/><c><![CDATA[ERL_AFLAGS]]></c></tag>
       <item>
         <p>The content of this environment variable will be added to the
           beginning of the command line for <c><![CDATA[erl]]></c>.</p>
@@ -1436,7 +1435,7 @@
           the <c><![CDATA[-extra]]></c> section, i.e. the end of the command line
           following after an <c><![CDATA[-extra]]></c> flag.</p>
       </item>
-      <tag><marker id="ERL_ZFLAGS"><c><![CDATA[ERL_ZFLAGS]]></c></marker> and <marker id="ERL_FLAGS"><c><![CDATA[ERL_FLAGS]]></c></marker></tag>
+      <tag><marker id="ERL_ZFLAGS"/><c><![CDATA[ERL_ZFLAGS]]></c> and <marker id="ERL_FLAGS"/><c><![CDATA[ERL_FLAGS]]></c></tag>
       <item>
         <p>The content of these environment variables will be added to the
           end of the command line for <c><![CDATA[erl]]></c>.</p>
diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml
index e1a58856f3..b435d5c9b4 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>2013</year>
+      <year>2015</year>
       <holder>Ericsson AB, All Rights Reserved</holder>
     </copyright>
     <legalnotice>
@@ -549,10 +549,10 @@ If Result > 0, the packet only consists of [119, Result].
 -->
 
     </section>
-    <marker id="distribution_handshake"/>
       <section>
 	<title>Distribution Handshake</title>
 	  <p>
+            <marker id="distribution_handshake"/>
 	    This section describes the distribution handshake protocol
 	    introduced in the OTP-R6 release of Erlang/OTP. This
 	    description was previously located in
diff --git a/erts/doc/src/erl_driver.xml b/erts/doc/src/erl_driver.xml
index 1f7fe0f961..42b6a3bfef 100644
--- a/erts/doc/src/erl_driver.xml
+++ b/erts/doc/src/erl_driver.xml
@@ -4,7 +4,7 @@
 <cref>
   <header>
     <copyright>
-      <year>2001</year><year>2014</year>
+      <year>2001</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -223,7 +223,7 @@
        asynchronous function calls, using a thread pool provided by
        Erlang. There is also a select call, that can be used for
        asynchronous drivers.</item>
-      <tag><marker id="multi_threading">Multi-threading</marker></tag>
+      <tag><marker id="multi_threading"/>Multi-threading</tag>
       <item>
       <p>A POSIX thread like API for multi-threading is provided. The
          Erlang driver thread API only provide a subset of the functionality
@@ -297,7 +297,7 @@
       <item><p>A driver can add and later remove drivers.</p></item>
       <tag>Monitoring processes</tag>
       <item><p>A driver can monitor a process that does not own a port.</p></item>
-      <tag><marker id="version_management">Version management</marker></tag>
+      <tag><marker id="version_management"/>Version management</tag>
       <item>
         <p>Version management is enabled for drivers that have set the
           <seealso marker="driver_entry#extended_marker">extended_marker</seealso>
@@ -384,12 +384,12 @@
       <item>
 	<p>
 	  Rewrite driver callback
-	  <c><seealso marker="driver_entry#control">control</seealso></c>
+	  <seealso marker="driver_entry#control"><c>control</c></seealso>
 	  to use return type <c>ErlDrvSSizeT</c> instead of <c>int</c>.
 	</p>
 	<p>
 	  Rewrite driver callback
-	  <c><seealso marker="driver_entry#call">call</seealso></c>
+	  <seealso marker="driver_entry#call"><c>call</c></seealso>
 	  to use return type <c>ErlDrvSSizeT</c> instead of <c>int</c>.
 	</p>
 	<note>
@@ -407,19 +407,19 @@
       <item>
 	<p>
 	  Driver callback
-	  <c><seealso marker="driver_entry#output">output</seealso></c>
+	  <seealso marker="driver_entry#output"><c>output</c></seealso>
 	  now gets <c>ErlDrvSizeT</c> as 3rd argument instead
 	  of previously <c>int</c>.
 	</p>
 	<p>
 	  Driver callback
-	  <c><seealso marker="driver_entry#control">control</seealso></c>
+	  <seealso marker="driver_entry#control"><c>control</c></seealso>
 	  now gets <c>ErlDrvSizeT</c> as 4th and 6th arguments instead
 	  of previously <c>int</c>.
 	</p>
 	<p>
 	  Driver callback
-	  <c><seealso marker="driver_entry#call">call</seealso></c>
+	  <seealso marker="driver_entry#call"><c>call</c></seealso>
 	  now gets <c>ErlDrvSizeT</c> as 4th and 6th arguments instead
 	  of previously <c>int</c>.
 	</p>
diff --git a/erts/doc/src/erl_ext_dist.xml b/erts/doc/src/erl_ext_dist.xml
index caf1e812c4..2ac974f497 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>2014</year>
+      <year>2015</year>
       <holder>Ericsson AB, All Rights Reserved</holder>
     </copyright>
     <legalnotice>
@@ -150,10 +150,10 @@
     </note>
   </section>
 
-  <marker id="distribution_header"/>
   <section>  
     <title>Distribution header</title>
     <p>
+      <marker id="distribution_header"/>
       As of erts version 5.7.2 the old atom cache protocol was
       dropped and a new one was introduced. This atom cache protocol
       introduced the distribution header. Nodes with erts versions
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index 23c3d5fcee..dae14b8d08 100644
--- a/erts/doc/src/erl_nif.xml
+++ b/erts/doc/src/erl_nif.xml
@@ -4,7 +4,7 @@
 <cref>
   <header>
     <copyright>
-      <year>2001</year><year>2013</year>
+      <year>2001</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -833,9 +833,10 @@ typedef enum {
       <fsummary>Determine if a term is an empty list</fsummary>
       <desc><p>Return true if <c>term</c> is an empty list.</p></desc>
     </func>
-    <marker id="enif_is_exception"/><func><name><ret>int</ret><nametext>enif_is_exception(ErlNifEnv* env, ERL_NIF_TERM term)</nametext></name>
+    <func><name><ret>int</ret><nametext>enif_is_exception(ErlNifEnv* env, ERL_NIF_TERM term)</nametext></name>
       <fsummary>Determine if a term is an exception</fsummary>
-      <desc><p>Return true if <c>term</c> is an exception.</p></desc>
+      <desc><marker id="enif_is_exception"/>
+        <p>Return true if <c>term</c> is an exception.</p></desc>
     </func>
     <func><name><ret>int</ret><nametext>enif_is_map(ErlNifEnv* env, ERL_NIF_TERM term)</nametext></name>
       <fsummary>Determine if a term is a map</fsummary>
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 70d000f763..df7af3ce6b 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -4,7 +4,7 @@
 <erlref>
   <header>
     <copyright>
-      <year>1996</year><year>2013</year>
+      <year>1996</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -63,10 +63,10 @@
       <desc><p>See <seealso marker="#timestamp/0">erlang:timestamp/0</seealso>.</p>
       </desc>
     </datatype>
-    <marker id="type_time_unit"/>
     <datatype>
       <name name="time_unit"></name>
-      <desc><p>Supported time unit representations:</p>
+      <desc><p><marker id="type_time_unit"/>
+        Supported time unit representations:</p>
         <taglist>
 	  <tag><c>PartsPerSecond :: integer() >= 1</c></tag>
 	  <item><p>Time unit expressed in parts per second. That is,
@@ -439,7 +439,7 @@
     <func>
       <name name="binary_to_list" arity="3"/>
       <fsummary>Converts part of a binary to a list.</fsummary>
-      <type_desc variable="Start">1..byte_size(<anno>Binary</anno>)</type_desc>
+      <type_desc variable="Start">1..byte_size(<c><anno>Binary</anno></c>)</type_desc>
       <desc>
         <p>As <c>binary_to_list/1</c>, but returns a list of integers
           corresponding to the bytes from position <c><anno>Start</anno></c> to
@@ -997,7 +997,7 @@
           the call, though. It is therefore usually advisable
           to remove such a <c>'DOWN'</c> message from the message queue
           after monitoring has been stopped.
-          <seealso marker="#demonitor/2">demonitor(<anno>MonitorRef</anno>, [flush])</seealso>
+          <seealso marker="#demonitor/2"><c>demonitor(<anno>MonitorRef</anno>, [flush])</c></seealso>
           can be used instead of
           <c>demonitor(<anno>MonitorRef</anno>)</c> if this cleanup is wanted.</p>
         <note>
@@ -1026,7 +1026,7 @@
         <p>The returned value is <c>true</c> unless <c>info</c> is part
           of <c><anno>OptionList</anno></c>.</p>
         <p><c>demonitor(<anno>MonitorRef</anno>, [])</c> is equivalent to
-          <seealso marker="#demonitor/1">demonitor(<anno>MonitorRef</anno>)</seealso>.</p>
+          <seealso marker="#demonitor/1"><c>demonitor(<anno>MonitorRef</anno>)</c></seealso>.</p>
         <p>The available <c><anno>Option</anno></c>s are as follows:</p>
         <taglist>
           <tag><c>flush</c></tag>
@@ -1114,8 +1114,8 @@
 
     <func>
       <name name="element" arity="2"/>
-      <type_desc variable="N">1..tuple_size(<anno>Tuple</anno>)</type_desc>
       <fsummary>Returns the Nth element of a tuple.</fsummary>
+      <type_desc variable="N">1..tuple_size(<anno>Tuple</anno>)</type_desc>
       <desc>
         <p>Returns the <c><anno>N</anno></c>th element (numbering from 1) of
           <c><anno>Tuple</anno></c>, for example:</p>
@@ -2855,10 +2855,10 @@ os_prompt% </pre>
     <func>
       <name name="monitor" arity="2" clause_i="1"/>
       <name name="monitor" arity="2" clause_i="2"/>
+      <fsummary>Starts monitoring.</fsummary>
       <type name="registered_name"/>
       <type name="registered_process_identifier"/>
       <type name="monitor_process_identifier"/>
-      <fsummary>Starts monitoring.</fsummary>
       <desc>
 	<p>Send a monitor request of type <c><anno>Type</anno></c> to the
 	entity identified by <c><anno>Item</anno></c>. The caller of
@@ -3581,8 +3581,8 @@ os_prompt% </pre>
 
     <func>
       <name name="phash" arity="2"/>
-      <type_desc variable="Range">Range = 1..2^32, Hash = 1..Range</type_desc>
       <fsummary>Portable hash function.</fsummary>
+      <type_desc variable="Range">Range = 1..2^32, Hash = 1..Range</type_desc>
       <desc>
         <p>Portable hash function that gives the same hash for
           the same Erlang term regardless of machine architecture and
@@ -3600,9 +3600,9 @@ os_prompt% </pre>
     <func>
       <name name="phash2" arity="1"/>
       <name name="phash2" arity="2"/>
+      <fsummary>Portable hash function.</fsummary>
       <type_desc variable="Range">1..2^32</type_desc>
       <type_desc variable="Hash">0..Range-1</type_desc>
-      <fsummary>Portable hash function.</fsummary>
       <desc>
         <p>Portable hash function that gives the same hash for
           the same Erlang term regardless of machine architecture and
@@ -5240,8 +5240,8 @@ true</pre>
 
     <func>
       <name name="setelement" arity="3"/>
-      <type_desc variable="Index">1..tuple_size(<anno>Tuple1</anno></type_desc>
       <fsummary>Sets the Nth element of a tuple.</fsummary>
+      <type_desc variable="Index">1..tuple_size(<anno>Tuple1</anno></type_desc>
       <desc>
         <p>Returns a tuple that is a copy of argument
           <c><anno>Tuple1</anno></c>
@@ -5582,8 +5582,8 @@ true</pre>
 
     <func>
       <name name="split_binary" arity="2"/>
-      <type_desc variable="Pos">0..byte_size(Bin)</type_desc>
       <fsummary>Splits a binary into two.</fsummary>
+      <type_desc variable="Pos">0..byte_size(Bin)</type_desc>
       <desc>
         <p>Returns a tuple containing the binaries that are the result
           of splitting <c><anno>Bin</anno></c> into two parts at
@@ -6475,7 +6475,7 @@ ok
 	    <p>Returns various size information for the specified
 	    allocator. The information returned is a subset of the
 	    information returned by
-	    <seealso marker="#system_info_allocator_tuple">erlang:system_info({allocator, <anno>Alloc</anno>})</seealso>.
+	    <seealso marker="#system_info_allocator_tuple"><c>erlang:system_info({allocator, <anno>Alloc</anno>})</c></seealso>.
 	    </p>
           </item>
         </taglist>
@@ -6855,7 +6855,7 @@ ok
 	      The return value will always be <c>false</c>, as the
 	      <c>elib_malloc</c> allocator has been removed.</p>
           </item>
-          <tag><marker id="system_info_eager_check_io"><c>eager_check_io</c></marker></tag>
+          <tag><marker id="system_info_eager_check_io"/><c>eager_check_io</c></tag>
           <item>
             <p>
 	      Returns the value of the <c>erl</c> command line flag
@@ -7058,7 +7058,7 @@ ok
 	    of versions in <seealso marker="doc/system_principles:versions">
 	    System principles</seealso> in System Documentation.</p>
           </item>
-          <tag><marker id="system_info_os_monotonic_time_source"><c>os_monotonic_time_source</c></marker></tag>
+          <tag><marker id="system_info_os_monotonic_time_source"/><c>os_monotonic_time_source</c></tag>
           <item>
             <p>Returns a list containing information about the source of
 	    <seealso marker="erts:time_correction#OS_Monotonic_Time">OS
@@ -7121,7 +7121,7 @@ ok
 	      <seealso marker="#type_time_unit">time unit</seealso>.</p></item>
 	    </taglist>
           </item>
-          <tag><marker id="system_info_os_system_time_source"><c>os_system_time_source</c></marker></tag>
+          <tag><marker id="system_info_os_system_time_source"/><c>os_system_time_source</c></tag>
           <item>
             <p>Returns a list containing information about the source of
 	    <seealso marker="erts:time_correction#OS_System_Time">OS
@@ -7298,7 +7298,6 @@ ok
 	    <seealso marker="#system_info_schedulers">erlang:system_info(schedulers)</seealso>
 	    and
 	    <seealso marker="#system_flag_schedulers_online">erlang:system_flag(schedulers_online, SchedulersOnline)</seealso>.</p>
-            <name name="system_info" arity="1" clause_i="49"/>
           </item>
           <tag><c>smp_support</c></tag>
           <item>
@@ -7486,7 +7485,7 @@ ok
           system performance monitoring settings are cleared.</p>
         <p>Calling the function with <c>{<anno>MonitorPid</anno>,
           <anno>Options</anno>}</c> as argument is the same as calling
-          <seealso marker="#system_monitor/2">erlang:system_monitor(<anno>MonitorPid</anno>, <anno>Options</anno>)</seealso>.</p>
+          <seealso marker="#system_monitor/2"><c>erlang:system_monitor(<anno>MonitorPid</anno>, <anno>Options</anno>)</c></seealso>.</p>
         <p>Returns the previous system monitor settings just like
           <seealso marker="#system_monitor/0">erlang:system_monitor/0</seealso>.</p>
       </desc>
@@ -7857,8 +7856,8 @@ ok
     </func>
     <func>
       <name name="timestamp" arity="0"/>
-      <type name="timestamp"/>
       <fsummary>Current Erlang System time</fsummary>
+      <type name="timestamp"/>
       <desc>
 	<p>Returns current
 	<seealso marker="time_correction#Erlang_System_Time">Erlang system time</seealso>
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml
index 376cae4a95..15b78ffa10 100644
--- a/erts/doc/src/erts_alloc.xml
+++ b/erts/doc/src/erts_alloc.xml
@@ -4,7 +4,7 @@
 <cref>
   <header>
     <copyright>
-      <year>2002</year><year>2014</year>
+      <year>2002</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -260,19 +260,19 @@
     <p>The following flags are available for configuration of
       <c>mseg_alloc</c>:</p>
     <taglist>
-      <tag><marker id="MMamcbf"><c><![CDATA[+MMamcbf <size>]]></c></marker></tag>
+      <tag><marker id="MMamcbf"/><c><![CDATA[+MMamcbf <size>]]></c></tag>
       <item>
        Absolute max cache bad fit (in kilobytes). A segment in the
        memory segment cache is not reused if its size exceeds the
        requested size with more than the value of this
        parameter. Default value is 4096. </item>
-      <tag><marker id="MMrmcbf"><c><![CDATA[+MMrmcbf <ratio>]]></c></marker></tag>
+      <tag><marker id="MMrmcbf"/><c><![CDATA[+MMrmcbf <ratio>]]></c></tag>
       <item>
        Relative max cache bad fit (in percent). A segment in the
        memory segment cache is not reused if its size exceeds the
        requested size with more than relative max cache bad fit
        percent of the requested size. Default value is 20.</item>
-      <tag><marker id="MMsco"><c><![CDATA[+MMsco true|false]]></c></marker></tag>
+      <tag><marker id="MMsco"/><c><![CDATA[+MMsco true|false]]></c></tag>
       <item>
 	Set <seealso marker="#MMscs">super carrier</seealso> only flag. This
 	flag defaults to <c>true</c>. When a super carrier is used and this
@@ -292,7 +292,7 @@
 	disabled on halfword heap systems. This flag will be
 	ignored on halfword heap systems.
       </item>
-      <tag><marker id="MMscrfsd"><c><![CDATA[+MMscrfsd <amount>]]></c></marker></tag>
+      <tag><marker id="MMscrfsd"/><c><![CDATA[+MMscrfsd <amount>]]></c></tag>
       <item>
 	Set <seealso marker="#MMscs">super carrier</seealso> reserved
 	free segment descriptors. This parameter defaults to <c>65536</c>.
@@ -305,7 +305,7 @@
 	<c>erts_mmap</c> tuple part of the result from calling
 	<seealso marker="erts:erlang#system_info_allocator_tuple">erlang:system_info({allocator, mseg_alloc})</seealso>.
       </item>
-      <tag><marker id="MMscrpm"><c><![CDATA[+MMscrpm true|false]]></c></marker></tag>
+      <tag><marker id="MMscrpm"/><c><![CDATA[+MMscrpm true|false]]></c></tag>
       <item>
 	Set <seealso marker="#MMscs">super carrier</seealso> reserve physical
 	memory flag. This flag defaults	to <c>true</c>. When this flag is
@@ -328,7 +328,7 @@
 	disabled on halfword heap systems. This flag will be
 	ignored on halfword heap systems.
       </item>
-      <tag><marker id="MMscs"><c><![CDATA[+MMscs <size in MB>]]></c></marker></tag>
+      <tag><marker id="MMscs"/><c><![CDATA[+MMscs <size in MB>]]></c></tag>
       <item>
 	Set super carrier size (in MB). The super carrier size defaults to
 	zero; i.e, the super carrier is by default disabled. The super
@@ -343,7 +343,7 @@
 	disabled on halfword heap systems. This flag will be
 	ignored on halfword heap systems.
       </item>
-      <tag><marker id="MMmcs"><c><![CDATA[+MMmcs <amount>]]></c></marker></tag>
+      <tag><marker id="MMmcs"/><c><![CDATA[+MMmcs <amount>]]></c></tag>
       <item>
        Max cached segments. The maximum number of memory segments
        stored in the memory segment cache. Valid range is
@@ -352,15 +352,15 @@
     <p>The following flags are available for configuration of
       <c>sys_alloc</c>:</p>
     <taglist>
-      <tag><marker id="MYe"><c>+MYe true</c></marker></tag>
+      <tag><marker id="MYe"/><c>+MYe true</c></tag>
       <item>
        Enable <c>sys_alloc</c>. Note: <c>sys_alloc</c> cannot be disabled.</item>
-      <tag><marker id="MYm"><c>+MYm libc</c></marker></tag>
+      <tag><marker id="MYm"/><c>+MYm libc</c></tag>
       <item>
       <c>malloc</c> library to use. Currently only
       <c>libc</c> is available. <c>libc</c> enables the standard
       <c>libc</c> malloc implementation. By default <c>libc</c> is used.</item>
-      <tag><marker id="MYtt"><c><![CDATA[+MYtt <size>]]></c></marker></tag>
+      <tag><marker id="MYtt"/><c><![CDATA[+MYtt <size>]]></c></tag>
       <item>
        Trim threshold size (in kilobytes). This is the maximum amount
        of free memory at the top of the heap (allocated by
@@ -372,7 +372,7 @@
        trim threshold is 128. <em>Note:</em> This flag will
        only have any effect when the emulator has been linked with
        the GNU C library, and uses its <c>malloc</c> implementation.</item>
-      <tag><marker id="MYtp"><c><![CDATA[+MYtp <size>]]></c></marker></tag>
+      <tag><marker id="MYtp"/><c><![CDATA[+MYtp <size>]]></c></tag>
       <item>
        Top pad size (in kilobytes). This is the amount of extra
        memory that will be allocated by <c>malloc</c> when
@@ -390,7 +390,7 @@
        subsystem identifier, only the specific allocator identified will be
        effected:</p>
     <taglist>
-      <tag><marker id="M_acul"><c><![CDATA[+M<S>acul <utilization>|de]]></c></marker></tag>
+      <tag><marker id="M_acul"/><c><![CDATA[+M<S>acul <utilization>|de]]></c></tag>
       <item>
 	Abandon carrier utilization limit. A valid
 	<c><![CDATA[<utilization>]]></c> is an integer in the range
@@ -422,7 +422,7 @@
 	allocators based on the <c>alloc_util</c> framework with the
 	exception of <c>temp_alloc</c> (which would be pointless).
       </item>
-      <tag><marker id="M_as"><c><![CDATA[+M<S>as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]></c></marker></tag>
+      <tag><marker id="M_as"/><c><![CDATA[+M<S>as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]></c></tag>
       <item>
        Allocation strategy. Valid strategies are <c>bf</c> (best fit),
       <c>aobf</c> (address order best fit), <c>aoff</c> (address order first fit),
@@ -430,7 +430,7 @@
       <c>aoffcaobf</c> (address order first fit carrier address order best fit),
       <c>gf</c> (good fit), and <c>af</c> (a fit). See 
       <seealso marker="#strategy">the description of allocation strategies</seealso> in "the <c>alloc_util</c> framework" section.</item>
-      <tag><marker id="M_asbcst"><c><![CDATA[+M<S>asbcst <size>]]></c></marker></tag>
+      <tag><marker id="M_asbcst"/><c><![CDATA[+M<S>asbcst <size>]]></c></tag>
       <item>
        Absolute singleblock carrier shrink threshold (in
        kilobytes). When a block located in an
@@ -438,23 +438,23 @@
        will be left unchanged if the amount of unused memory is less
        than this threshold; otherwise, the carrier will be shrunk.
        See also <seealso marker="#M_rsbcst">rsbcst</seealso>.</item>
-      <tag><marker id="M_e"><c><![CDATA[+M<S>e true|false]]></c></marker></tag>
+      <tag><marker id="M_e"/><c><![CDATA[+M<S>e true|false]]></c></tag>
       <item>
        Enable allocator <c><![CDATA[<S>]]></c>.</item>
-      <tag><marker id="M_lmbcs"><c><![CDATA[+M<S>lmbcs <size>]]></c></marker></tag>
+      <tag><marker id="M_lmbcs"/><c><![CDATA[+M<S>lmbcs <size>]]></c></tag>
       <item>
        Largest (<c>mseg_alloc</c>) multiblock carrier size (in
        kilobytes).  See <seealso marker="#mseg_mbc_sizes">the description
        on how sizes for mseg_alloc multiblock carriers are decided</seealso>
        in "the <c>alloc_util</c> framework" section. On 32-bit Unix style OS
        this limit can not be set higher than 128 megabyte.</item>
-      <tag><marker id="M_mbcgs"><c><![CDATA[+M<S>mbcgs <ratio>]]></c></marker></tag>
+      <tag><marker id="M_mbcgs"/><c><![CDATA[+M<S>mbcgs <ratio>]]></c></tag>
       <item>
        (<c>mseg_alloc</c>) multiblock carrier growth stages. See
       <seealso marker="#mseg_mbc_sizes">the description on how sizes for
        mseg_alloc multiblock carriers are decided</seealso>
        in "the <c>alloc_util</c> framework" section.</item>
-      <tag><marker id="M_mbsd"><c><![CDATA[+M<S>mbsd <depth>]]></c></marker></tag>
+      <tag><marker id="M_mbsd"/><c><![CDATA[+M<S>mbsd <depth>]]></c></tag>
       <item>
        Max block search depth. This flag has effect only if the
        good fit strategy has been selected for allocator
@@ -464,40 +464,40 @@
        search depth sets a limit on the maximum number of blocks to
        inspect in a free list during a search for suitable block
        satisfying the request.</item>
-      <tag><marker id="M_mmbcs"><c><![CDATA[+M<S>mmbcs <size>]]></c></marker></tag>
+      <tag><marker id="M_mmbcs"/><c><![CDATA[+M<S>mmbcs <size>]]></c></tag>
       <item>
        Main multiblock carrier size. Sets the size of the main
        multiblock carrier for allocator <c><![CDATA[<S>]]></c>. The main
        multiblock carrier is allocated via <c><![CDATA[sys_alloc]]></c> and is
        never deallocated.</item>
-      <tag><marker id="M_mmmbc"><c><![CDATA[+M<S>mmmbc <amount>]]></c></marker></tag>
+      <tag><marker id="M_mmmbc"/><c><![CDATA[+M<S>mmmbc <amount>]]></c></tag>
       <item>
        Max <c>mseg_alloc</c> multiblock carriers. Maximum number of
        multiblock carriers allocated via <c>mseg_alloc</c> by
        allocator <c><![CDATA[<S>]]></c>. When this limit has been reached,
        new multiblock carriers will be allocated via
       <c>sys_alloc</c>.</item>
-      <tag><marker id="M_mmsbc"><c><![CDATA[+M<S>mmsbc <amount>]]></c></marker></tag>
+      <tag><marker id="M_mmsbc"/><c><![CDATA[+M<S>mmsbc <amount>]]></c></tag>
       <item>
        Max <c>mseg_alloc</c> singleblock carriers. Maximum number of
        singleblock carriers allocated via <c>mseg_alloc</c> by
        allocator <c><![CDATA[<S>]]></c>. When this limit has been reached,
        new singleblock carriers will be allocated via
       <c>sys_alloc</c>.</item>
-      <tag><marker id="M_ramv"><c><![CDATA[+M<S>ramv <bool>]]></c></marker></tag>
+      <tag><marker id="M_ramv"/><c><![CDATA[+M<S>ramv <bool>]]></c></tag>
       <item>
        Realloc always moves. When enabled, reallocate operations will
        more or less be translated into an allocate, copy, free sequence.
        This often reduce memory fragmentation, but costs performance.
       </item>
-      <tag><marker id="M_rmbcmt"><c><![CDATA[+M<S>rmbcmt <ratio>]]></c></marker></tag>
+      <tag><marker id="M_rmbcmt"/><c><![CDATA[+M<S>rmbcmt <ratio>]]></c></tag>
       <item>
        Relative multiblock carrier move threshold (in percent). When
        a block located in a multiblock carrier is shrunk,
        the block will be moved if the ratio of the size of the returned
        memory compared to the previous size is more than this threshold;
        otherwise, the block will be shrunk at current location.</item>
-      <tag><marker id="M_rsbcmt"><c><![CDATA[+M<S>rsbcmt <ratio>]]></c></marker></tag>
+      <tag><marker id="M_rsbcmt"/><c><![CDATA[+M<S>rsbcmt <ratio>]]></c></tag>
       <item>
        Relative singleblock carrier move threshold (in percent). When
        a block located in a singleblock carrier is shrunk to
@@ -506,7 +506,7 @@
        the block will be left unchanged in the singleblock carrier if
        the ratio of unused memory is less than this threshold;
        otherwise, it will be moved into a multiblock carrier. </item>
-      <tag><marker id="M_rsbcst"><c><![CDATA[+M<S>rsbcst <ratio>]]></c></marker></tag>
+      <tag><marker id="M_rsbcst"/><c><![CDATA[+M<S>rsbcst <ratio>]]></c></tag>
       <item>
        Relative singleblock carrier shrink threshold (in
        percent). When a block located in an <c>mseg_alloc</c>
@@ -514,20 +514,20 @@
        unchanged if the ratio of unused memory is less than this
        threshold; otherwise, the carrier will be shrunk.
        See also <seealso marker="#M_asbcst">asbcst</seealso>.</item>
-      <tag><marker id="M_sbct"><c><![CDATA[+M<S>sbct <size>]]></c></marker></tag>
+      <tag><marker id="M_sbct"/><c><![CDATA[+M<S>sbct <size>]]></c></tag>
       <item>
        Singleblock carrier threshold. Blocks larger than this
        threshold will be placed in singleblock carriers. Blocks
        smaller than this threshold will be placed in multiblock
        carriers. On 32-bit Unix style OS this threshold can not be set higher
        than 8 megabytes.</item>
-      <tag><marker id="M_smbcs"><c><![CDATA[+M<S>smbcs <size>]]></c></marker></tag>
+      <tag><marker id="M_smbcs"/><c><![CDATA[+M<S>smbcs <size>]]></c></tag>
       <item>
        Smallest (<c>mseg_alloc</c>) multiblock carrier size (in
        kilobytes). See <seealso marker="#mseg_mbc_sizes">the description
        on how sizes for mseg_alloc multiblock carriers are decided</seealso>
        in "the <c>alloc_util</c> framework" section.</item>
-      <tag><marker id="M_t"><c><![CDATA[+M<S>t true|false]]></c></marker></tag>
+      <tag><marker id="M_t"/><c><![CDATA[+M<S>t true|false]]></c></tag>
       <item>
        <p>Multiple, thread specific instances of the allocator.
        This option will only have any effect on the runtime system
@@ -544,20 +544,20 @@
       <c>alloc_util</c>, i.e. all allocators based on <c>alloc_util</c>
       will be effected:</p>
     <taglist>
-      <tag><marker id="Muycs"><c><![CDATA[+Muycs <size>]]></c></marker></tag>
+      <tag><marker id="Muycs"/><c><![CDATA[+Muycs <size>]]></c></tag>
       <item>
       <c>sys_alloc</c> carrier size. Carriers allocated via
       <c>sys_alloc</c> will be allocated in sizes which are
        multiples of the <c>sys_alloc</c> carrier size. This is not
        true for main multiblock carriers and carriers allocated
        during a memory shortage, though.</item>
-      <tag><marker id="Mummc"><c><![CDATA[+Mummc <amount>]]></c></marker></tag>
+      <tag><marker id="Mummc"/><c><![CDATA[+Mummc <amount>]]></c></tag>
       <item>
        Max <c>mseg_alloc</c> carriers. Maximum number of carriers
        placed in separate memory segments. When this limit has been
        reached, new carriers will be placed in memory retrieved from
       <c>sys_alloc</c>.</item>
-      <tag><marker id="Musac"><c><![CDATA[+Musac <bool>]]></c></marker></tag>
+      <tag><marker id="Musac"/><c><![CDATA[+Musac <bool>]]></c></tag>
       <item>
 	Allow <c>sys_alloc</c> carriers. By default <c>true</c>. If
 	set to <c>false</c>, <c>sys_alloc</c> carriers will never be
@@ -565,19 +565,19 @@
     </taglist>
     <p>Instrumentation flags:</p>
     <taglist>
-      <tag><marker id="Mim"><c>+Mim true|false</c></marker></tag>
+      <tag><marker id="Mim"/><c>+Mim true|false</c></tag>
       <item>
        A map over current allocations is kept by the emulator. The
        allocation map can be retrieved via the <c>instrument</c>
        module. <c>+Mim true</c> implies <c>+Mis true</c>.
       <c>+Mim true</c> is the same as
       <seealso marker="erl#instr">-instr</seealso>.</item>
-      <tag><marker id="Mis"><c>+Mis true|false</c></marker></tag>
+      <tag><marker id="Mis"/><c>+Mis true|false</c></tag>
       <item>
        Status over allocated memory is kept by the emulator. The
        allocation status can be retrieved via the <c>instrument</c>
        module.</item>
-      <tag><marker id="Mit"><c>+Mit X</c></marker></tag>
+      <tag><marker id="Mit"/><c>+Mit X</c></tag>
       <item>
        Reserved for future use. Do <em>not</em> use this flag.</item>
     </taglist>
@@ -587,7 +587,7 @@
     </note>
     <p>Other flags:</p>
     <taglist>
-      <tag><marker id="Mea"><c>+Mea min|max|r9c|r10b|r11b|config</c></marker></tag>
+      <tag><marker id="Mea"/><c>+Mea min|max|r9c|r10b|r11b|config</c></tag>
       <item>
       <taglist>
         <tag><c>min</c></tag>
@@ -617,7 +617,7 @@
         </item>
       </taglist>
       </item>
-      <tag><marker id="Mlpm"><c>+Mlpm all|no</c></marker></tag>
+      <tag><marker id="Mlpm"/><c>+Mlpm all|no</c></tag>
       <item>Lock physical memory. The default value is <c>no</c>, i.e.,
       no physical memory will be locked. If set to <c>all</c>, all
       memory mappings made by the runtime system, will be locked into
diff --git a/erts/doc/src/escript.xml b/erts/doc/src/escript.xml
index 46110333f9..f12f76890c 100644
--- a/erts/doc/src/escript.xml
+++ b/erts/doc/src/escript.xml
@@ -4,7 +4,7 @@
 <comref>
   <header>
     <copyright>
-      <year>2007</year><year>2014</year>
+      <year>2007</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -96,8 +96,8 @@ $ <input>escript factorial 5</input>        </pre>
         <note><p>
           The encoding specified by the above mentioned comment
           applies to the script itself. The encoding of the
-          I/O-server, however, has to be set explicitly like this:
-<code>io:setopts([{encoding, unicode}])</code></p>
+          I/O-server, however, has to be set explicitly like this:</p>
+<code>io:setopts([{encoding, unicode}])</code>
           <p>The default encoding of the I/O-server for <c>standard_io</c>
           is <c>latin1</c>
           since the script runs in a non-interactive terminal
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml
index 3f6d5b1d89..f27e73b9d3 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -4,7 +4,7 @@
 <chapter>
   <header>
     <copyright>
-      <year>2004</year><year>2013</year>
+      <year>2004</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -708,19 +708,20 @@
         </item>
         <item>
           <p>
-	    Use persistent hashmaps for large Maps <p>Maps will use a
+	    Use persistent hashmaps for large Maps</p>
+          <p>Maps will use a
 	    persistent hashmap implementation when the number of
 	    pairs in a Map becomes sufficiently large. The change
 	    will occur when a Map reaches 33 pairs in size but this
-	    limit might change in the future.</p></p>
-	    <p>The most significant impact for the user by this
+	    limit might change in the future.</p>
+          <p>The most significant impact for the user by this
 	    change is speed, and to a lesser degree memory
 	    consumption and introspection of Maps. Memory consumption
 	    size is probalistic but lesser than <c>gb_trees</c> or
 	    <c>dict</c> for instance. Any other impacts will be
 	    transparent for the user except for the following
 	    changes.</p>
-	    <p>Semantics of Maps have changed in two incompatible
+          <p>Semantics of Maps have changed in two incompatible
 	    ways compared to the experimental implementation in OTP
 	    17:</p> <list> <item>Hashing of maps is done different by
 	    <c>erlang:phash2/1,2</c>, <c>erlang:phash/1</c> and
@@ -1368,7 +1369,7 @@
           <p>
 	    Improved support for atomic memory operations provided by
 	    the <url
-	    href="https://github.com/ivmai/libatomic_ops/"><c>libatomic_ops</c></url>
+	    href="https://github.com/ivmai/libatomic_ops/">libatomic_ops</url>
 	    library. Most importantly support for use of native
 	    double word atomics when implemented by
 	    <c>libatomic_ops</c> (for example, implemented for ARM).</p>
@@ -2335,22 +2336,28 @@
           <p>
 	    EEP43: New data type - Maps</p>
           <p>
-	    With Maps you may for instance: <taglist> <item><c>M0 =
-	    #{ a =&gt; 1, b =&gt; 2}, % create
-	    associations</c></item> <item><c>M1 = M0#{ a := 10 }, %
-	    update values</c></item> <item><c>M2 = M1#{ "hi" =&gt;
-	    "hello"}, % add new associations</c></item> <item><c>#{
-	    "hi" := V1, a := V2, b := V3} = M2. % match keys with
-	    values</c></item> </taglist></p>
+	    With Maps you may for instance:</p>
+          <taglist>
+            <tag/> <item><c>M0 = #{ a =&gt; 1, b =&gt; 2}, % create
+	      associations</c></item>
+            <tag/><item><c>M1 = M0#{ a := 10 }, % update values</c></item>
+            <tag/><item><c>M2 = M1#{ "hi" =&gt;
+	      "hello"}, % add new associations</c></item>
+            <tag/><item><c>#{ "hi" := V1, a := V2, b := V3} = M2.
+               % match keys with values</c></item>
+          </taglist>
           <p>
 	    For information on how to use Maps please see Map Expressions in the
 		<seealso marker="doc/reference_manual:expressions#map_expressions">
 			Reference Manual</seealso>.</p>
           <p>
 	    The current implementation is without the following
-	    features: <taglist> <item>No variable keys</item>
-	    <item>No single value access</item> <item>No map
-	    comprehensions</item> </taglist></p>
+	    features:</p>
+          <taglist>
+            <tag/><item>No variable keys</item>
+	    <tag/><item>No single value access</item>
+            <tag/><item>No map comprehensions</item>
+          </taglist>
           <p>
 	    Note that Maps is <em>experimental</em> during OTP 17.0.</p>
           <p>
@@ -4510,8 +4517,7 @@
           <p>
 	    Fix erl_prim_loader errors in handling of primary
 	    archive. The following errors have been corrected:</p>
-          <p>
-	    <list> <item> If primary archive was named "xxx", then a
+          <list> <item> If primary archive was named "xxx", then a
 	    file in the same directory named "xxxyyy" would be
 	    interpreted as a file named "yyy" inside the archive.
 	    </item> <item> erl_prim_loader did not correctly create
@@ -4526,7 +4532,8 @@
 	    erl_prim_loader:list_dir/1 would sometimes return an
 	    empty string inside the file list. This was a virtual
 	    element representing the top directory of the archive.
-	    This has been removed. </item> </list></p>
+	    This has been removed. </item>
+          </list>
           <p>
 	    Thanks to Tuncer Ayaz and Shunichi Shinohara for
 	    reporting and co-authoring corrections.</p>
@@ -6969,12 +6976,12 @@
 	    Own Id: OTP-8726 Aux Id: seq11617 </p>
         </item>
         <item>
-	    <p>Fix libm linking with --as-needed flag
+	    <p>Fix libm linking with --as-needed flag</p>
           <p>
 	    When building with "--as-needed" linker flags on Linux
 	    the build will fail. This has now been fixed.</p>
           <p>
-	    (Thanks to Christian Faulhammer)</p></p>
+	    (Thanks to Christian Faulhammer)</p>
           <p>
 	    Own Id: OTP-8728</p>
         </item>
diff --git a/erts/doc/src/time_correction.xml b/erts/doc/src/time_correction.xml
index 4de3739a36..236fe679cb 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>2014</year>
+      <year>1999</year><year>2015</year>
       <holder>Ericsson AB. All Rights Reserved.</holder>
     </copyright>
     <legalnotice>
@@ -897,6 +897,6 @@ EventTag = {Time, UMI}</code>
     and using these wrappers instead of using the API directly,
     the problem is solved. These wrappers can, for example,
     be implemented as in
-    <url href="time_compat.erl"><c>$ERL_TOP/erts/example/time_compat.erl</c></url>.</p>
+    <url href="time_compat.erl">$ERL_TOP/erts/example/time_compat.erl</url>.</p>
   </section>
 </chapter>
-- 
cgit v1.2.3