aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/doc/src/notes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/doc/src/notes.xml')
-rw-r--r--lib/kernel/doc/src/notes.xml2273
1 files changed, 2273 insertions, 0 deletions
diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml
new file mode 100644
index 0000000000..5bac964535
--- /dev/null
+++ b/lib/kernel/doc/src/notes.xml
@@ -0,0 +1,2273 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2004</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ </legalnotice>
+
+ <title>Kernel Release Notes</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date></date>
+ <rev></rev>
+ <file>notes.xml</file>
+ </header>
+ <p>This document describes the changes made to the Kernel application.</p>
+
+<section><title>Kernel 2.13.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>A link in <c>pg2(3)</c> has been fixed. (Thanks to
+ Christophe Romain.)</p>
+ <p>
+ Own Id: OTP-8198</p>
+ </item>
+ <item>
+ <p>
+ A ticker process could potentially be blocked
+ indefinitely trying to send a tick to a node not
+ responding. If this happened, the connection would not be
+ brought down as it should.</p>
+ <p>
+ Own Id: OTP-8218</p>
+ </item>
+ <item>
+ <p>A bug in <c>pg2</c> when members who died did not
+ leave process groups has been fixed. (Thanks to Matthew
+ Dempsky.)</p>
+ <p>
+ Own Id: OTP-8259</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ The documentation is now built with open source tools
+ (xsltproc and fop) that exists on most platforms. One
+ visible change is that the frames are removed.</p>
+ <p>
+ Own Id: OTP-8201</p>
+ </item>
+ <item>
+ <p>
+ The top directory in archive files does not need to have
+ a <c>-vsn</c> suffix anymore. For example if the archive
+ file has the name like <c>mnesia-4.4.7.ez</c> the top
+ directory in the archive can either be named
+ <c>mnesia</c> or <c>mnesia-4.4.7</c>. If the archive file
+ has a name like <c>mnesia.ez</c> the top directory in the
+ archive must be named <c>mnesia</c> as earlier.</p>
+ <p>
+ Own Id: OTP-8266</p>
+ </item>
+ <item>
+ <p>The -on_load() directive can be used to run a function
+ when a module is loaded. It is documented in the section
+ about code loading in the Reference Manual.</p>
+ <p>
+ Own Id: OTP-8295</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.13.3</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p> The DNS resolver client inet_res has been rewritten,
+ documented and released. See inet_res(3) and Erts User's
+ Guide: Inet configuration. </p><p> It can formally not be
+ incompatible with respect to earlier versions since there
+ was no earlier official version. However it was used
+ before and some details have changed. </p><p>
+ Configuration now initializes from /etc/resolv.conf and
+ /etc/hosts on all unix platforms regardless of which
+ distribution mode the node is started in. The directory
+ (/etc) these files are supposed to reside in can be
+ changed via an environment variable. These configuration
+ file locations can also be changed in the inet
+ configuration. The files are monitored for change and
+ re-read, which makes a few resolver configuration
+ variables out of application control. The /etc/hosts
+ entries have now their own cache table that is shadowed
+ (with lookup method 'file' is used) by the application
+ configured host entries. This problem (that inet_res
+ configuration only worked for distribution mode long
+ names) was among other reported by Matthew O'Gorman many
+ moons ago. </p><p> The lookup methods are still 'native'
+ only per default. Resolver configuration is done on all
+ Unix platforms just to get a usable configuration for
+ direct calls to inet_res. </p><p> The functions
+ <c>inet_res:nslookup/3..5</c> and
+ <c>inet_res:nnslookup/4..4</c> are no longer recommended
+ to use, instead use <c>inet_res:lookup/3..5</c> and
+ <c>inet_res:resolve/3..5</c> which provide clearer
+ argument types and the possibility to override options in
+ the call. </p><p> Users of previous unsupported versions
+ of inet_res have included internal header files to get to
+ the internal record definitions in order to examine DNS
+ replies. This is still unsupported and there are access
+ functions in inet_dns to use instead. These are
+ documented in inet_res(3). </p><p> Bug fix: a compression
+ reference loop would make DNS message decoding loop
+ forever. Problem reported by Florian Weimer. </p><p> Bug
+ fix and patch suggestion by Sergei Golovan: configuring
+ IPv6 nameservers did not work. His patch (as he warned)
+ created many UDP sockets; one per nameserver. This has
+ been fixed in the released version. </p><p> Improvement:
+ <c>inet_res</c> is now EDNS0 capable. The current
+ implementation is simple and does not probe and cache
+ EDNS info for nameservers, which a fully capable
+ implementation probably should do. EDNS has to be enabled
+ via resolver configuration, and if a nameserver replies
+ that it does not support EDNS, <c>inet_res</c> falls back
+ to a regular DNS query. </p><p> Improvement: now
+ <c>inet_res</c> automatically falls back to TCP if it
+ gets a truncated answer from a nameserver. </p><p>
+ Warning: some of the ancient and exotic record types
+ handled by <c>inet_res</c> and <c>inet_dns</c> are not
+ supported by current versions of BIND, so they could not
+ be tested after the rewrite, with reasonable effort, e.g
+ MD, MF, NULL, and SPF. The risk for bugs in these
+ particular records is still low since their code is
+ mostly shared with other tested record types. </p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7955 Aux Id: OTP-7107 OTP-6852 </p>
+ </item>
+ <item>
+ <p>
+ A TCP socket with option <c>{packet,4}</c> could crash
+ the emulator if it received a packet header with a very
+ large size value (>2Gb). The same bug caused
+ <c>erlang:decode_packet/3</c> to return faulty values.
+ (Thanks to Georgos Seganos.)</p>
+ <p>
+ Own Id: OTP-8102</p>
+ </item>
+ <item>
+ <p>
+ The file module has now a read_line/1 function similar to
+ the io:get_line/2, but with byte oriented semantics. The
+ function file:read_line/1 works for raw files as well,
+ but for good performance it is recommended to use it
+ together with the 'read_ahead' option for raw file
+ access.</p>
+ <p>
+ Own Id: OTP-8108</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.13.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ A bug when doing io:get_line (among other calls) from a
+ file opened with encoding other than latin1, causing
+ false unicode errors to occur, is now corrected.</p>
+ <p>
+ Own Id: OTP-7974</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Added functionality to get higher resolution timestamp
+ from system. The erlang:now function returns a timestamp
+ that's not always consistent with the actual operating
+ system time (due to resilience against large time changes
+ in the operating system). The function os:timestamp/0 is
+ added to get a similar timestamp as the one being
+ returned by erlang:now, but untouched by Erlangs time
+ correcting and smoothing algorithms. The timestamp
+ returned by os:timestamp is always consistent with the
+ operating systems view of time, like the calendar
+ functions for getting wall clock time, but with higher
+ resolution. Example of usage can be found in the os
+ manual page.</p>
+ <p>
+ Own Id: OTP-7971</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.13.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Many concurrent calls to <c>os:cmd/1</c> will only block
+ one scheduler thread at a time, making an smp emulator
+ more responsive if the OS is slow forking processes.</p>
+ <p>
+ Own Id: OTP-7890 Aux Id: seq11219 </p>
+ </item>
+ <item>
+ <p>
+ Fixed hanging early RPC that did IO operation during node
+ start.</p>
+ <p>
+ Own Id: OTP-7903 Aux Id: seq11224 </p>
+ </item>
+ <item>
+ <p>
+ The error behavior of gen_tcp and gen_udp has been
+ corrected. gen_tcp:connect/3,4 and gen_udp:send/4 now
+ returns {error,eafnosupport} for conflicting destination
+ address versus socket address family. Other corner cases
+ for IP address string host names combined with not using
+ the native (OS) resolver (which is not default) has also
+ been changed to return {error,nxdomain} instead of
+ {error,einval}. Those changes just may surprise old
+ existing code. gen_tcp:listen/2 and gen_udp:open/2 now
+ fails for conflicting local address versus socket address
+ family instead of trying to use an erroneous address.
+ Problem reported by Per Hedeland.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7929</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Several glitches and performance issues in the Unicode
+ and I/O-system implementation of R13A have been
+ corrected.</p>
+ <p>
+ Own Id: OTP-7896 Aux Id: OTP-7648 OTP-7887 </p>
+ </item>
+ <item>
+ <p>
+ The unsupported DNS resolver client inet_res has now been
+ improved to handle NAPTR queries.</p>
+ <p>
+ Own Id: OTP-7925 Aux Id: seq11231 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+
+<section><title>Kernel 2.13</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The old Erlang DNS resolver inet_res has been corrected
+ to handle TXT records with more than one character
+ string. Patch courtesy of Geoff Cant.</p>
+ <p>
+ Own Id: OTP-7588</p>
+ </item>
+ <item>
+ <p>When chunk reading a disk log opened in read_only
+ mode, bad terms could crash the disk log process.</p>
+ <p>
+ Own Id: OTP-7641 Aux Id: seq11090 </p>
+ </item>
+ <item>
+ <p>
+ <c>gen_tcp:send()</c> did sometimes (only observed on
+ Solaris) return <c>{error,enotconn}</c> instead of the
+ expected <c>{error,closed}</c> as the peer socket had
+ been explicitly closed.</p>
+ <p>
+ Own Id: OTP-7647</p>
+ </item>
+ <item>
+ <p>
+ The gen_sctp option sctp_peer_addr_params,
+ #sctp_paddrparams{address={IP,Port} was erroneously
+ decoded in the inet driver. This bug has now been
+ corrected.</p>
+ <p>
+ Own Id: OTP-7755</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Erlang programs can now access STDERR on platforms where
+ such a file descriptor is available by using the
+ io_server 'standard_error', i.e.
+ io:format(standard_error,"~s~n",[ErrorMessage]),</p>
+ <p>
+ Own Id: OTP-6688</p>
+ </item>
+ <item>
+ <p>
+ The format of the string returned by
+ <c>erlang:system_info(system_version)</c> (as well as the
+ first message when Erlang is started) has changed. The
+ string now contains the both the OTP version number as
+ well as the erts version number.</p>
+ <p>
+ Own Id: OTP-7649</p>
+ </item>
+ <item>
+ <p>As of this version, the global name server no longer
+ supports nodes running Erlang/OTP R10B.</p>
+ <p>
+ Own Id: OTP-7661</p>
+ </item>
+ <item>
+ <p>
+ A <c>{nodedown, Node}</c> message passed by the
+ <c>net_kernel:monitor_nodes/X</c> functionality is now
+ guaranteed to be sent after <c>Node</c> has been removed
+ from the result returned by <c>erlang:nodes/Y</c>.</p>
+ <p>
+ Own Id: OTP-7725</p>
+ </item>
+ <item>
+ <p>The deprecated functions <c>erlang:fault/1</c>,
+ <c>erlang:fault/2</c>, and <c>file:rawopen/2</c> have
+ been removed.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7812</p>
+ </item>
+ <item>
+ <p>
+ Nodes belonging to different independent clusters can now
+ co-exist on the same host with the help of a new
+ environment variable setting ERL_EPMD_PORT.</p>
+ <p>
+ Own Id: OTP-7826</p>
+ </item>
+ <item>
+ <p>The copyright notices have been updated.</p>
+ <p>
+ Own Id: OTP-7851</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.5.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>When chunk reading a disk log opened in read_only
+ mode, bad terms could crash the disk log process.</p>
+ <p>
+ Own Id: OTP-7641 Aux Id: seq11090 </p>
+ </item>
+ <item>
+ <p>
+ Calling <c>gen_tcp:send()</c> from several processes on
+ socket with option <c>send_timeout</c> could lead to much
+ longer timeout than specified. The solution is a new
+ socket option <c>{send_timeout_close,true}</c> that will
+ do automatic close on timeout. Subsequent calls to send
+ will then immediately fail due to the closed connection.</p>
+ <p>
+ Own Id: OTP-7731 Aux Id: seq11161 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.5</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>The documentation of <c>rpc:pmap/3</c> has been
+ corrected. (Thanks to Kirill Zaborski.)</p>
+ <p>
+ Own Id: OTP-7537</p>
+ </item>
+ <item>
+ <p>
+ The listen socket used for the distributed Erlang
+ protocol now uses the socket option 'reuseaddr', which is
+ useful when you force the listen port number using kernel
+ options 'inet_dist_listen_min' and 'inet_dist_listen_max'
+ and restarts a node with open connections.</p>
+ <p>
+ Own Id: OTP-7563</p>
+ </item>
+ <item>
+ <p>
+ Fixed memory leak of unclosed TCP-ports. A gen_tcp:send()
+ followed by a failing gen_tcp:recv() could in some cases
+ cause the port to linger after being closed.</p>
+ <p>
+ Own Id: OTP-7615</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>Processes spawned using <c>proc_lib</c> (including
+ <c>gen_server</c> and other library modules that use
+ <c>proc_lib</c>) no longer keep the entire argument list
+ for the initial call, but only the arity.</p>
+ <p>Also, if <c>proc_lib:spawn/1</c> is used to spawn a
+ fun, the actual fun is not kept, but only module,
+ function name, and arity of the function that implements
+ the fun.</p>
+ <p>The reason for the change is that keeping the initial
+ fun (or a fun in an argument list), would prevent
+ upgrading the code for the module. A secondary reason is
+ that keeping the fun and function arguments could waste a
+ significant amount of memory.</p>
+ <p>The drawback with the change is that the crash reports
+ will provide less precise information about the initial
+ call (only <c>Module:Function/Arity</c> instead of
+ <c>Module:Function(Arguments)</c>). The function
+ <c>proc_lib:initial_call/1</c> still returns a list, but
+ each argument has been replaced with a dummy atom.</p>
+ <p>
+ Own Id: OTP-7531 Aux Id: seq11036 </p>
+ </item>
+ <item>
+ <p>
+ <c>io:get_line/1</c> when reading from standard input is
+ now substantially faster. There are also some minor
+ performance improvements in <c>io:get_line/1</c> when
+ reading from any file opened in binary mode. (Thanks to
+ Fredrik Svahn.)</p>
+ <p>
+ Own Id: OTP-7542</p>
+ </item>
+ <item>
+ <p>
+ There is now experimental support for loading of code
+ from archive files. See the documentation of <c>code</c>,
+ <c>init</c>, <c>erl_prim_loader </c> and <c>escript</c>
+ for more info.</p>
+ <p>
+ The error handling of <c>escripts</c> has been improved.</p>
+ <p>
+ An <c>escript</c> may now set explicit arguments to the
+ emulator, such as <c>-smp enabled</c>.</p>
+ <p>
+ An <c>escript</c> may now contain a precompiled beam
+ file.</p>
+ <p>
+ An <c>escript</c> may now contain an archive file
+ containing one or more applications (experimental).</p>
+ <p>
+ The internal module <c>code_aux</c> has been removed.</p>
+ <p>
+ Own Id: OTP-7548 Aux Id: otp-6622 </p>
+ </item>
+ <item>
+ <p>
+ <c>code:is_sticky/1</c> is now documented. (Thanks to
+ Vlad Dumitrescu.)</p>
+ <p>
+ Own Id: OTP-7561</p>
+ </item>
+ <item>
+ <p>
+ In the job control mode, the "s" and "r" commands now
+ take an optional argument to specify which shell to
+ start. (Thanks to Robert Virding.)</p>
+ <p>
+ Own Id: OTP-7617</p>
+ </item>
+ <item>
+ <p>
+ <c>net_adm:world/0,1</c> could crash if called in an
+ emulator that has not been started with either the
+ <c>-sname</c> or <c>-name</c> option; now it will return
+ an empty list. (Thanks to Edwin Fine.)</p>
+ <p>
+ Own Id: OTP-7618</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Large files are now handled on Windows, where the
+ filesystem supports it.</p>
+ <p>
+ Own Id: OTP-7410</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ New BIF <c>erlang:decode_packet/3</c> that extracts a
+ protocol packet from a binary. Similar to the socket
+ option <c>{packet, Type}</c>. Also documented the socket
+ packet type <c>http</c> and made it official.
+ <em>NOTE</em>: The tuple format for <c>http</c> packets
+ sent from an active socket has been changed in an
+ incompatible way.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7404</p>
+ </item>
+ <item>
+ <p>
+ Setting the <c>{active,once}</c> for a socket (using
+ inets:setopts/2) is now specially optimized (because the
+ <c>{active,once}</c> option is typically used much more
+ frequently than other options).</p>
+ <p>
+ Own Id: OTP-7520</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.3</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ SCTP_ADDR_CONFIRMED events are now handled by gen_sctp.</p>
+ <p>
+ Own Id: OTP-7276</p>
+ </item>
+ <item>
+ <p>When leaving a process group with <c>pg2:leave/2</c>
+ the process was falsely assumed to be a member of the
+ group. This bug has been fixed.</p>
+ <p>
+ Own Id: OTP-7277</p>
+ </item>
+ <item>
+ <p>
+ In the Erlang shell, using up and down arrow keys, the
+ wrong previous command could sometimes be retrieved.</p>
+ <p>
+ Own Id: OTP-7278</p>
+ </item>
+ <item>
+ <p>
+ The documentation for <c>erlang:trace/3</c> has been
+ corrected.</p>
+ <p>
+ Own Id: OTP-7279 Aux Id: seq10927 </p>
+ </item>
+ <item>
+ <p>
+ In the SMP emulator, there was small risk that
+ <c>code:purge(Mod)</c> would kill a process that was
+ running code in <c>Mod</c> and unload the module
+ <c>Mod</c> before the process had terminated.
+ <c>code:purge(Mod)</c> now waits for confirmation (using
+ <c>erlang:monitor/2</c>) that the process has been killed
+ before proceeding.</p>
+ <p>
+ Own Id: OTP-7282</p>
+ </item>
+ <item>
+ <p>
+ <c>zlib:inflate</c> failed when the size of the inflated
+ data was an exact multiple of the internal buffer size
+ (4000 bytes by default).</p>
+ <p>
+ Own Id: OTP-7359</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Additional library directories can now be specified in
+ the environment variable ERL_LIBS. See the manual page
+ for the <c>code</c> module. (Thanks to Serge Aleynikov.)</p>
+ <p>
+ Own Id: OTP-6940</p>
+ </item>
+ <item>
+ <p>
+ crypto and zlib drivers improved to allow concurrent smp
+ access.</p>
+ <p>
+ Own Id: OTP-7262</p>
+ </item>
+ <item>
+ <p>
+ There is a new function <c>init:stop/1</c> which can be
+ used to shutdown the system cleanly AND generate a
+ non-zero exit status or crash dump. (Thanks to Magnus
+ Froberg.)</p>
+ <p>
+ Own Id: OTP-7308</p>
+ </item>
+ <item>
+ <p>
+ The <c>hide</c> option for <c>open_port/2</c> is now
+ documented. (Thanks to Richard Carlsson.)</p>
+ <p>
+ Own Id: OTP-7358</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+
+<section><title>Kernel 2.12.2.1</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ <c>os:cmd/1</c> on unix platforms now use <c>/bin/sh</c>
+ as shell instead of looking for <c>sh</c> in the
+ <c>PATH</c> environment.</p>
+ <p>
+ Own Id: OTP-7283</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+<section><title>Kernel 2.12.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>A bug caused by a race condition involving
+ <c>disk_log</c> and <c>pg2</c> has been fixed.</p>
+ <p>
+ Own Id: OTP-7209 Aux Id: seq10890 </p>
+ </item>
+ <item>
+ <p>The beta testing module <c>gen_sctp</c> now supports
+ active mode as stated in the documentation. Active mode
+ is still rather untested, and there are some issues about
+ what should be the right semantics for
+ <c>gen_sctp:connect/5</c>. In particular: should it be
+ blocking or non-blocking or choosable. There is a high
+ probability it will change semantics in a (near) future
+ patch.</p> <p>Try it, give comments and send in bug
+ reports!</p>
+ <p>
+ Own Id: OTP-7225</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p><c>erlang:system_info/1</c> now accepts the
+ <c>logical_processors</c>, and <c>debug_compiled</c>
+ arguments. For more info see the, <c>erlang(3)</c>
+ documentation.</p> <p>The scale factor returned by
+ <c>test_server:timetrap_scale_factor/0</c> is now also
+ effected if the emulator uses a larger amount of
+ scheduler threads than the amount of logical processors
+ on the system. </p>
+ <p>
+ Own Id: OTP-7175</p>
+ </item>
+ <item>
+ <p>
+ Updated the documentation for
+ <c>erlang:function_exported/3</c> and <c>io:format/2</c>
+ functions to no longer state that those functions are
+ kept mainly for backwards compatibility.</p>
+ <p>
+ Own Id: OTP-7186</p>
+ </item>
+ <item>
+ <p>
+ A process executing the <c>processes/0</c> BIF can now be
+ preempted by other processes during its execution. This
+ in order to disturb the rest of the system as little as
+ possible. The returned result is, of course, still a
+ consistent snapshot of existing processes at a time
+ during the call to <c>processes/0</c>.</p>
+ <p>
+ The documentation of the <c>processes/0</c> BIF and the
+ <c>is_process_alive/1</c> BIF have been updated in order
+ to clarify the difference between an existing process and
+ a process that is alive.</p>
+ <p>
+ Own Id: OTP-7213</p>
+ </item>
+ <item>
+ <p><c>tuple_size/1</c> and <c>byte_size/1</c> have been
+ substituted for <c>size/1</c> in the documentation.</p>
+ <p>
+ Own Id: OTP-7244</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.1.2</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The <c>{allocator_sizes, Alloc}</c> and
+ <c>alloc_util_allocators</c> arguments are now accepted
+ by <c>erlang:system_info/1</c>. For more information see
+ the <c>erlang(3)</c> documentation.</p>
+ <p>
+ Own Id: OTP-7167</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12.1.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fixed a problem in group that could cause the ssh server
+ to lose answers or hang.</p>
+ <p>
+ Own Id: OTP-7185 Aux Id: seq10871 </p>
+ </item>
+ </list>
+ </section>
+</section>
+<section><title>Kernel 2.12.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ file:read/2 and file:consult_stream/1,3 did not use an
+ empty prompt on I/O devices. This bug has now been
+ corrected.</p>
+ <p>
+ Own Id: OTP-7013</p>
+ </item>
+ <item>
+ <p>
+ The sctp driver has been updated to work against newer
+ lksctp packages e.g 1.0.7 that uses the API spelling
+ change adaption -> adaptation. Older lksctp (1.0.6) still
+ work. The erlang API in gen_sctp.erl and inet_sctp.hrl
+ now spells 'adaptation' regardless of the underlying C
+ API.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7120</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The documentation has been updated so as to reflect
+ the last updates of the Erlang shell as well as the minor
+ modifications of the control sequence <c>p</c> of the
+ <c>io_lib</c> module.</p> <p>Superfluous empty lines have
+ been removed from code examples and from Erlang shell
+ examples.</p>
+ <p>
+ Own Id: OTP-6944 Aux Id: OTP-6554, OTP-6911 </p>
+ </item>
+ <item>
+ <p><c>tuple_size/1</c> and <c>byte_size/1</c> have been
+ substituted for <c>size/1</c>.</p>
+ <p>
+ Own Id: OTP-7009</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.12</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ A bug for raw files when reading 0 bytes returning 'eof'
+ instead of empty data has been corrected.</p>
+ <p>
+ Own Id: OTP-6291 Aux Id: OTP-6967 </p>
+ </item>
+ <item>
+ <p>
+ A bug in gen_udp:fdopen reported by David Baird and also
+ found by Dialyzer has been fixed.</p>
+ <p>
+ Own Id: OTP-6836 Aux Id: OTP-6594 </p>
+ </item>
+ <item>
+ <p>
+ Calling <c>error_logger:tty(true)</c> multiple times does
+ not give multiple error log printouts.</p>
+ <p>
+ Own Id: OTP-6884 Aux Id: seq10767 </p>
+ </item>
+ <item>
+ <p>The global name server now ignores <c>nodeup</c>
+ messages when the command line flag <c>-connect_all
+ false</c> has been used. (Thanks to Trevor
+ Woollacott.)</p>
+ <p>
+ Own Id: OTP-6931</p>
+ </item>
+ <item>
+ <p>file:write_file/3, file:write/2 and file:read/2 could
+ crash (contrary to documentation) for odd enough file
+ system problems, e.g write to full file system. This bug
+ has now been corrected.</p> <p>In this process the file
+ module has been rewritten to produce better error codes.
+ Posix error codes now originate from the OS file system
+ calls or are generated only for very similar causes (for
+ example 'enomem' is generated if a memory allocation
+ fails, and 'einval' is generated if the file handle in
+ Erlang is a file handle but currently invalid).</p>
+ <p>More Erlang-ish error codes are now generated. For
+ example <c>{error,badarg}</c> is now returned from
+ <c>file:close/1</c> if the argument is not of a file
+ handle type. See file(3).</p> <p>The possibility to write
+ a single byte using <c>file:write/2</c> instead of a list
+ or binary of one byte, contradictory to the
+ documentation, has been removed.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6967 Aux Id: OTP-6597 OTP-6291 </p>
+ </item>
+ <item>
+ <p>
+ Monitor messages produced by the system monitor
+ functionality, and garbage collect trace messages could
+ contain erroneous heap and/or stack sizes when the actual
+ heaps and/or stacks were huge.</p>
+ <p>
+ As of erts version 5.6 the <c>large_heap</c> option to
+ <c>erlang:system_monitor/[1,2]</c> has been modified. The
+ monitor message is sent if the sum of the sizes of all
+ memory blocks allocated for all heap generations is equal
+ to or larger than the specified size. Previously the
+ monitor message was sent if the memory block allocated
+ for the youngest generation was equal to or larger than
+ the specified size.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6974 Aux Id: seq10796 </p>
+ </item>
+ <item>
+ <p>
+ <c>inet:getopts/2</c> returned random values on Windows
+ Vista.</p>
+ <p>
+ Own Id: OTP-7003</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Minor documentation corrections for file:pread/2 and
+ file:pread/3.</p>
+ <p>
+ Own Id: OTP-6853</p>
+ </item>
+ <item>
+ <p>
+ The deprecated functions <c>file:file_info/1</c>,
+ <c>init:get_flag/1</c>, <c>init:get_flags/0</c>, and
+ <c>init:get_args/0</c> have been removed.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6886</p>
+ </item>
+ <item>
+ <p>
+ Contract directives for modules in Kernel and STDLIB.</p>
+ <p>
+ Own Id: OTP-6895</p>
+ </item>
+ <item>
+ <p>The functions io:columns/0, io:columns/1, io:rows/0
+ and io:rows/1 are added to allow the user to get
+ information about the terminal geometry. The shell takes
+ some advantage of this when formatting output. For
+ regular files and other io-devices where height and width
+ are not applicable, the functions return
+ {error,enotsup}.</p>
+ <p>Potential incompatibility: If one has written a custom
+ io-handler, the handler has to either return an error or
+ take care of io-requests regarding terminal height and
+ width. Usually that is no problem as io-handlers, as a
+ rule of thumb, should give an error reply when receiving
+ unknown io-requests, instead of crashing.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6933</p>
+ </item>
+ <item>
+ <p>
+ The undocumented and unsupported functions
+ <c>inet:ip_to_bytes/1</c>, <c>inet:ip4_to_bytes/1</c>,
+ <c>inet:ip6_to_bytes/1</c>, and
+ <c>inet:bytes_to_ip6/16</c> have been removed.</p>
+ <p>
+ Own Id: OTP-6938</p>
+ </item>
+ <item>
+ <p>
+ Added new checksum combine functions to <c>zlib</c>. And
+ fixed a bug in <c>zlib:deflate</c>. Thanks Matthew
+ Dempsky.</p>
+ <p>
+ Own Id: OTP-6970</p>
+ </item>
+ <item>
+ <p>
+ The <c>spawn_monitor/1</c> and <c>spawn_monitor/3</c> BIFs
+ are now auto-imported (i.e. they no longer need an
+ <c>erlang:</c> prefix).</p>
+ <p>
+ Own Id: OTP-6975</p>
+ </item>
+ <item>
+ <p>All functions in the <c>code</c> module now fail with
+ an exception if they are called with obviously bad
+ arguments, such as a tuple when an atom was expected.
+ Some functions now also fail for undocumented argument
+ types (for instance, <c>ensure_loaded/1</c> now only
+ accepts an atom as documented; it used to accept a string
+ too).</p>
+ <p><c>Dialyzer</c> will generally emit warnings for any
+ calls that use undocumented argument types. Even if the
+ call happens to still work in R12B, you should correct
+ your code. A future release will adhere to the
+ documentation.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6983</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.11.5.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The kernel parameter dist_auto_connect once could fail to
+ block a node if massive parallel sends were issued
+ during a transient failure of network communication</p>
+ <p>
+ Own Id: OTP-6893 Aux Id: seq10753 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Kernel 2.11.5.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The internal (rarely used) DNS resolver has been modified
+ to not use the domain search list when asked to resolve
+ an absolute name; a name with a terminating dot. There
+ was also a bug causing it to create malformed DNS queries
+ for absolute names that has been corrected, correction
+ suggested by Scott Lystig Fritchie. The code has also
+ been corrected to look up cached RRs in the same search
+ order as non-cached, now allows having the root domain
+ among the search domains, and can now actually do a zone
+ transfer request.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-6806 Aux Id: seq10714 EABln35459 </p>
+ </item>
+ <item>
+ <p>
+ zlib:close/1 would leave an EXIT message in the message
+ queue if the calling process had the trap_exit flag
+ enabled.</p>
+ <p>
+ Own Id: OTP-6811</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The documentation of <c>process_flag(priority,
+ Level)</c> has been updated, see the <c>erlang(3)</c>
+ documentation. </p>
+ <p>
+ Own Id: OTP-6745 Aux Id: OTP-6715 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+ <section>
+ <title>Kernel 2.11.5</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The shell has been updated to fix the following flaws:
+ Shell process exit left you with an unresponsive initial
+ shell if not using oldshell. Starting a restricted shell
+ with a nonexisting callback module resulted in a shell
+ where no commands could be used, not even init:stop/0.
+ Fun's could not be used as parameters to local shell
+ functions (in shell_default or user_default) when
+ restricted_shell was active.</p>
+ <p>Own Id: OTP-6537</p>
+ </item>
+ <item>
+ <p>The undocumented feature gen_tcp:fdopen/2 was broken
+ in R11B-4. It is now fixed again.</p>
+ <p>Own Id: OTP-6615</p>
+ </item>
+ <item>
+ <p>Corrected cancellation of timers in three places in the
+ inet_res module. (Problem found by Dialyzer.)</p>
+ <p>Own Id: OTP-6676</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Corrected protocol layer flue for socket options
+ SO_LINGER, SO_SNDBUF and SO_RCVBUF, for SCTP.</p>
+ <p>Own Id: OTP-6625 Aux Id: OTP-6336 </p>
+ </item>
+ <item>
+ <p>The behaviour of the inet option {active,once} on peer
+ close is improved and documented.</p>
+ <p>Own Id: OTP-6681</p>
+ </item>
+ <item>
+ <p>The inet option send_timeout for connection oriented
+ sockets is added to allow for timeouts in communicating
+ send requests to the underlying TCP stack.</p>
+ <p>Own Id: OTP-6684 Aux Id: seq10637 OTP-6681 </p>
+ </item>
+ <item>
+ <p>Minor Makefile changes.</p>
+ <p>Own Id: OTP-6689 Aux Id: OTP-6742 </p>
+ </item>
+ <item>
+ <p>The documentation of <c>process_flag(priority, Level)</c> has been updated, see the <c>erlang(3)</c>
+ documentation. </p>
+ <p>Own Id: OTP-6715</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.4.2</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>process_flag/2 accepts the new flag <c>sensitive</c>.</p>
+ <p>Own Id: OTP-6592 Aux Id: seq10555 </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.4.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>A bug in gen_udp:open that broke the 'fd' option has been
+ fixed.</p>
+ <p>Own Id: OTP-6594 Aux Id: seq10619 </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.4</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Added a warning to the documentation for the
+ <c>error_logger</c> functions <c>error_msg/1,2</c>,
+ <c>warning_msg/1,2</c> and <c>info_msg/1,2</c> that
+ calling these function with bad arguments can crash the
+ standard event handler.</p>
+ <p>Own Id: OTP-4575 Aux Id: seq7693 </p>
+ </item>
+ <item>
+ <p>A bug in <c>inet_db</c> concerning getting the resolver
+ option <c>retry</c> has been corrected.</p>
+ <p>Own Id: OTP-6380 Aux Id: seq10534 </p>
+ </item>
+ <item>
+ <p>Names registered by calling
+ <c>global:register_name()</c> or
+ <c>global:re_register_name()</c> were not always
+ unregistered when the registering or registered process
+ died. This bug has been fixed.</p>
+ <p>Own Id: OTP-6428</p>
+ </item>
+ <item>
+ <p>When setting the kernel configuration parameter
+ <c>error_logger</c> to <c>false</c>, the documentation
+ stated that "No error logger handler is installed". This
+ is true, but error logging is not turned off, as the
+ initial, primitive error logger event handler is kept,
+ printing raw event messages to tty.</p>
+ <p>Changing this behavior can be viewed as a backward
+ incompatible change. Instead a new value <c>silent</c>
+ for the configuration parameter has been added, which
+ ensures that error logging is completely turned off.</p>
+ <p>Own Id: OTP-6445</p>
+ </item>
+ <item>
+ <p>Clarified the documentation for <c>code:lib_dir/1</c> and
+ <c>code:priv_dir/1</c>. The functions traverse the names
+ of the code path, they do not search the actual
+ directories.</p>
+ <p>Own Id: OTP-6466</p>
+ </item>
+ <item>
+ <p><c>io:setopts</c> returned <c>{error,badarg}</c>, when
+ called with only an <c>expand_fun</c> argument. (Thanks to
+ igwan.)</p>
+ <p>Own Id: OTP-6508</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>An interface towards the SCTP Socket API Extensions
+ has been implemented.It is an Open Source patch courtesy
+ of Serge Aleynikov and Leonid Timochouk. The Erlang code
+ parts has been adapted by the OTP team, changing the
+ Erlang API somewhat.</p>
+ <p>The Erlang interface consists of the module
+ <c>gen_sctp</c> and an include file
+ <c>-include_lib("kernel/include/inet_sctp.hrl").</c> for
+ option record definitions. The <c>gen_sctp</c> module is
+ documented.</p>
+ <p>The delivered Open Source patch, before the OTP team
+ rewrites, was written according to
+ <url href="http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-13">http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-13</url>
+ and was claimed to work fine, tested on Linux Fedora Core
+ 5.0 (kernel 2.6.15-2054 or later) and on Solaris 10 and
+ 11. The OTP team rewrites used the same standard document
+ but might have accidentally broken some functionality. If
+ so, it will soon be patched to working state. The tricky
+ parts in C and the general design has essentially not
+ changed. During the rewrites the code was hand tested on
+ SuSE Linux Enterprise Server 10, and briefly on Solaris
+ 10. Feedbach on code and docs is very much
+ appreciated.</p>
+ <p>The SCTP interface is in beta state. It has only been
+ hand tested and has no automatic test suites in OTP
+ meaning everything is most certainly not tested. Socket
+ active mode is broken. IPv6 is not tested. The documentation
+ has been reworked due to the API changes,
+ but has not been proofread after this.</p>
+ <p>Thank you from the OTP team to Serge Aleynikov and
+ Leonid Timochouk for a valuable contribution. We hope we
+ have not messed it up too much.</p>
+ <p>Own Id: OTP-6336</p>
+ </item>
+ <item>
+ <p>A <c>{minor_version,Version}</c> option is now recognized
+ by <c>term_to_binary/2</c>. {minor_version,1} will cause
+ floats to be encoded in an exact and more space-efficient
+ way compared to the previous encoding.</p>
+ <p>Own Id: OTP-6434</p>
+ </item>
+ <item>
+ <p>Monitoring of nodes has been improved. Now the following
+ properties apply to
+ <c>net_kernel:monitor_nodes/[1,2]</c>:</p>
+ <list type="bulleted">
+ <item><c>nodeup</c> messages will be delivered before delivery
+ of any message from the remote node passed through the
+ newly established connection. </item>
+ <item><c>nodedown</c> messages will not be delivered until all
+ messages from the remote node that have been passed
+ through the connection have been delivered. </item>
+ <item>Subscriptions can also be made before the
+ <c>net_kernel</c> server has been started. </item>
+ </list>
+ <p>Own Id: OTP-6481</p>
+ </item>
+ <item>
+ <p>Setting and getting socket options in a "raw" fashion is
+ now allowed. Using this feature will inevitably produce
+ non portable code, but will allow setting ang getting
+ arbitrary uncommon options on TCP stacks that do have
+ them.</p>
+ <p>Own Id: OTP-6519</p>
+ </item>
+ <item>
+ <p>Dialyzer warnings have been eliminated.</p>
+ <p>Own Id: OTP-6523</p>
+ </item>
+ <item>
+ <p>The documentation for <c>file:delete/1</c> and
+ <c>file:set_cwd/1</c> has been updated to clarify what
+ happens if the input arguments are of an incorrect type.</p>
+ <p>Own Id: OTP-6535</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.3.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>An erroneous packet size could be used for the first
+ messages passed through a newly established connection
+ between two Erlang nodes. This could cause messages to be
+ discarded, or termination of the connection.</p>
+ <p>Own Id: OTP-6473</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.3</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>On Unix, the <c>unix:cmd/1</c> function could leave an
+ 'EXIT' message in the message queue for the calling
+ process That problem was more likely to happen in an SMP
+ emulator.</p>
+ <p>Own Id: OTP-6368</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>More interfaces are added in erl_ddll, to support
+ different usage scenarios.</p>
+ <p>Own Id: OTP-6307 Aux Id: OTP-6234 </p>
+ </item>
+ <item>
+ <p>Locks set by calling <c>global:set_lock()</c> were not
+ always deleted when the locking process died. This bug
+ has been fixed.</p>
+ <p>Own Id: OTP-6341 Aux Id: seq10445 </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.2</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Behavior in case of disappeared nodes when using he
+ dist_auto_connect once got changed in R11B-1. The
+ timeouts regarding normal distributed operations is now
+ reverted to the old (pre R11B-1).</p>
+ <p>Own Id: OTP-6258 Aux Id: OTP-6200, seq10449 </p>
+ </item>
+ <item>
+ <p>Start-up problems for the internal process used by the
+ <c>inet:gethostbyname()</c> functions were eliminated. If
+ the internal process (<c>inet_gethost_native</c>) had not
+ previously been started, and if several processes at the
+ same time called one of the <c>inet:gethostbyname()</c>
+ functions, the calls could fail.</p>
+ <p>Own Id: OTP-6286</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Code cleanup: the old internal obsolete file_server has
+ been removed. It was only used when communicating with R7
+ and older nodes.</p>
+ <p>Own Id: OTP-6245</p>
+ </item>
+ <item>
+ <p>Trying to open a non-existent or badly formed disk log
+ no longer results in a crash report. In particular,
+ <c>ets:file2tab/1</c> reports no error when the argument
+ is not a well-formed disk log file. (The return value has
+ not been changed, it is still an error tuple.)</p>
+ <p>Own Id: OTP-6278 Aux Id: seq10421 </p>
+ </item>
+ <item>
+ <p>There are new BIFs <c>erlang:spawn_monitor/1,3</c>,
+ and the new option <c>monitor</c> for
+ <c>spawn_opt/2,3,4,5</c>.</p>
+ <p>The <c>observer_backend</c> module has been updated to
+ handle the new BIFs.</p>
+ <p>Own Id: OTP-6281</p>
+ </item>
+ <item>
+ <p>To help Dialyzer find more bugs, many functions in the
+ Kernel and STDLIB applications now only accept arguments
+ of the type that is documented.</p>
+ <p>For instance, the functions <c>lists:prefix/2</c> and
+ <c>lists:suffix/2</c> are documented to only accept lists
+ as their arguments, but they actually accepted anything
+ and returned <c>false</c>. That has been changed so that
+ the functions cause an exception if one or both arguments
+ are not lists.</p>
+ <p>Also, the <c>string:strip/3</c> function is documented
+ to take a character argument that is a character to strip
+ from one or both ends of the string. Given a list instead
+ of a character, it used to do nothing, but will now cause
+ an exception.</p>
+ <p>Dialyzer will find most cases where those functions
+ are passed arguments of the wrong type.</p>
+ <p>*** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>Own Id: OTP-6295</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.1.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>There is now an option read_packets for UDP sockets that
+ sets the maximum number of UDP packets that will be read
+ for each invocation of the socket driver.</p>
+ <p>Own Id: OTP-6249 Aux Id: seq10452 </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>In R11B-0, the erl_ddll server process is always started.
+ Despite that, the configuration parameter
+ <c>start_ddll</c> for the Kernel application was still
+ obeyed, which would cause the erl_ddll server to be
+ started TWICE (and the system shutting down as a result).
+ In this release, <c>start_ddll</c> is no longer used and
+ its documentation has been removed.</p>
+ <p>Own Id: OTP-6163</p>
+ </item>
+ <item>
+ <p>The kernel option {dist_auto_connect,once} could block
+ out nodes that had never been connected, causing
+ persistent partitioning of networks. Furthermore, partial
+ restarts of networks could cause inconsistent global name
+ databases. Both problems are now solved.</p>
+ <p>Own Id: OTP-6200 Aux Id: seq10377 </p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Late arriving tcp_closed and udp_closed messages are now
+ removed from the message queue of a process calling
+ gen_tcp:close/1, gen_udp:close/1, and inet:close/1.</p>
+ <p>Own Id: OTP-6197</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.11</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When repairing a disk log with a corrupt index file
+ (caused by for instance a hard disk failure) the old
+ contents of the index file is kept unmodified. This will
+ make repeated attempts to open the disk log fail every
+ time.</p>
+ <p>Own Id: OTP-5558 Aux Id: seq9823 </p>
+ </item>
+ <item>
+ <p>Previously <c>unlink/1</c> and <c>erlang:demonitor/2</c>
+ behaved completely asynchronous. This had one undesirable
+ effect, though. You could never know when you were
+ guaranteed <em>not</em> to be affected by a link that you
+ had unlinked or a monitor that you had demonitored.</p>
+ <p>The new behavior of <c>unlink/1</c> and
+ <c>erlang:demonitor/2</c> can be viewed as two operations
+ performed atomically. Asynchronously send an unlink
+ signal or a demonitor signal, and ignore any future
+ results of the link or monitor.</p>
+ <p><em>NOTE</em>: This change can cause some obscure code
+ to fail which previously did not. For example, the
+ following code might hang:</p>
+ <code type="none">
+ Mon = erlang:monitor(process, Pid),
+ %% ...
+ exit(Pid, bang),
+ erlang:demonitor(Mon),
+ receive
+ {'DOWN', Mon, process, Pid, _} -> ok
+ %% We were previously guaranteed to get a down message
+ %% (since we exited the process ourself), so we could
+ %% in this case leave out:
+ %% after 0 -> ok
+ end,
+ </code>
+ <p>*** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>Own Id: OTP-5772</p>
+ </item>
+ <item>
+ <p>The behavior when an application fails to start and
+ possibly causes the runtime system to halt has been
+ cleaned up, including fixing some minor bugs.</p>
+ <p><c>application_controller</c> should now always terminate
+ with a non-nested string, meaning the slogan in an
+ <c>erl_crash.dump</c> should always be easy to read.</p>
+ <p><c>init</c> now makes sure that the slogan passed to
+ <c>erlang:halt/1</c> does not exceed the maximum allowed
+ length.</p>
+ <p>Redundant calls to <c>list_to_atom/1</c> has been removed
+ from the primitive <c>error_logger</c> event handler.
+ (Thanks Serge Aleynikov for pointing this out).</p>
+ <p>The changes only affects the contents of the error
+ messages and crashdump file slogan.</p>
+ <p>Own Id: OTP-5964</p>
+ </item>
+ <item>
+ <p>The <c>erl_ddll</c> server is now started when OTP is
+ started and placed under the Kernel supervisor. This
+ fixes several minor issues. It used to be started on
+ demand.</p>
+ <p>The documentation for the <c>start</c> and <c>stop</c>
+ functions in the <c>erl_ddll</c> module has been removed,
+ as those functions are not meant to be used by other
+ applications.</p>
+ <p>Furthermore, the <c>erl_ddll:stop/1</c> function no longer
+ terminates the <c>erl_ddll</c> server, as that would
+ terminate the entire runtime system.</p>
+ <p>Own Id: OTP-6033</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Removed some unused functions from
+ <c>application_master</c>.</p>
+ <p>Own Id: OTP-3889</p>
+ </item>
+ <item>
+ <p>Global no longer allows the registration of a process
+ under more than one name. If the old (buggy) behavior is
+ desired the Kernel application variable
+ <c>global_multi_name_action</c> can be given the value
+ <c>allow</c>.</p>
+ <p>Own Id: OTP-5640 Aux Id: OTP-5603</p>
+ </item>
+ <item>
+ <p>The (slightly misleading) warnings that was shown when
+ the <c>erlang.erl</c> file was compiled has been
+ eliminated.</p>
+ <p>Own Id: OTP-5947</p>
+ </item>
+ <item>
+ <p>The <c>auth</c> module API is deprecated.</p>
+ <p>Own Id: OTP-6037</p>
+ </item>
+ <item>
+ <p>Added <c>erlang:demonitor/2</c>, making it possible to at
+ the same time flush a received <c>'DOWN'</c> message, if
+ there is one. See <c>erlang(3)</c>.</p>
+ <p>Own Id: OTP-6100 Aux Id: OTP-5772 </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.13</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Large files (more than 2 GBytes) are now handled on
+ Solaris 8.</p>
+ <p>Own Id: OTP-5849 Aux Id: seq10157</p>
+ </item>
+ <item>
+ <p>During startup, a garbage <c>{'DOWN', ...}</c> message was
+ left by <c>inet_gethost_native</c>, that caused problems
+ for the starting code server.</p>
+ <p>Own Id: OTP-5978 Aux Id: OTP-5974</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p><c>global</c> now makes several attempts to connect nodes
+ when maintaining the fully connected network. More than one
+ attempt is sometimes needed under very heavy load.</p>
+ <p>Own Id: OTP-5889</p>
+ </item>
+ <item>
+ <p><c>erl_epmd</c> now explicitly sets the timeout to
+ <c>infinity</c> when calling <c>gen_server:call</c>. The
+ old timeout of 15 seconds could time out under very heavy
+ load.</p>
+ <p>Own Id: OTP-5959</p>
+ </item>
+ <item>
+ <p>Corrected the start of code server to use reference-tagged
+ tuples to ensure that an unexpected message sent to
+ the parent process does not cause a halt of the system.
+ Also removed the useless <c>start/*</c> functions in both
+ <c>code.erl</c> and <c>code_server.erl</c> and no longer
+ exports the <c>init</c> function from
+ <c>code_server.erl</c>.</p>
+ <p>Own Id: OTP-5974 Aux Id: seq10243, OTP-5978</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.12</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>A bug in <c>global</c> has been fixed: the locker process
+ added <c>nonode@nohost</c> to the list of nodes to lock.
+ This could happen before any nodes got known to the global
+ name server. Depending on net configuration the symptom was
+ a delay.</p>
+ <p>Own Id: OTP-5792 Aux Id: OTP-5563</p>
+ </item>
+ <item>
+ <p>If an <c>.app</c> file is missing, the error reason
+ returned by <c>application:load/1</c> has been corrected
+ to <c>{"no such file or directory", "FILE.app"}</c>,
+ instead of the less informative <c>{"unknown POSIX error","FILE.app"}</c>.</p>
+ <p>Own Id: OTP-5809</p>
+ </item>
+ <item>
+ <p>Bug fixes: <c>disk_log:accessible_logs/0</c> no longer
+ reports all <c>pg2</c> process groups as distributed disk
+ logs; <c>disk_log:pid2name/1</c> did not recognize
+ processes of distributed disk logs.</p>
+ <p>Own Id: OTP-5810</p>
+ </item>
+ <item>
+ <p>The functions <c>file:consult/1</c>,
+ <c>file:path_consult/2</c>, <c>file:eval/1,2</c>,
+ <c>file:path_eval/2,3</c>, <c>file:script/1,2</c>,
+ <c>file:path_script/2,3</c> now return correct line
+ numbers in error tuples.</p>
+ <p>Own Id: OTP-5814</p>
+ </item>
+ <item>
+ <p>If there were user-defined variables in the boot script,
+ and their values were not provided using
+ the <c>-boot_var</c> option, the emulator would refuse to
+ start with a confusing error message. Corrected to show a
+ clear, understandable message.</p>
+ <p>The <c>prim_file</c> module was modified to not depend
+ on the <c>lists</c> module, to make it possible to start
+ the emulator using a user-defined loader. (Thanks to
+ Martin Bjorklund.)</p>
+ <p>Own Id: OTP-5828 Aux Id: seq10151</p>
+ </item>
+ <item>
+ <p>Minor corrections in the description of open modes.
+ (Thanks to Richard Carlsson.)</p>
+ <p>Own Id: OTP-5856</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p><c>application_controller</c> now terminates with the
+ actual error reason, instead of <c>shutdown</c>. This
+ means that the crash dump now should be somewhat more
+ informative, in the case where the runtime system is
+ terminated due to an error in an application.</p>
+ <p>Example: If the (permanent) application <c>app1</c> fails
+ to start, the slogan now will be: "<c>Kernel pid terminated (application_controller) ({application_start_failure,app1,{shutdown, {app1,start,[normal,[]]}}})</c>"</p>
+ <p>rather than the previous "<c>Kernel pid terminated (application_controller) (shutdown)</c>".</p>
+ <p>Own Id: OTP-5811</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.11.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Timers could sometimes timeout too early. This bug has
+ now been fixed.</p>
+ <p>Automatic cancellation of timers created by
+ <c>erlang:send_after(Time,</c> pid(), Msg), and
+ <c>erlang:start_timer(Time,</c> pid(), Msg) has been
+ introduced.
+ Timers created with the receiver specified by a pid, will
+ automatically be cancelled when the receiver exits. For
+ more information see the <c>erlang(3)</c> man page.</p>
+ <p>In order to be able to maintain a larger amount of timers
+ without increasing the maintenance cost, the internal
+ timer wheel and bif timer table have been enlarged.</p>
+ <p>Also a number of minor bif timer optimizations have been
+ implemented.</p>
+ <p>Own Id: OTP-5795 Aux Id: OTP-5090, seq8913, seq10139,
+ OTP-5782</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Documentation improvements:</p>
+ <p>- documentation for <c>erlang:link/1</c> corrected</p>
+ <p>- command line flag <c>-code_path_cache</c> added</p>
+ <p>- <c>erl</c> command line flags clarifications</p>
+ <p>- <c>net_kernel(3)</c> clarifications</p>
+ <p>Own Id: OTP-5847</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.11</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Several bug fixes and improvements in the global name
+ registration facility (see <c>global(3)</c>):</p>
+ <list type="bulleted">
+ <item>the name resolving procedure did not always unlink no
+ longer registered processes;</item>
+ <item>the global name could sometimes hang when a
+ <c>nodedown</c> was immediately followed by a
+ <c>nodeup</c>;</item>
+ <item>global names were not always unregistered when a node
+ went down;</item>
+ <item>it is now possible to set and delete locks at
+ the same time as the global name server is resolving
+ names--the handling of global locks has been separated
+ from registration of global names;</item>
+ </list>
+ <p>As of this version, <c>global</c> no longer supports nodes
+ running Erlang/OTP R7B or earlier.</p>
+ <p>*** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>Own Id: OTP-5563</p>
+ </item>
+ <item>
+ <p>The functions <c>global:set_lock/3</c> and
+ <c>global:trans/4</c> now accept the value <c>0</c>
+ (zero) of the <c>Retries</c> argument.</p>
+ <p>Own Id: OTP-5737</p>
+ </item>
+ <item>
+ <p>The <c>inet:getaddr(Addr, Family)</c> no longer
+ validates the <c>Addr</c> argument if it is a 4 or 8
+ tuple containing the IP address, except for the size of
+ the tuple and that it contains integers in the correct
+ range.</p>
+ <p>The reason for the change is that validation could
+ cause the following sequence of calls to fail:</p>
+ <p><c>{ok,Addr} = inet:getaddr(localhost, inet6), gen_tcp:connect(Addr, 7, [inet6])</c></p>
+ <p>Own Id: OTP-5743</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The previously undocumented and UNSUPPORTED <c>zlib</c>
+ module has been updated in an incompatible way and many
+ bugs have been corrected. It is now also documented.</p>
+ <p>*** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>Own Id: OTP-5715</p>
+ </item>
+ <item>
+ <p>Added <c>application</c> interface functions
+ <c>which_applications/1</c>, <c>set_env/4</c> and
+ <c>unset_env/3</c>, which take an additional
+ <c>Timeout</c> argument. To be used in situations where
+ the standard gen_server timeout (5000ms) is not adequate.</p>
+ <p>Own Id: OTP-5724 Aux Id: seq10083</p>
+ </item>
+ <item>
+ <p>Improved documentation regarding synchronized start of
+ applications with included applications (using start
+ phases and <c>application_starter</c>).</p>
+ <p>Own Id: OTP-5754</p>
+ </item>
+ <item>
+ <p>New socket options <c>priority</c> and <c>tos</c> for
+ platforms that support them (currently only Linux).</p>
+ <p>Own Id: OTP-5756</p>
+ </item>
+ <item>
+ <p>The global name server has been optimized when it comes
+ to maintaining a fully connected network.</p>
+ <p>Own Id: OTP-5770</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.10.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The native resolver has gotten an control API for
+ extended debugging and soft restart. It is:
+ <c>inet_gethost_native:control(Control)</c> <br></br>
+<c>Control = {debug_level,Level} | soft_restart</c> <br></br>
+<c>Level = integer() in the range 0-4</c>.</p>
+ <p>Own Id: OTP-5751 Aux Id: EABln25013</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.10</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>If several processes (at the same node) simultaneously
+ tried to start the same distributed application, this
+ could lead to <c>application:start</c> returning an
+ erroneous value, or even hang.</p>
+ <p>Own Id: OTP-5606 Aux Id: seq9838</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The manual pages for most of the Kernel and some of
+ the STDLIB modules have been updated, in particular
+ regarding type definitions.</p>
+ <p>The documentation of the return value for
+ <c>erts:info/1</c> has been corrected.</p>
+ <p>The documentation for <c>erlang:statistics/1</c> now
+ lists all possible arguments.</p>
+ <p>Own Id: OTP-5360</p>
+ </item>
+ <item>
+ <p>When the native resolver fails a <c>gethostbyaddr</c>
+ lookup, <c>nxdomain</c> should be returned. There should be
+ no attempt to fallback on a routine that succeeds if only
+ the syntax of the IP address is valid. This has been fixed.</p>
+ <p>Own Id: OTP-5598 Aux Id: OTP-5576</p>
+ </item>
+ <item>
+ <p>Replaced some tuple funs with the new <c>fun M:F/A</c>
+ construct.</p>
+ <p>The high-order functions in the <c>lists</c> module no
+ longer accept bad funs under any circumstances.
+ '<c>lists:map(bad_fun, [])</c>' used to return
+ '<c>[]</c>' but now causes an exception.</p>
+ <p>Unused, broken compatibility code in the <c>ets</c>
+ module was removed. (Thanks to Dialyzer.)</p>
+ <p>Eliminated 5 discrepancies found by Dialyzer in the
+ Appmon application.</p>
+ <p>Own Id: OTP-5633</p>
+ </item>
+ <item>
+ <p>The possibility to have comments following the list of
+ tuples in a config file (file specified with
+ the <c>-config</c> flag) has been added.</p>
+ <p>Own Id: OTP-5661 Aux Id: seq10003</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.9</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>'<c>erl -config sys.config</c>' would fail to start if
+ the <c>sys.config</c> file did not contain any whitespace
+ at all after the dot. (Thanks to Anders Nygren.)</p>
+ <p>Own Id: OTP-5543</p>
+ </item>
+ <item>
+ <p>A bug regarding tcp sockets which results in hanging
+ <c>gen_tcp:send/2</c> has been corrected. To encounter
+ this bug you needed one process that read from a socket,
+ one that wrote more date than the reader read out so the
+ sender got suspended, and then the reader closed the
+ socket. (Reported and diagnosed by Alexey Shchepin.)</p>
+ <p>Corrected a bug in the (undocumented and unsupported)
+ option <c>{packet,http}</c> for <c>gen_tcp.</c>
+ (Thanks to Claes Wikstrom and Luke Gorrie.)</p>
+ <p>Updated the documentation regarding the second argument to
+ <c>gen_tcp:recv/2</c>, the <c>Length</c> to receive.</p>
+ <p>Own Id: OTP-5582 Aux Id: seq9839</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>At startup, the Erlang resolver hosts table was used to
+ look up the name of the local (and possibly stand alone)
+ host. This was incorrect. The configured resolver method
+ is now used for this purpose.</p>
+ <p>Own Id: OTP-5393</p>
+ </item>
+ <item>
+ <p>The <c>erlang:port_info/1</c> BIF is now documented. Minor
+ corrections of the documentation for
+ <c>erlang:port_info/2</c>.</p>
+ <p>Added a note to the documentation of the <c>math</c> module
+ that all functions are not available on all platforms.</p>
+ <p>Added more information about the <c>+c</c> option in
+ the <c>erl</c> man page in the ERTS documentation.</p>
+ <p>Own Id: OTP-5555</p>
+ </item>
+ <item>
+ <p>The new <c>fun M:F/A</c> construct creates a fun that
+ refers to the latest version of <c>M:F/A.</c> This syntax is
+ meant to replace tuple funs <c>{M,F}</c> which have many
+ problems.</p>
+ <p>The new type test <c>is_function(Fun,A)</c> (which may be
+ used in guards) test whether <c>Fun</c> is a fun that can be
+ applied with <c>A</c> arguments. (Currently, <c>Fun</c> can
+ also be a tuple fun.)</p>
+ <p>Own Id: OTP-5584</p>
+ </item>
+ <item>
+ <p>According to the documentation <c>global</c> implements
+ the equivalent of <c>register/2</c>, which returns
+ <c>badarg</c> if a process is already registered. As it
+ turns out there is no check in <c>global</c> if a process is
+ registered under more than one name. If some process is
+ accidentaly or by design given several names, it is
+ possible that the name registry becomes inconsistent due
+ to the way the resolve function is called when name
+ clashes are discovered (see <c>register_name/3</c> in
+ <c>global(3)</c>).</p>
+ <p>In OTP R11B <c>global</c> will not allow the registration of
+ a process under more than one name. To help finding code
+ where <c>no</c> will be returned, a Kernel application
+ variable, <c>global_multi_name_action</c>, is hereby
+ introduced. Depending on its value (<c>info</c>,
+ <c>warning</c>, or <c>error</c>), messages are sent to
+ the error logger when <c>global</c> discovers that some
+ process is given more than one name. The variable only
+ affects the node where it is defined.</p>
+ <p>Own Id: OTP-5603</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.8</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>In case of a DNS lookup loop, <c>inet_db:getbyname</c> ends
+ up building an infinite list. This has been fixed.</p>
+ <p>Own Id: OTP-5449</p>
+ </item>
+ <item>
+ <p>When doing an <c>inet6</c> name lookup on an IPv4 address
+ it was possible to get an address on IPv4 format back. This
+ has been corrected. Some other minor inconsistencies
+ regarding IPv6 name lookup have also been corrected.</p>
+ <p>Own Id: OTP-5576</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.7</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Under certain circumstances the <c>net_kernel</c> could
+ emit spurious nodedown messages. This bug has been fixed.</p>
+ <p>Own Id: OTP-5396</p>
+ </item>
+ <item>
+ <p>Removed description of the <c>keep_zombies</c>
+ configuration parameter in the <c>kernel</c> man page.</p>
+ <p>Own Id: OTP-5497</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Eliminated Dialyzer warnings (caused by dead code) in
+ the <c>init</c> and <c>prim_file</c> modules.</p>
+ <p>Own Id: OTP-5496</p>
+ </item>
+ <item>
+ <p><c>inet_config</c> now also checks the environment variable
+ <c>ERL_INETRC</c> for a possible user configuration file.
+ See the ERTS User's Guide for details.</p>
+ <p>Own Id: OTP-5512</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.6</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The <c>c</c> option for the <c>+B</c> flag has been
+ introduced which makes it possible to use Ctrl-C
+ (Ctrl-Break on Windows) to interrupt the shell process
+ rather than to invoke the emulator break handler. All new
+ <c>+B</c> options are also supported on Windows (werl) as
+ of now. Furthermore, Ctrl-C on Windows has now been
+ reserved for copying text (what Ctrl-Ins was used for
+ previously). Ctrl-Break should be used for break handling.
+ Lastly, the documentation of the system flags has been
+ updated.</p>
+ <p>Own Id: OTP-5388</p>
+ </item>
+ <item>
+ <p>The possibility to start the Erlang shell in parallel
+ with the rest of the system was reintroduced for backwards
+ compatibility in STDLIB 1.13.1. The flag to be used for
+ this is now called <c>async_shell_start</c> and has
+ been documented. New shells started from the JCL menu are
+ not synchronized with <c>init</c> anymore. This makes it
+ possible to start a new shell (e.g. for debugging purposes)
+ even if the initial shell has not come up.</p>
+ <p>Own Id: OTP-5406 Aux Id: OTP-5218</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.5</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Documentation for <c>erlang:binary_to_float/1</c> deleted.
+ The BIF itself was removed several releases ago.</p>
+ <p>Updated documentation for <c>apply/2</c> and
+ <c>apply/3</c>.</p>
+ <p>Own Id: OTP-5391</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p><c>net_kernel:monitor_nodes/2</c> which takes a flag and an
+ option list has been added. By use of
+ <c>net_kernel:monitor_nodes/2</c> one can subscribe for
+ <c>nodeup/nodedown</c> messages with extra information. It
+ is now possible to monitor hidden nodes, and get
+ <c>nodedown</c> reason. See the <c>net_kernel(3)</c>
+ documentation for more information.</p>
+ <p>Own Id: OTP-5374</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.4</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The application master for an application now terminates
+ the application faster, which reduces the risk for
+ timeouts in other parts of the system.</p>
+ <p>Own Id: OTP-5363 Aux Id: EABln19084</p>
+ </item>
+ <item>
+ <p>A BIF <c>erlang:raise/3</c> has been added. See the manual
+ for details. It is intended for internal system programming
+ only, advanced error handling.</p>
+ <p>Own Id: OTP-5376 Aux Id: OTP-5257</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.3</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>With the <c>-eval</c> flag (<c>erl -eval Expr</c>), an
+ arbitrary expression can be evaluated during system
+ initialization. This is documented in <c>init(3)</c>.</p>
+ <p>Own Id: OTP-5260</p>
+ </item>
+ <item>
+ <p>The unsupported and undocumented modules <c>socks5</c>,
+ <c>socks5_auth</c>, <c>socks5_tcp</c>, and <c>socks5_udp</c>
+ have been removed.</p>
+ <p>Own Id: OTP-5266</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Kernel 2.10.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The Pman 'trace shell' functionality was broken and has
+ now been fixed. Furthermore, Pman could not correctly
+ find the pid of the active shell if more than one shell
+ process was running on the node. This has also been
+ corrected.</p>
+ <p>Own Id: OTP-5191</p>
+ </item>
+ <item>
+ <p>The documentation for the <c>auth:open/1</c> function
+ which no longer exists has been removed. (Thanks to
+ Miguel Barreiro.)</p>
+ <p>Own Id: OTP-5208</p>
+ </item>
+ <item>
+ <p>Corrected the <c>crc32/3</c> function in the undocumented
+ and unsupported <c>zlib</c> module.</p>
+ <p>Own Id: OTP-5227</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>You can now start Erlang with the <c>-rsh</c> flag which
+ gives you a remote initial shell instead of a local one.
+ Example:</p>
+ <pre>
+ erl -sname this_node -rsh other_node@other_host
+ </pre>
+ <p>Own Id: OTP-5210</p>
+ </item>
+ <item>
+ <p>If <c>/etc/hosts</c> specified two hosts with the same IP
+ address (on separate lines), only the last host would be
+ registered by inet_db during inet configuration. This has
+ been corrected now so that both aliases are registered
+ with the same IP address.</p>
+ <p>Own Id: OTP-5212 Aux Id: seq7128</p>
+ </item>
+ <item>
+ <p>The documentation for BIFs that take I/O lists have
+ been clarified. Those are <c>list_to_binary/1</c>,
+ <c>port_command/2</c>, <c>port_control/3</c>.</p>
+ <p>Documentation for all <c>is_*</c> BIFs (such as
+ <c>is_atom/1</c>) has been added.</p>
+ <p>Removed the documentation for
+ <c>erlang:float_to_binary/2</c> which was removed from
+ the run-time system several releases ago.</p>
+ <p>Own Id: OTP-5222</p>
+ </item>
+ </list>
+ </section>
+ </section>
+</chapter>
+