From a0e362765d9d4afb0211f49eb787d2139b3eb7be Mon Sep 17 00:00:00 2001
From: Erlang/OTP <otp@erlang.org>
Date: Mon, 7 Jan 2013 12:00:39 +0100
Subject: Prepare release

---
 erts/doc/src/notes.xml | 207 +++++++++++++++++++++++++++++++++++++++++++++++++
 erts/vsn.mk            |   2 +-
 2 files changed, 208 insertions(+), 1 deletion(-)

(limited to 'erts')

diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml
index e996d3e8e3..de6696671b 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -30,6 +30,213 @@
   </header>
   <p>This document describes the changes made to the ERTS application.</p>
 
+<section><title>Erts 5.10</title>
+
+    <section><title>Fixed Bugs and Malfunctions</title>
+      <list>
+        <item>
+          <p>
+	    Set new peeled off SCTP socket to nonblocking socket
+	    (Thanks to Jonas Falkevik)</p>
+          <p>
+	    Own Id: OTP-10491</p>
+        </item>
+        <item>
+          <p>
+	    Fix various typos (thanks to Tuncer Ayaz)</p>
+          <p>
+	    Own Id: OTP-10611</p>
+        </item>
+      </list>
+    </section>
+
+
+    <section><title>Improvements and New Features</title>
+      <list>
+        <item>
+          <p>
+	    A boolean socket option 'ipv6_v6only' for IPv6 sockets
+	    has been added. The default value of the option is OS
+	    dependent, so applications aiming to be portable should
+	    consider using <c>{ipv6_v6only,true}</c> when creating an
+	    <c>inet6</c> listening/destination socket, and if
+	    neccesary also create an <c>inet</c> socket on the same
+	    port for IPv4 traffic. See the documentation.</p>
+          <p>
+	    Own Id: OTP-8928 Aux Id: kunagi-193 [104] </p>
+        </item>
+        <item>
+	    <p>It is now allowed to define stubs for BIFs, to allow
+	    type specs to be written for BIFs. For example, if there
+	    is BIF called <c>lists:member/2</c>, a dummy definition
+	    of <c>lists:member/2</c> is now allowed.</p>
+          <p>
+	    Own Id: OTP-9861</p>
+        </item>
+        <item>
+          <p>
+	    Code loading and upgrade are now done without blocking
+	    the emulator in single threaded mode. This will improve
+	    realtime characteristics when code is loaded/upgraded on
+	    a running SMP system.</p>
+          <p>
+	    Own Id: OTP-9974</p>
+        </item>
+        <item>
+	    <p>In the SMP emulator, turning on and off tracing will
+	    no longer take down the system to single-scheduling. </p>
+          <p>
+	    Own Id: OTP-10122</p>
+        </item>
+        <item>
+          <p>
+	    Tuple funs (deprecated in R15B) are no longer supported.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-10170</p>
+        </item>
+        <item>
+	    <p>Major port improvements. The most notable:</p> <list>
+	    <item>New internal port table implementation allowing for
+	    both parallel reads as well as writes. Especially read
+	    operations have become really cheap.</item> <item>Dynamic
+	    allocation of port structures. This allow for a much
+	    larger maximum amount of ports allowed as a default. The
+	    previous default of 1024 has been raised to 65536.
+	    Maximum amount of ports can be set using the <seealso
+	    marker="erts:erl#+Q">+Q</seealso> command line flag of
+	    <seealso marker="erts:erl">erl(1)</seealso>. The
+	    previously used environment variable <c>ERL_MAX_PORTS</c>
+	    has been deprecated and scheduled for removal in
+	    OTP-R17.</item> <item>Major rewrite of scheduling of port
+	    tasks. Major benefits of the rewrite are reduced
+	    contention on run queue locks, and reduced amount of
+	    memory allocation operations needed. The rewrite was also
+	    necessary in order to make it possible to schedule
+	    signals from processes to ports.</item> <item>Improved
+	    internal thread progress functionality for easy
+	    management of unmanaged threads. This improvement was
+	    necessary for the rewrite of the port task
+	    scheduling.</item> <item>Rewrite of all process to port
+	    signal implementations in order to make it possible to
+	    schedule those operations. All port operations can now be
+	    scheduled which allows for reduced lock contention on the
+	    port lock as well as truly asynchronous communication
+	    with ports.</item> <item>Optimized lookup of port handles
+	    from drivers.</item> <item>Optimized driver lookup when
+	    creating ports.</item> <item>Preemptable <seealso
+	    marker="erts:erlang#ports-0">erlang:ports/0</seealso>
+	    BIF.</item> </list>
+	    <p>These changes imply changes of the characteristics of
+	    the system. The most notable:</p> <taglist> <tag>Order of
+	    signal delivery.</tag> <item>The previous implementation
+	    of the VM has delivered signals from processes to ports
+	    in a synchronous stricter fashion than required by the
+	    language. As of ERTS version 5.10, signals are truly
+	    asynchronously delivered. The order of signal delivery
+	    still adheres to the requirements of the language, but
+	    only to the requirements. That is, some signal sequences
+	    that previously always were delivered in one specific
+	    order may now from time to time be delivered in different
+	    orders. This may cause Erlang programs that have made
+	    <em>false assumptions</em> about signal delivery order to
+	    fail even though they previously succeeded. For more
+	    information about signal ordering guarantees, see the
+	    chapter on <seealso
+	    marker="erts:communication">communication</seealso> in
+	    the ERTS user's guide. The <seealso
+	    marker="erts:erl#+n">+n</seealso> command line flag of
+	    <seealso marker="erts:erl">erl(1)</seealso> can be
+	    helpful when trying to find signaling order bugs in
+	    Erlang code that have been exposed by these
+	    changes.</item> <tag>Latency of signals sent from
+	    processes to ports.</tag> <item>Signals from processes to
+	    ports where previously always delivered immediately. This
+	    kept latency for such communication to a minimum, but it
+	    could cause lock contention which was very expensive for
+	    the system as a whole. In order to keep this latency low
+	    also in the future, most signals from processes to ports
+	    are by default still delivered immediately as long as no
+	    conflicts occur. Such conflicts include not being able to
+	    acquire the port lock, but also include other conflicts.
+	    When a conflict occur, the signal will be scheduled for
+	    delivery at a later time. A scheduled signal delivery may
+	    cause a higher latency for this specific communication,
+	    but improves the overall performance of the system since
+	    it reduce lock contention between schedulers. The default
+	    behavior of only scheduling delivery of these signals on
+	    conflict can be changed by passing the <seealso
+	    marker="erts:erl#+spp">+spp</seealso> command line flag
+	    to <seealso marker="erts:erl">erl(1)</seealso>. The
+	    behavior can also be changed on port basis using the
+	    <seealso
+	    marker="erts:erlang#open_port_parallelism">parallelism</seealso>
+	    option of the <seealso
+	    marker="erts:erlang#open_port-2">open_port/2</seealso>
+	    BIF.</item> <tag>Execution time of the
+	    <c>erlang:ports/0</c> BIF.</tag> <item>Since <seealso
+	    marker="erts:erlang#ports-0">erlang:ports/0</seealso> now
+	    can be preempted, the responsiveness of the system as a
+	    whole has been improved. A call to <c>erlang:ports/0</c>
+	    may, however, take a much longer time to complete than
+	    before. How much longer time heavily depends on the
+	    system load.</item> </taglist>
+	    <p><em>Potential incompatibilities</em>:</p> <list>
+	    <item><c>driver_send_term()</c> has been deprecated and
+	    has been scheduled for removal in OTP-R17. Replace usage
+	    of <c>driver_send_term()</c> with usage of <seealso
+	    marker="erts:erl_driver#erl_drv_send_term">erl_drv_send_term()</seealso>.</item>
+	    <item><c>driver_output_term()</c> has been deprecated and
+	    has been scheduled for removal in OTP-R17. Replace usage
+	    of <c>driver_output_term()</c> with usage of <seealso
+	    marker="erts:erl_driver#erl_drv_output_term">erl_drv_output_term()</seealso>.</item>
+	    <item>The new function <seealso
+	    marker="erts:erl_driver#erl_drv_busy_msgq_limits">erl_drv_busy_msgq_limits()</seealso>
+	    has been added in order to able to control management of
+	    port queues.</item> </list>
+	    <p>The <seealso
+	    marker="erts:erl_driver#version_management">driver API
+	    version</seealso> has been bumped to 2.1 from 2.0 due to
+	    the above changes in the driver API.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-10336 Aux Id: kunagi-138
+	    [b5b97f67-fe34-46dc-93e6-a2931576db12] </p>
+        </item>
+        <item>
+          <p>
+	    Erlang specification 4.7.3 defines max tuple size to
+	    65535 elements It is now enforced to no more than
+	    16777215 elements (arity 24 bits)</p>
+          <p>
+	    Previous edge cases (28 bits) were not validated and
+	    could cause undefined behaviour.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-10633</p>
+        </item>
+        <item>
+          <p>
+	    The previous default of a maximum of 32768 simultaneous
+	    processes has been raised to 262144. This value can be
+	    changed using the the <seealso
+	    marker="erl#+P">+P</seealso> command line flag of
+	    <seealso marker="erl">erl(1)</seealso>. Note that the
+	    value passed now is considered as a hint, and that actual
+	    value chosen in most cases will be a power of two.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-10647 Aux Id: OTP-10336 </p>
+        </item>
+      </list>
+    </section>
+
+</section>
+
 <section><title>Erts 5.9.3.1</title>
 
     <section><title>Known Bugs and Problems</title>
diff --git a/erts/vsn.mk b/erts/vsn.mk
index 34410354bc..90e67aa474 100644
--- a/erts/vsn.mk
+++ b/erts/vsn.mk
@@ -17,7 +17,7 @@
 # %CopyrightEnd%
 # 
 
-VSN = 5.9.3.1
+VSN = 5.10
 SYSTEM_VSN = R15B03
 
 # Port number 4365 in 4.2
-- 
cgit v1.2.3