1 Kernel Release Notes
This document describes the changes made to the Kernel application.
1.1 Kernel 2.10.4
1.1.1 Fixed Bugs and Malfunctions
-
The application master for an application now terminates
the application faster, which reduces the risk for
timeouts in other parts of the system
Own Id: OTP-5363 Aux Id: EABln19084
-
A BIF erlang:raise/3 has been added. See the manual for
details. It is intended for internal system programming
only, advanced error handling.
Own Id: OTP-5376 Aux Id: OTP-5257
1.2 Kernel 2.10.3
1.2.1 Improvements and New Features
-
With the -eval flag (
erl -eval Expr
), an arbitrary
expression can be evaluated during system initialization.
This is documented in init(3).
Own Id: OTP-5260
-
The unsupported and undocumented modules socks5,
socks5_auth, socks5_tcp, and socks5_udp have been
removed.
Own Id: OTP-5266
1.3 Kernel 2.10.1
1.3.1 Fixed Bugs and Malfunctions
-
The pman 'trace shell' functionality was broken as 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.
Own Id: OTP-5191
-
The documentation for the
auth:open/1
function
which no longer exists has been removed. (Thanks to
Miguel Barreiro.)
Own Id: OTP-5208
-
Corrected the
crc32/3
function in the undocumented
and unsupported zlib
module.
Own Id: OTP-5227
1.3.2 Improvements and New Features
-
You can now start Erlang with the -rsh flag which gives
you a remote initial shell instead of a local one.
Example: erl -sname this_node -rsh other_node@other_host
Own Id: OTP-5210
-
If /etc/hosts 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.
Own Id: OTP-5212 Aux Id: seq7128
-
The documentation for BIFs that take I/O lists have
been clarified. Those are
list_to_binary/1
,
port_command/2
, port_control/3
.
Documentation for all is_*
BIFs (such as
is_atom/1
) has been added.
Removed the documentation for
erlang:float_to_binary/2
which was removed from
the run-time system several releases ago.
Own Id: OTP-5222
1.4 Kernel 2.10
1.4.1 Fixed Bugs and Malfunctions
-
Added documentation of configuration parameter
net_setuptime
.
Own Id: OTP-5117 Aux Id: seq8908
1.4.2 Improvements and New Features
-
The
disk_log
module has been slightly changed for
the purpose of reducing the risk of memory problems due
to corrupt files. The chunk
commands have been
optimized by increasing the chunk size from 8 kilobytes
to 64 kilobytes.
Own Id: OTP-4530 Aux Id: seq7646
-
The code server used prim_file for its file operations.
This made it impossible to load code from a boot server.
Now the code server uses erl_prim_loader for these
operations instead.
Own Id: OTP-4819 Aux Id: OTP-4802, OTP-4846
-
New functions - rpc:call/5 and rpc:block_call/5. They
have a timeout argument! See the documentation for
details.
Own Id: OTP-4849 Aux Id: seq8250
-
A new environment parameter
browser_cmd
has been
introduced which defines how to display help text (HTML
files).
Own Id: OTP-4852
-
The system configuration file
sys.config
can now
contain names of other configuration files as well as
application configuration data.
Thus, it is now possible to have several configuration
files in connection with release handling. See
config(4)
and OTP Design Principles for
more information.
Own Id: OTP-4867 Aux Id: OTP-1968
-
It is now possible to compile files with erlc without
getting a lot of (for compilation) unneccessary code
loaded and executed (like distribution, inet config,
etc). erlc now also calls erl with
-boot
start_clean
(so that sasl is not started even if
start_sasl
is default boot script).
Own Id: OTP-4878
-
Disk logs can now be opened or closed in parallel. In
particular, if some log is being repaired, other logs can
still be opened or closed.
Own Id: OTP-4913
-
Native lookup (system calls) is now default resolver
method on all platforms. Also the user inet configuration
method has changed so that a kernel variable, inetrc,
should now be used to specify the name of the user inet
config file (if it exists). This is all documented in the
ERTS User's Guide.
*** POTENTIAL INCOMPATIBILITY ***
Own Id: OTP-4983
-
Previously missing documentation of erlang:system_info/1
and erlang:system_flag/2 have been added.
Own Id: OTP-5038 Aux Id: seq8708
1.5 Kernel 2.9.6.8
1.5.1 Improvements and New Features
-
The code server now caches .app files as well as .beam
files. Application controller calls the function
code:where_is_file/1 to locate the cached .app file so
that file:consult/1 may be used instead of
file:path_consult/2 to read the file. This is much more
efficient.
Own Id: OTP-5097 Aux Id: seq8956
1.6 Kernel 2.9.6.7
1.6.1 Fixed Bugs and Malfunctions
-
Improved setup of connection between nodes to avoid that
some nodes get lower priority (and thus times out) when
many nodes are connected simultaneously.
Own Id: OTP-5116 Aux Id: seq8908
-
There is now a packet size limit option for
gen_tcp
sockets. See the manual for
inet:setopts/2
.
The ASN.1 BER packet decoding
for gen_tcp
sockets can now decode indefinite
length packets.
Own Id: OTP-5128
1.7 Kernel 2.9.6.6
1.7.1 Fixed Bugs and Malfunctions
-
A helper for global would terminate if it received
unknown types of messages, causing global to terminate
too. Changed so that the helper process logs and ignore
strange messages.
Own Id: OTP-5078 Aux Id: seq_8839
1.7.2 Improvements and New Features
-
The ability to set system wide options for TCP sockets is
added through the kernel application variables
inet_default_listen_options and
inet_default_connect_options, see the inet manual page
for details.
Own Id: OTP-5080
1.8 Kernel 2.9.6.5
1.8.1 Improvements and New Features
-
Fixed error that made code server crash if invalid
directories were added to the path.
Own Id: OTP-5070 Aux Id: OTP-5060, EABln14115
1.9 Kernel 2.9.6.4
1.9.1 Improvements and New Features
-
Speed improvements in code:add_path(s)[az]/1 when the
cache is activated.
Own Id: OTP-5060 Aux Id: seq8315, EABln14115
1.10 Kernel 2.9.6.2
1.10.1 Improvements and New Features
-
Remote spawn on a nonreachable node now gives warning
instead of error in the error_log.
Own Id: OTP-5030 Aux Id: seq8663]
1.11 Kernel 2.9.6.1
1.11.1 Improvements and New Features
-
An error that made the code server ignore version numbers
on lib directories has been corrected.
Own Id: OTP-5020
1.12 Kernel 2.9.5
1.12.1 Improvements and New Features
-
A possibility to make distribution messages be qued up
during running of erlang code, so that larger packages is
sent over the network is added.
Own Id: OTP-4916
-
When code loading failed it was impossible to know
exactly what caused it, only {undef,[{M,F,A}|...]} would
be reported. Now the primitive loader lets the
error_logger print an error report if a file operation
fails. All file errors except enoent and enotdir are
reported this way.
Own Id: OTP-4925 Aux Id: OTP-4952
1.13 Kernel 2.9.4
1.13.1 Fixed Bugs and Malfunctions
-
Bugs have been fixed in the
disk_log
module: if
reopen
failed to rename a file, a message could
erroneously be sent to the client; if requests were
queued while a log was blocked, no replies were sent to
the blocked processes should the log be closed.
Own Id: OTP-4880 Aux Id: seq7902
-
In rare cases, the global name registration could hang
during simultaneous startup of several nodes, due to a
cyclic deadlock in the
global:loop_the_locker
processes.
Own Id: OTP-4902 Aux Id: seq8275
1.13.2 Improvements and New Features
-
The kernel variable net_setuptime can now be defined in
fractions of seconds (using a floating point number)
Own Id: OTP-4915
1.14 Kernel 2.9.3
1.14.1 Fixed Bugs and Malfunctions
-
The driver for dynamically linked in drivers has been
fixed to delete loaded drivers when its erlang server
dies. The erlang server has also been updated to improve
the start-on-demand behaviour.
Own Id: OTP-4876 Aux Id: OTP-4855 seq8272
1.14.2 Improvements and New Features
-
Starting Erlang with the +Bi flag (to ignore ^C), now
also disables the quit ('q') option in the JCL menu.
Own Id: OTP-4897
-
A stdlib application variable,
shell_esc
, has been
introduced that controls the behaviour of ^G. If
shell_esc
is set to abort
, ^G restarts the
shell. If set to jcl
, ^G invokes the JCL menu. The
latter is default.
Own Id: OTP-4898 Aux Id: OTP-4897
1.15 Kernel 2.9.2
1.15.1 Fixed Bugs and Malfunctions
-
The boot server had become broken. Now it works again.
Own Id: OTP-4846 Aux Id: OTP-4802, OTP-4819
-
When loading a dynamically linked in driver through
erl_ddll, the server ddll_server that held the port for
the driver handling shared libraries got the group leader
of the invoking application. Later, when the application
was terminated, it killed all processes in its group,
also the ddll_server, so the driver still had some shared
libraries loaded. Finally, when the ddll_server was
restarted it assumed that all shared libraries its driver
knew of was statically linked, so the dynamically linked
in drivers that was loaded when ddll_server was killed
could neither be loaded nor unloaded. This bug has now
been fixed by setting the group leader of ddll_server to
something harmless and more eternal, and by unloading all
remaining dynamically linked in drivers when ddll_server
starts. A race condition when starting ddll_server has
also been fixed.
Own Id: OTP-4855 Aux Id: OTP-4876 seq8272
1.16 Kernel 2.9.1
1.16.1 Fixed Bugs and Malfunctions
-
When the emulator was started with command line arguments
-run or -s and the started code did an uncatched
erlang:throw/1, the emulator ignored the throw which is
rather strange. Now the init process exits with nocatch
as expected.
Own Id: OTP-4788 Aux Id: seq8129
-
The code server could hang if invoked early in the
startup. For example if the emulator was started with "-s
file eval Filename" and Filename contained a call to
code:add_patha/1 the code server accidentally tried to
execute code in an unloaded module from inside the code
that loaded a module - hence hangup. This bug has now
been fixed.
Note! Starting erlang through code loading
from a remote erlang boot server will not work after this
patch. It will be fixed in a later patch. Rumours has it
that remote boot server code loading did not work before
this patch either. It is not a commonly used feature.
*** POTENTIAL INCOMPATIBILITY ***
Own Id: OTP-4802 Aux Id: seq8314
Copyright © 1991-2005
Ericsson AB