epp
hangs. This
problem has been fixed.erlang:is_record/2
.{'or', {'is_integer','$1'}, {'or', '$1', '$1'}}
evaluated to true
with '$1'
bound to an
integer.
ets/dbg:fun2ms
(erlang:'or'(A,B)
etc)
integer(X)
instead of
is_integer(X)
) was not supported by
ets/dbg:fun2ms
ets/dbg:fun2ms
file_sorter
module. The crash could only occur
when sorting or merging to a file and the input function
returned {end_of_input, Value}
.filelib:fold_files/5
has
been fixed.filelib:fold_files/5
has been fixed to not include
directories that match the regular expression in the
result. In this process, filelib:is_regular/1
has
been added to the module.filelib:fold_files/5
has
also been changed so the regexp match is tried not on
the full name, but locally in each traversed directory.
init
boot process. This made it possible to pipe
commands to the shell that got evaluated before the system
had booted properly. Also the shell was normally accessible
before .erlang
had been evaluated and this caused
problems especially related to code loading. This has now
been fixed so that the initial shell is not accessible
until after the init boot routine has finished and
.erlang
has been evaluated. Note that the shell
starts before any -s
arguments are executed.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).qlc
implements a query
language with a list comprehension syntax completely
embedded in Erlang. There is support for reading data
from ETS, Dets, and Mnesia tables as well as for defining
other sources of data. For easy testing queries can be
stated in the Erlang shell. The qlc
module aims at
replacing Mnemosyne. See qlc(3)
for details and
examples.rd/2
, rf/0,1
,
rl/0,1
, rp/1
, and rr/1,2,3
. Existing
functions in user_default.erl
with any of these
names need to be renamed. See shell(3)
for further
details.string:to_integer/1,
has been added.
dets:repair_continuation/2
can be
used for restoring an opaque continuation returned by
dets:select/1
or dets:select/3
if the
continuation has passed through the external term format
(been sent between nodes or stored on disk).string:to_float/1,
has been added.
string
.
ets:insert_new/2
and
dets:insert_new/2
are added. Please consult
the manual pages for details.proc_lib:hibernate/3.
Processes spawned
using proc_lib
(also indirectly, such as
gen_server
process), should use this function
instead of the BIF erlang:hibernate/3
directly to
ensure that the exception handler for the process continues
to work when the process is awaken.
beam_lib
operations could fail. Corrected.
gen_server
, gen_event
or gen_fsm
process exits with {undef,[{M,F,A}|...]}
, the error
report will now state if the function call failed because
the module could not be loaded or because the function was
not exported.
c:regs()
did crash if there was
a registered port among the registered names. This is now
corrected.dets
: not all objects were
always visible in tables with more than 131072 keys.dets
: when trying to
repair a version 9 table, a not_a_dets_file
error
message was returned unnecessarily often.
+Bi
flag (to ignore ^C), now
also disables the quit ('q') option in the JCL menu.
erl_scan
caused the compiler to hang when
end-of-file in a comment was encountered. This is now
corrected.nowarn_unused_vars
is given.gen_server:cast/2
now crashes for invalid
arguments.gen_server:abcast/2-3
now crashes for invalid
arguments. The behaviour when casting to the name
global
has been corrected. Previously,
gen_server:abcast(global,[node@host])
tried to
cast to the globally registered name node@host
,
which is more of a bug than less. Now such a call will
cast to the registered name global
at the node
node@host
as (probably) expected.rpc:call/5
and rpc:block_call/5
having a
timeout argument has been added.rpc:abcast/2-3
has been improved not to get stuck
waiting for connection setup if the remote node is not
connected. In this case the send is spawned off to a
temporary process.calendar
has
been corrected thanks to Bengt Kleberg.
f/1
shell command did not work correctly with
restricted shell.
gen_server
: the internal function get_parent,
called by gen_server:enter_loop/[4,5],
now returns
the pid of parents that are registered processes, instead of
returning their name. The reason for this is that
gen_server
relies on that the parent is represented
as a pid. This error in get_parent/0
had the effect
that the terminate function of the child was not run when
it was shutdown.
-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.