sofs:partition/2 has been fixed.
c:memory() only reported half of the amount of
ets memory allocated on 64-bit architectures. This bug has
now been fixed.
file_sorter are now more unique than they used to be.
Dets that could cause a loop has been fixed.
andalso and orelse).
Dets that could crash the Dets server has been
fixed.
A new function erlang:send/3 has been added to give more control to
when to send if the sender risks being suspended or delayed due to
automatic node connection. This function supersedes
erlang:send_nosuspend/2,3, which is retained for backward
compatibility, and has been upgraded to handle local processes and
ports. See the documentation.
The function gen_server:cast/2 (and hence gen_server:abcast/2) has been corrected to not get stuck waiting for automatic node connection; if a node has to be connected for the cast to be sent, a helper process is spawned to do the send so that execution flow can return to the sender immediately.
The function gen_server:cast/2 has also been corrected to crash
for invalid arguments.
(*** POTENTIAL INCOMPATIBILITY ***)
(Own Id: OTP-3968)
(Aux Id: Seq 4387)
erl_tar and
filelib are now documented.
-include and -include_dir directives
substitute environment variable values for first path components
beginning with a $ (dollar) sign.
dets:is_compatible_bchunk_format/2 to be used
in conjunction with the new info tag bchunk_format.
exprs/4, expr/4 and
expr_list/4 in the erl_eval module add the
possibility to supply a function that handles calls to nonlocal
functions.
proc_lib for spawning processes
using a fun: spawn/1,2, spawn_link/1,2, and
spawn_opt/2,3. spawn_opt/5 is new as well.
The reason for making all spawn functions in
erlang(3) accessible from proc_lib is that
when SASL is running you get crash reports for processes started using
proc_lib, something that comes in handy during debugging.
A http state bug in inet_drv (affecting gen_tcp) has been fixed. Patch from Claes Wikström.
A bug in defining max number of ports has been fixed. Patch from Claes Wikström.
A bug in erlang:port_call/3 when calling a driver with a NULL driver struct ->call field has been fixed. Patch from Luke Gorrie.
There is a new function file:script/1,2 that does the same as file:eval/1 but gives a return value. For completness, file:path_script/2,3, file:eval/2 and file:path_eval/3 are also added. Suggestion from Ulf Wiger. See the documentation for details.
erlang:trace/3 did no clear
trace flags on processes that were exiting. This bug has now been
fixed.
The gen_udp options add_membership and
drop_membership are now allowed. Patch from Vance Shipley.
gen_udp:open/1,2 with service name instead of port
number now works. Patch from carlos@lfcia.org.
An unjustified
compiler warning when using an explicit space character as pad
character to io:format/2 and similar has been removed.
If an illegal node name is used to start a node, now
net_kernel fails noisily instead of just letting the node
start in non-distributed mode.
Now
gen_server:format_status/2 also works with non-registered
processes.
There are two new functions
erlang:list_to_integer/2 and
erlang:integer_to_list/2 that takes a number base
argument. See the documentataion for details.
New format characters
for io:format/2 and similar are ~b, ~B, ~x, ~X, ~+ and ~#.
See the documentaion for details.
New format characters for
io:fread/2 and similar are ~u, ~- and ~#. See the
documentation for details.
The token scanner erl_scan
has been rewritten to become twice as fast as before. Now, incomplete
any-base numbers such as "16#" are regarded as errors instead of as
zero. The allowed base number range has been extended to 2..36 instead
of previously 2..16.
There is a new function
lists:split/2. See the documentation.
For everyone that
has written their own function to calculate the time difference between
two now() calls there is now
timer:now_diff/2. See the documentation.
(Own Id: OTP-4747)
lists:sort/2 and lists:merge/3 were not
stable. lists:ukeysort/3 and lists:usort/2
could leave duplicates. A bug in lists:umerge/3 has been
fixed.
delete_object after insert
on a table of set type could cause crash; it was sometimes
impossible to open a fragmented table; init_table did not
always call InitFun exactly once;
delete_all_objects did not handle fixed tables correctly.
(Own Id: OTP-4268)
erl_lint module. The compile
options due to erl_lint are now documented in
compile(3).
sofs:drestriction/3 has been fixed.
file_sorter module now recognises a format called
binary which compares binaries using the standard order of
terms.
init_table recognizes the new options
min_no_slots and format. The new function
bchunk can be used in conjunction with
init_table for copying open tables efficiently.
file_sorter module now provides an easy way of passing
a value from input functions to output functions: if the last input
function returns {end_of_input, Value}, the first output
function is called with the argument {value, Value}.
sofs:extension/3 and
sofs:partition/3.