From 950d808c97a4c5b579f4f1cc16b95f2d419d3505 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 15 Sep 2014 12:02:14 +0200 Subject: Update release notes --- erts/doc/src/notes.xml | 170 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) (limited to 'erts') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5c4bb3ed25..743369951f 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,176 @@

This document describes the changes made to the ERTS application.

+
Erts 6.2 + +
Fixed Bugs and Malfunctions + + +

+ General documentation updates.

+

+ Own Id: OTP-12052

+
+ +

A bug in the VM code implementing sending of signals + to ports could cause the receiving port queue to remain + in a busy state forever. When this state had been + reached, processes sending command signals to the port + either got suspended forever, or, if the nosuspend + feature was used, always failed to send to the port. This + bug was introduced in ERTS version 5.10.

+

In order for this bug to be triggered on a port, one + had to at least once utilize the nosuspend + functionality when passing a signal to the port. This by + either calling

port_command(Port, + Data, [nosuspend | Options]), + erlang:send(Port, {PortOwner, + {command, Data}}, [nosuspend | Options]), + erlang:send_nosuspend(Port, + {PortOwner, {command, Data}}), or + erlang:send_nosuspend(Port, + {PortOwner, {command, Data}}, Options). + +

Thanks Vasily Demidenok for reporting the issue, and + Sergey Kudryashov for providing a testcase.

+

+ Own Id: OTP-12082 Aux Id: OTP-10336

+
+ +

+ Fix size overflow bug at memory allocation. A memory + allocation call, with an insane size close to the entire + address space, could return successfully as if it had + allocated just a few bytes. (Thanks to Don A. Bailey for + reporting)

+

+ Own Id: OTP-12091

+
+ +

+ Fix various issues where negating a signed integer would + trigger undefined behaviour. This fixes issues in the + enif_make_int64 interface and some edge cases inside the + erlang runtime system.

+

+ Own Id: OTP-12097

+
+ +

+ The documentation erroneously listed the +swct command line + argument under +sws.

+

+ Own Id: OTP-12102 Aux Id: OTP-10994

+
+ +

+ Profiling messages could be delivered out of order when + profiling on runnable_procs and/or + runnable_ports using erlang:system_profile/2. + This bug was introduced in ERTS version 5.10.

+

+ Own Id: OTP-12105 Aux Id: OTP-10336

+
+ +

+ Various logging fixes, including: Add run queue index to + the process dump in crash dumps.
Add thread index to + enomem slogan when crashing.
Remove error logger + message for sending messages to old instances of the same + node.

+

+ Own Id: OTP-12115

+
+ +

+ Fix compiler warnings reported by LLVM

+

+ Own Id: OTP-12138

+
+ +

+ Correct conversion of MIN_SMALL by + list_to_integer/1 and binary_to_integer/1. + The bug produced an unnormalized bignum which can cause + strange behavior such as comparing different to a correct + MIN_SMALL integer. The value MIN_SMALL is + -(1 bsl 27) = -134217728 on a 32-bit VM and -(1 + bsl 59) = -576460752303423488 on a 64-bit VM. (Thanks + to Jesper Louis Andersen, Mikael Pettersson and Anthony + Ramine for report, patch and optimization suggestion)

+

+ Own Id: OTP-12140

+
+ +

+ Fix bug in term_to_binary that reallocates binary + with inconsistent size information. Bug has never been + confirmed to be the cause of any faulty behavior.

+

+ Own Id: OTP-12141

+
+ +

+ Real_path method used while prim loading archive files + was not taking into account the fact that windows + directory symlinks can be across different drives.

+

+ Own Id: OTP-12155

+
+
+
+ + +
Improvements and New Features + + +

+ Add log2 histogram to lcnt for lock wait time

+

+ Own Id: OTP-12059

+
+ +

+ Introduced enif_schedule_nif() + to the NIF API.

+

+ The enif_schedule_nif() function allows a + long-running NIF to be broken into separate NIF + invocations without the help of a wrapper function + written in Erlang. The NIF first executes part of the + long-running task, then calls enif_schedule_nif() + to schedule a NIF for later execution to continue the + task. Any number of NIFs can be scheduled in this manner, + one after another. Since the emulator regains control + between invocations, this helps avoid problems caused by + native code tying up scheduler threads for too long.

+

+ The enif_schedule_nif() function also replaces the + enif_schedule_dirty_nif() in the experimental + dirty NIF API. Note that the only incompatible changes + made are in the experimental dirty NIF API.

+

+ See the NIF + documentation for more information.

+

+ Thanks to Steve Vinoski.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-12128

+
+
+
+ +
+
Erts 6.1.2
Fixed Bugs and Malfunctions -- cgit v1.2.3