erts_debug:apply/4
. This problem has been
corrected.
--enable-threads
flag was previously ignored
by the configure
script. This has now been
corrected, and it is now possible to enable threads by
passing the --enable-threads
flag to the
configure
script when building the open source
release.
runtime_tools
,
kernel
and erts
:
seq_trace:set_token([])
to reset the
sequential trace token.
seq_trace:get_token/0
and
seq_trace:set_token/1
now have compatible
token formats.
dbg:trace_port/2
and
dbg:trace_client/2,3
now supports trace
to and read from a size limited "wrap file set".
dbg:trace_port_control/1
now supports
operation get_listen_port
for the ip
trace driver.
{is_seq_trace}
and
{get_seq_trace}
has been added to test
and read the sequential trace token in match specs.
{get_tcw}
and
{set_tcw Value}
that reads and sets
a "trace control word" in the node has been added.
The "trace control word" is a word in each
Erlang node of at least 24 bits.
There are also enhancements of BIFs:
erlang:system_info(trace_control_word)
and
erlang:system_flag(trace_control_word, Value)
for the same purpose.
{silent, TrueOrFalse}
for setting a
silent call trace flag per process that inhibits
call trace messages, both local and global, has
been added. The BIF
erlang:trace/3
has been extended to
recognize the flag 'silent' to start a call
trace in silent mode.
dbg
module has been
fixed, e.g the 'old_trace_call' flag has been
removed from the 'all' flags list, and the dbg server
no longer hangs if the supplied tracer fails to
start.
{return_trace}
destroys the
tail recursiveness of the traced function has been
pointed out.
dlmalloc
was introduced in the Erlang emulator
version 5.0.2.3 because it performed better than
Solaris malloc
when the emulator needed to allocate
large short-lived memory blocks. It was later observed
that it performed worse than Solaris malloc
under some
conditions. We have therefore now removed dlmalloc
and replaced it with our own special treatment of
short-lived memory blocks (called sl_alloc
) and the
standard malloc
implementation for other blocks.
The current version of sl_alloc
uses the system call
mmap()
(on platforms where mmap()
exists)
in order to
allocate large blocks (just as dlmalloc
) and uses the
standard malloc
implementation for small blocks.
Maximum number of mmapped blocks and the threshold
which is used to determine if a block should be
mmapped can be adjusted, see "System Flags" in erl(1)
.
sl_alloc
can be disabled. The standard malloc
implementation will in this case be used instead, see
"System Flags" in erl(1)
.
Own Id: OTP-4075
-detached
flag has been documented in the erl
man page. Some other minor documenation errors were also
corrected.
erlang:open_port/2
can now be configured
using the environment variable ERL_MAX_PORTS
.
By default, the maximum number of ports is 1024.
Note that the default value of 1024 in rare
cases may be lower than the default value in
previous releases (it used to be the maximum number
of file descriptors for the current process on Unix).
erlang:read_timer/1
returns the remaining time
(in ms) for a timer started by start_timer/3
or
send_after/3
.
-A
. The default number of threads is 0, which means
that this feature is turned off. The number of threads
in a node can be obtained by the call
erlang:info(thread_pool_size)
.
erlang:info/1
and erlang:system_info/1
BIFs have been
merged into one. The recommended way to use the combined
BIF is by the name erlang:system_info/1
, but
erlang:info/1
will also work.
erlang
module have been documented. Still undocumented are BIFs
which are of no use in applications, for instance the set
of BIFs used to implement the distribution protocol.
The newly documented BIFs are:
append_element/2
,
bump_reductions/1
,
display/1
,
function_exported/3
,
garbage_collect/0,1
,
is_builtin/3
,
loaded/0
,
make_tuple/2
,
md5/1
,
md5_final/1
,
md5_init/1
,
md5_update/2
,
port_close/1
,
port_command/2
,
port_connect/2
,
port_control/3
,
port_to_list/1
,
ref_to_list/1
,
system_info/1
, and
yield/0
.