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.
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
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.
Own Id: OTP-2513
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.)
Own Id: OTP-2414
Aux Id: OTP-2359
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.
Own Id: OTP-2437
The INTERPRETER application is no longer supported.
The latest version can be used by starting Erlang with
the options -pa /usr/local/otp/misc/interpreter/ebin
where you replace /usr/local/otp in the above with your
OTP installation directory.
Own Id: OTP-2521
keysort/2 is now stable (i.e., it preserves the order
of elements which have the same key).
Bad arguments now cause an exit, instead of just silently
returning the input list.
Own Id: OTP-2300
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 lists:sublist/[2,3] and lists:keysort/2,
resulting in an exit if an invalid argument is given.
Own Id: OTP-2441
Aux Id: OTP-2300
Mnemosyne has been separated from the
application and this has some minor implications:
- The compiler directive:
that was mandatory in all Erlang modules that contains embedded
Mnemosyne queries has been replaced with:
During an interim period, both compiler directives will be
supported. But in a future release the backward
compatibility directive will be removed from Mnesia.
- The Mnemosyne application must be started before any
query evaluation may be performed. Earlier, when Mnemosyne
was a part of the Mnesia application, Mnemosyne was
automatically started as an embedded part of Mnesia, this
is not the case anymore. Now Mnemosyne must explicitly be
Mnesia is started.
However, a temporary configuration parameter
embedded_mnemosyne has been added to Mnesia in
order to still make it possible to obtain the automatic
start of Mnemosyne. By default
is set to
false, but if it is set to
Mnesia will start Mnemosyne as a supervised part of the
Mnesia application as it did in previous releases.
Mnesia 3.0 is primary developed for OTP R4, but is still
backward compatible with the OTP R3 platform.
The internal database format on disc has been made more
future safe. It has also been changed in order to cope with
the new features that has been introduced. This implies a
special upgrade procedure:
- First of all, a full backup must be performed with
the old Mnesia system.
- Then the backup must be installed as fallback,
preferably by the new version of Mnesia.
- At last the new version of Mnesia may be started.
- The table
intTrapDestTable in OTP-SNMPEA-MIB
is not used anymore.
- There are three new configuration files;
notify.conf. The old file
trap_dest.conf is not
used. However, if a
trap_dest.conf file exists, the
agent automatically converts that file to the new files.
- The function
snmp:send_trap no longer takes a
CommunityString as a parameter. This parameter is now
optional, and refers to the
snmpNotifyTable. Old code that uses the old function
does not have to be changed.
- There are two new messages a network interface process must
handle. These are messages to handle Inform-Requests.