Stdlib Release Notes
Stdlib 1.8.1
Improvements and new features
-
lists:sort/2
is stable again.
Own Id: OTP-3344
-
The command-completion feature of the shell has been
improved. Pressing the tab key now also lists possible completions
(but only if no new character was added to the completion).
Own Id: OTP-3354
Stdlib 1.8
Known problems
-
If Erlang is started with longnames
(e.g.,
erl -name foo
),
then slave:start/1
on a nonexistent host exits
instead of returning an error tuple.
Own Id: OTP-2635
-
Excessively large variable numbers in the matching functions
in the
ets
module can crash Erlang or block it for
a long time, e.g., ets:match(Table, '$123456789')
.
Own Id: OTP-3064
-
The shell allows patterns which do not have pattern syntax
(for example function calls); they become patterns which
always fail to match.
Own Id: OTP-3284
Fixed errors and malfunctions
-
When
c:c(File, Options)
was used with options such
that an intermediate file was produced instead of an
object file (e.g., 'S'), it still tried to load an object
file (which would be the old one, if one existed).
This has been changed. A warning message will be printed
(Warning: No object file created - nothing loaded
)
and no object file will be loaded even if an (older) object
file exists.
Own Id: OTP-3056
Aux Id: OTP-3054
-
Erlang shell line editing (e.g., M-B to back up over a word)
didn't handle all Latin-1 characters correctly.
Own Id: OTP-3158
-
ets:tab2list/1
returned the list in the wrong order
for a table of type ordered_set
.
Own Id: OTP-3319
Improvements and new features
-
The new lint option
{warn_format, Verbosity}
causes
warnings to be given for malformed calls to io:format
and some similar functions. Verbosity
is an integer
which determines the amount of warnings to give (0 = no
warnings).
Own Id: OTP-1387
-
Dets now has a write through caching mechanism as well as
an auto save feature. Dets more seldom needs to repair files.
Own Id: OTP-1831
Aux Id: OTP-1526
-
Many functions in stdlib do not enforce the types which the
functions are documented to accept, thus resulting in
undefined behaviour when given arguments of invalid type.
Stricter error checking has been added to some functions in
stdlib, namely
io:get_chars
,
lists:keymember/3
,
lists:keysearch/3
,
lists:keydelete/3
and
lists:keyreplace/4
,
resulting in an exit if an invalid argument is given.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-2689
Aux Id: OTP-2441
-
New functions
lists:sort(Fun, List)
and
lists:merge(Fun, List1, List2)
can be used for
sorting/merging with respect to any criterion;
Fun(A,B)
should
return whether A
comes before B
in the
ordering.
Own Id: OTP-2948
-
A new function
c:bt(Pid)
, available in the shell
without module prefix, shows a stack backtrace for a
process (i.e., calls erlang:process_display(Pid,
backtrace)
).
Own Id: OTP-3122
-
The new function
c:q()
(also defined in the module
shell_default
so that the module prefix need not be
given in the shell) calls init:stop
, and thus provides
a short command to stop Erlang in a controlled way.
Own Id: OTP-3123
-
The functions
behaviour_info/[0,1]
have been
removed from the module systools
.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3159
Aux Id: OTP-1965
-
The function
c:i()
now gives two lines of information
for each process, including: heap size, stack size,
registered name.
Own Id: OTP-3160
-
The output functions in the
io
module
no longer return an error term in case of
errors; they exit instead.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3178
-
The new lint option
warn_unused_vars
causes warnings to
be given for variables which are not used (unless they begin
with an underscore, in which case no warning is given).
Own Id: OTP-3181
-
Parenthesis-matching in the shell has been improved.
A new command key ^] performs
visible parenthesis blink, like the closing characters
(i.e., ')', '}' or ']'),
but it also inserts the proper matching character.
The closing characters now beep if the matching opening
character isn't of the right kind.
Own Id: OTP-3250
-
Enable the supervisor to handle other replies than {ok, Pid} when starting children.
Own Id: OTP-3251
-
The erl_internal:builtins/0 function has been removed.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3300
-
Due to an oversight, the following improvement was
left out of the documentation in previous releases:
The operator
--
performs list subtraction.
It is also available as the function lists:subtract/2
.
Own Id: OTP-3318
-
The following functions in the
lists
module now have
a faster implementation compared to previous releases:
map/2
, last/1
, keysearch/3
,
keymember/3
and all sorting functions.
The functions member/2
, reverse/2
,
keysearch/3
and keymember/3
are now
entirely implemented as BIFs.
Own Id: OTP-3334
-
Ets tables on remote nodes can no longer be accessed directly.
Also, the format of the table identifiers returned by
ets:open/2
have changed. Incorrectly written applications
that assume that the table identifier is a tuple will no
longer work.
Most functions in the ets
module are now BIFs. The internal
and undocumented BIFs that the ets
module used to call
have been removed. Applications that incorrectly used the those
BIFs directly will no longer work.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3337
There are also release notes for
older versions.