net_setuptime
.
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.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.rpc:call/5
and
rpc:block_call/5
. They have a timeout argument! See
the documentation for details.browser_cmd
has been
introduced which defines how to display help text (HTML
files).sys.config
can now
contain names of other configuration files as well as
application configuration data.config(4)
and OTP Design Principles for
more information.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).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.erlang:system_info/1
and erlang:system_flag/2
have been added.
.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.
gen_tcp
sockets. See the manual for inet:setopts/2
.gen_tcp
sockets
can now decode indefinite length packets.
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.
inet_default_listen_options
and
inet_default_connect_options
, see the inet
manual page for details.
code:add_path(s)[az]/1
when
the cache is activated.
lib
directories has been corrected.
{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.
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.global
name registration could
hang during simultaneous startup of several nodes, due to a
cyclic deadlock in the global:loop_the_locker
processes.
net_setuptime
can now be defined
in fractions of seconds (using a floating point number).
+Bi
flag (to ignore ^C), now
also disables the quit ('q') option in the JCL menu.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.
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.
-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."-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.