?MODULE_STRING
, which expands to the name of the
current module, as a string.
erl -name foo
),
then slave:start/1
on a nonexistent host exits
instead of returning an error tuple.
ets
module can crash Erlang or block it for
a long time, e.g., ets:match(Table, '$123456789')
.
warn_unused_vars
option to the compiler,
warnings may be incorrectly
given for variables used within list comprehensions.
catch
, which is not legal
Erlang, was not caught by the linter in OTP R6, but caused the
compiler to crash instead.
io
module to do I/O on a
remote node could hang if the file process had terminated.
case
, if
or receive
constructions
in one function and variables were exported from them,
erl_lint
(and thus compilation)
could consume too much memory, even making compilation
impossible.
gen_server:multi_call/4
reported good nodes as bad,
if one of the nodes was on an unreachable host.
win32reg
module has now been documented.
At the same time, a few problems were fixed.
??Arg
for an argument to a macro
expands to a string containing the tokens of the argument,
similar to the #arg
stringifying construction in C.
gen_server
, gen_fsm
and
gen_event
to a process on another node no longer
hang indefinitely if the timeout is infinity
and
the process doesn't exist. The exit reason in that case
is noproc
(for local
processes, this change was made already in OTP R5).
case
,
if
or receive
are now
only given if the variables are later used within a
pattern.
dict
(unorded dictionary),
orddict
(ordered dictionary), sets
(unordered set),
and ordsets
(ordered set). The API functions have
been extended to allow more efficient updates of sets and
dictionaries. Some API functions are now considered deprecated.
See the documentation for each module.
Note that dict
module uses a new internal representation.
Applications that bypassed the documented API functions and
assumed that dictionaries were lists will no longer work.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3519
digraph
: one can no longer create loops
in acyclic graphs. New functions in digraph
:
info/1
, no_vertices/1
, no_edges/1
.
digraph_utils
implements some
algorithms based on depth-first traversal of directed graphs.
gen_server:multi_call/4
, which was
previously undocumented, is now documented.
digraph
: get_path/3
and
get_cycle/2
no longer occasionally duplicate the
first vertex in the presence of a loop.
New functions in digraph
: get_short_path/3
and
get_short_cycle/2
.
beam_lib
reads data from BEAM files.