diff options
Diffstat (limited to 'erts')
-rw-r--r-- | erts/doc/src/notes.xml | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7ac66906ee..e70e314abe 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,213 +30,6 @@ </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> |