Erts Release Notes
Erts 4.7.3
Fixed errors and malfunctions
-
Nothing, we need more input, can't recreate the problem,
see Notes.
Own Id: OTP-2216
Aux Id: seq 656
-
When killing a shell in the ^G command level using the
sequence "^G k", some processes associated with the
shell were left running. Now, there are no extra processes
left anymore.
Own Id: OTP-2317
-
os:cmd
on WIN32 does not always catch the output from
the executed program correctly. This is now corrected.
Own Id: OTP-2371
Aux Id: seq 808
-
In previous releases of OTP it was not possible to upgrade the
Erlang emulator (named e.g jam471 or beam471) because the
executable file was
renamed for each new version. This is now corrected by always
giving the same name (jam or beam) without version number to
the executable file.
Own Id: OTP-2372
-
ets:i()
could cause heart-beat timeout if there was
many large ets-tables in the Erlang-system. This is now
corrected.
Own Id: OTP-2409
Aux Id: seq 829
-
Comparison between a float and an integer larger than
the largest float gave the wrong result. This has been
fixed.
Own Id: OTP-2436
-
Heart is corrected to work on Linux.
Own Id: OTP-2488
-
LINUX only: The gen_udp process did terminate when sending
(with
gen_udp:send
) to
a non existing destination port. This is now corrected.
Own Id: OTP-2510
-
On WIN32 an output of 0 bytes to the shell console with
io:format
or
similar could cause the shell console to hang. This problem
occurred when systools:make_script
was run.
The problem only occured when running "erl" and not when
"werl" was run. This
is now corrected.
Own Id: OTP-2575
Aux Id: seq 932
-
UNIX only: The UNIX manual page for
erlsrv
was wrongly
formatted, this is now corrected.
Own Id: OTP-2593
Aux Id: Seq 950
-
Unix only: If Erlang was started with -noshell, made
some output and then exited, it could happen that the
output didn't appear until after Erlang had exited
(for example, the error messages from "erlc" could
appear after the new Unix shell prompt). This has been
fixed.
Own Id: OTP-2599
-
Redundant text "Module:" is removed from the title of the
reference manual for module
seq_trace
.
Own Id: OTP-2603
Aux Id: seq 954
-
Low priority processes were not fairly scheduled (in most
cases), i.e. a low priority process was never run at all
if there were runnable processes of a higher priority.
This has been corrected.
Own Id: OTP-2644
-
Vxworks only: Erlang crash dumps are now generated if a
file system is present.
Own Id: OTP-2671
-
Certain BIFs, such as erlang:monitor_node/2 (which are
implemented as traps to Erlang code), behaved erratically
in JAM (for example, returning an incorrect value). This
has been fixed.
Own Id: OTP-2680
-
The
heart
port program can now handle the shutdown
alternative on all platforms. Previously this only worked
on Solaris.
Own Id: OTP-2695
-
The number of 'ets' tables was limited to around 1642.
This is raised to around 6544.
Own Id: OTP-2705
Improvements and new features
-
The name of a distributed Erlang node should always be
on the form Node@Host, where both Node and Host are
nonempty strings not containing any '@'. This format
is checked when the node becomes distributed. Previously,
the check was less strict than it should have been,
for example allowing duplicated '@' characters. This has
been fixed.
Own Id: OTP-2537
-
Enhanced memory handling on VxWorks,
erlang can use its own malloc algorithms
in a user supplied area.
Own Id: OTP-2669
-
An additional way to stop an Erlang node when a serious error
condition is suspected has been introduced (Unix only): if the
signal SIGUSR1 is sent to the Erlang system, an Erlang crash dump and
a core dump are produced, whereby the Erlang system terminates.
(This function was present already in R4A, but left out of the
release notes.)
Own Id: OTP-2700
Aux Id: OTP-2414
-
The max size for
Cmd
in heart:set_cmd(Cmd)
is
increased from 254 up to 2046 characters.
Own Id: OTP-2703
Erts 4.7.1
Fixed errors and malfunctions
-
Processes that did "heavy" file processing did not pay
for that. They could execute for a very long time before
other processes were scheduled in. Now every file operation
costs 100 reductions, which will not allow a process to do
many file operations before it is scheduled out.
Own Id: OTP-1932
-
When using the -boot and -config command-line options
on Windows, filenames in the native Windows syntax using
only backslashes didn't work -- forward slashes had to be
used. Now backslashes work as well as forward slashes.
Own Id: OTP-2373
-
In the Werl window, marking a region containing blank lines below
the last line displayed and choosing 'Copy' from the menu,
would crash Werl. This has been corrected.
Own Id: OTP-2381
-
When several lines were inserted into the Erlang shell
using the paste function of the window manager, all but
the first line could be lost. This has been fixed.
Own Id: OTP-2435
-
Errors when sending incorrect data to a port was
reported using the old method if the owner did not
trap exit. This has been corrected so posix error
codes are always sent.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-2437
-
If the real-time clock jumped backwards (for any reason),
all timers in Erlang would release immediately. This is
handled somewhat more gracefully, by pretending that the time
stands still.
Own Id: OTP-2438
Aux Id: seq 836
-
The garbage collector now does a complete garbage collection
("fullsweep"), whenever a process has binaries that could
only be freed by a complete collection. This frees binaries
sooner, but takes more times for processes that have a lot
of live data.
Own Id: OTP-2454
Aux Id: seq 845, seq 849
-
The
erlc
program now tries to execute the program erl
in the same directory which the erlc
program itself is located
in. If that fails, erl
will be searched for in PATH
.
Own Id: OTP-2460
-
inet:gethostname()
did not always return a short hostname without
the domain part. The error was introduced in OTP R3B and is now corrected.
Own Id: OTP-2489
Aux Id: seq 864
Improvements and new features
-
The erlsrv utility provides the means for running Erlang
applications as system services on Windows NT.
Own Id: OTP-1669
-
There are two new options to open_port/2 which apply when the port is
of type 'spawn': {env, Env} and {cd, Dir}, which set environment variables,
and change the working directory, respectively.
The new options are currently not implemented on VxWorks.
Own Id: OTP-1720
-
Line oriented I/O with new parameter {line, N} to open_port/2.
Own Id: OTP-1886
-
New parameter to open_port/2, stderr_to_stdout, will redirect
standard error output to standard output for port programs on
all platforms.
Own Id: OTP-1887
-
The spawn_opt/4 BIF allows the minimum heap size, garbage collection
type, and priority to be set when creating a process.
Own Id: OTP-2261
Aux Id: seq 720
-
Short lived processes no longer get a second heap for the
generational garbage collection.
Own Id: OTP-2336
-
The emulator can switch GC algorithm for a process when the
heap grows to a certain size
Own Id: OTP-2337
-
A new module 'instrument' has been added to 'tools'.
When running an instrumented version of Erlang, data
are collected about the usage of resources, and can
later be analysed. The command-line option -instr
causes 'erl' to start instrumented Erlang.
Own Id: OTP-2358
-
Three new BIFs exist, for managing timers:
erlang:start_timer/3, erlang:send_after/3 and
erlang:cancel_timer/1.
(A previously existing undocumented BIF set_timer/3 has been
replaced by the new start_timer/3.)
Own Id: OTP-2376
-
When tracing process scheduling, a process to be scheduled in
used to be garbage-collected (if needed) before the trace message
was sent. This gave an incorrect total for the excution time
of the process. This has been corrected.
Own Id: OTP-2394
-
For improving the error reporting when detecting an error serious
enough to warrant stopping the Erlang node, a new BIF erlang:halt/1
has been introduced.
Addendum to the documentation for halt/0: halt/0 returns the
status code 0 to the environment.
(The BIF erlang:halt/1 previously existed in an undocumented form, with
slightly different behaviour.)
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-2414
Aux Id: OTP-2359
-
The description of error_handler:undefined_global_name/2
has been removed, since it's no longer called from
Erlang 4.6 and later.
Own Id: OTP-2525
-
Sequential tracing is available in alfa status and only
for JAM systems. Since it is an alpha release the
programmatic interface could be slightly changed based on
experience from users. The module
seq_trace
contains the interface.
Sequential tracing makes it possible to trace all messages
that are a direct result from one initiating message
e.g. all messages in a call-setup for one connection.
Own Id: OTP-2527
Erl_interface Release Notes
4.7.3
Fixed errors and malfunctions
-
A C-node could sometimes leak a file descriptor after querying epmd about a non-existent Erlang node. This is now fixed.
Own Id: OTP-2683
Improvements and new features
-
A problem receiving large messages from remote Erlang nodes has been fixed.
Own Id: OTP-2676
4.7.1
Fixed errors and malfunctions
-
Nodenames passed to erl_call with "-s" are now terminated correctly.
Own Id: OTP-2241
Aux Id: seq 707
-
erl_var_content was sometimes traversing lists incorrectly,
possibly resulting in a segmentation violation. This has
been corrected.
Own Id: OTP-2325
Aux Id: OTP-2326
-
A pointer error in the VxWorks version of erl_gethostbyname() was
causing segmentation violations. This has been fixed.
Own Id: OTP-2327
-
A missing symbol was causing link errors on VxWorks. This is
corrected.
Own Id: OTP-2333
-
Many of the functions in Erl_interface would abort when passed
NULL asrguments. Now, these functions return NULL in situations
where it is reasonable to do so.
Own Id: OTP-2335
-
Erl_connect() is no longer passing the hostname and nodename
arguments in the wrong order to an internal help function. This
was causing problems when the node attempted to call erl_publish().
Own Id: OTP-2355
-
In R3 a header file
erl_timeout.h
was erroneously included in the
release. Some symbols were defined in erl_timeout.h
that could
conflict with user-defined symbols, since they were not prefixed
properly. This file is no longer included.
Own Id: OTP-2452
Aux Id: seq 848
Improvements and new features
-
The documentation for
erl_call
now states correctly that some arguments
need to be quoted.
Own Id: OTP-2047
-
NULL pointers are now handled properly by an internal
function used for free()ing Erlang terms.
Own Id: OTP-2242
-
C nodes now have access to Global, through a nearby Erlang node.
Own Id: OTP-2249
Aux Id: OTP-2459
-
C nodes now have a mechanism for storing state data and backing
it up to Mnesia on a nearby Erlang node.
Own Id: OTP-2250
-
A set of primitives has been written that enable the use of an IDL
backend for C, so the C-Erlang interface can now be specified in IDL.
Own Id: OTP-2251
-
erl_fix_alloc has been completely rewritten and is now simpler,
faster, and does not leak.
Own Id: OTP-2326
-
erl_start_sys and erl_Start_Epmd now works on Windows and VxWorks
Own Id: OTP-2356
-
Some of the threads files in erl_interface are only meaningful
on a unix platform. These files are no longer used on Windows
and VxWorks.
Own Id: OTP-2357
-
The ErlMessage struct used by erl_receive_msg() has been changed
as part of a larger change to make C nodes understand more of the
Erlang distribution protocol.
(*** INCOMPATIBILITY with R3B02 ***)
Own Id: OTP-2511
-
Users must now include an extra header file and link with an extra
library to use some of the erl_interface features. In general, this
means that for anything new in R4, or to use the communication
facilities.
(*** INCOMPATIBILITY with R3B02 ***)
Own Id: OTP-2512
-
The functions erl_mk_pid(), erl_mk_port() and erl_mk_ref()
previously allowed pids, ports and refs to be created with
arbitrary numbers in some of the fields. Now the values
provided by the caller are masked, so that only valid
numbers can be used.
(*** INCOMPATIBILITY with R3B02 ***)
Own Id: OTP-2513