From b92ea63417bc6933393a3c285faf393b3d287ac2 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 12 Dec 2011 18:14:34 +0100 Subject: Prepare release --- lib/stdlib/doc/src/notes.xml | 291 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 291 insertions(+) (limited to 'lib/stdlib/doc') diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml index d9c220b996..42a26ee44a 100644 --- a/lib/stdlib/doc/src/notes.xml +++ b/lib/stdlib/doc/src/notes.xml @@ -30,6 +30,297 @@

This document describes the changes made to the STDLIB application.

+
STDLIB 1.18 + +
Fixed Bugs and Malfunctions + + +

+ Improved algorithm in module random. Avoid seed + values that are even divisors of the primes and by that + prevent getting sub-seeds that are stuck on zero. Worst + case was random:seed(0,0,0) that produced a series of + only zeros. This is an incompatible change in the sense + that applications that relies on reproducing a specific + series for a given seed will fail. The pseudo random + output is still deterministic but different compared to + earlier versions.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8713

+
+ +

Calls to global:whereis_name/1 have been + substituted for calls to + global:safe_whereis_name/1 since the latter is not + safe at all.

+

The reason for not doing this earlier is that setting + a global lock masked out a bug concerning the restart of + supervised children. The bug has now been fixed by a + modification of global:whereis_name/1. (Thanks to + Ulf Wiger for code contribution.)

+

A minor race conditions in gen_fsm:start* has + been fixed: if one of these functions returned {error, + Reason} or ignore, the name could still be registered + (either locally or in global. (This is the same + modification as was done for gen_server in OTP-7669.)

+

The undocumented function + global:safe_whereis_name/1 has been removed.

+

+ Own Id: OTP-9212 Aux Id: seq7117, OTP-4174

+
+ +

+ If a child of a supervisor terminates with reason + {shutdown,Term} it is now handled by the supervisor as if + the reason was 'shutdown'.

+

+ For children with restart type 'permanent', this implies + no change. For children with restart type 'transient', + the child will no longer be restarted and no supervisor + report will be written. For children with restart type + 'temporary', no supervisor report will be written.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9222

+
+ +

+ Minor improvement of documentation regarding supervisor + restart strategy for temporary and transient child + processes.

+

+ Own Id: OTP-9381

+
+ +

A Dets table with sufficiently large buckets could not + always be repaired. This bug has been fixed.

The + format of Dets files has been modified. When downgrading + tables created with the new system will be repaired. + Otherwise the modification should not be noticeable.

+

+ Own Id: OTP-9607

+
+ +

A few contracts in the lists module have been + corrected.

+

+ Own Id: OTP-9616

+
+ +

+ Add '-callback' attributes in stdlib's behaviours

+

+ Replace the behaviour_info(callbacks) export in stdlib's + behaviours with -callback' attributes for all the + callbacks. Update the documentation with information on + the callback attribute Automatically generate + 'behaviour_info' function from '-callback' attributes

+

+ 'behaviour_info(callbacks)' is a special function that is + defined in a module which describes a behaviour and + returns a list of its callbacks.

+

+ This function is now automatically generated using the + '-callback' specs. An error is returned by lint if user + defines both '-callback' attributes and the + behaviour_info/1 function. If no type info is needed for + a callback use a generic spec for it. Add '-callback' + attribute to language syntax

+

+ Behaviours may define specs for their callbacks using the + familiar spec syntax, replacing the '-spec' keyword with + '-callback'. Simple lint checks are performed to ensure + that no callbacks are defined twice and all types + referred are declared.

+

+ These attributes can be then used by tools to provide + documentation to the behaviour or find discrepancies in + the callback definitions in the callback module.

+

+ Add callback specs into 'application' module in kernel + Add callback specs to tftp module following internet + documentation Add callback specs to inets_service module + following possibly deprecated comments

+

+ Own Id: OTP-9621

+
+ +

If a Dets table had been properly closed but the + space management data could not been read, it was not + possible to repair the file. This bug has been fixed. +

+

+ Own Id: OTP-9622

+
+ +

+ The Unicode noncharacter code points 16#FFFE and 16#FFFE + were not allowed to be encoded or decoded using the + unicode module or bit syntax. That was + inconsistent with the other noncharacters 16#FDD0 to + 16#FDEF that could be encoded/decoded. To resolve the + inconsistency, 16#FFFE and 16#FFFE can now be encoded and + decoded. (Thanks to Alisdair Sullivan.)

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9624

+
+ +

+ Make epp search directory of current file first when + including another file This completes a partial fix in + R11 that only worked for include_lib(). (Thanks to + Richard Carlsson)

+

+ Own Id: OTP-9645

+
+ +

+ ms_transform: Fix incorrect `variable shadowed' warnings

+

+ This patch removes incorrect passing of variable bindings + from one function clause to another. (Thanks to Haitao + Li)

+

+ Own Id: OTP-9646

+
+ +

+ Explicitly kill dynamic children in supervisors

+

+ According to the supervisor's documentation: "Important + note on simple-one-for-one supervisors: The dynamically + created child processes of a simple-one-for-one + supervisor are not explicitly killed, regardless of + shutdown strategy, but are expected to terminate when the + supervisor does (that is, when an exit signal from the + parent process is received)."

+

+ All is fine as long as we stop simple_one_for_one + supervisor manually. Dynamic children catch the exit + signal from the supervisor and leave. But, if this + happens when we stop an application, after the top + supervisor has stopped, the application master kills all + remaining processes associated to this application. So, + dynamic children that trap exit signals can be killed + during their cleanup (here we mean inside terminate/2). + This is unpredictable and highly time-dependent.

+

+ In this commit, supervisor module is patched to + explicitly terminate dynamic children accordingly to the + shutdown strategy.

+

+ NOTE: Order in which dynamic children are stopped is not + defined. In fact, this is "almost" done at the same time.

+

+ Stack errors when dynamic children are stopped

+

+ Because a simple_one_for_one supervisor can have many + workers, we stack errors during its shutdown to report + only one message for each encountered error type. Instead + of reporting the child's pid, we use the number of + concerned children. (Thanks to Christopher Faulet)

+

+ Own Id: OTP-9647

+
+ +

+ Allow an infinite timeout to shutdown worker processes

+

+ Now, in child specification, the shutdown value can also + be set to infinity for worker children. This restriction + was removed because this is not always possible to + predict the shutdown time for a worker. This is highly + application-dependent. Add a warning to docs about + workers' shutdown strategy (Thanks to Christopher Faulet)

+

+ Own Id: OTP-9648

+
+ +

+ A badarg would sometimes occur in supervisor when + printing error reports and the child pid was undefined. + This has been corrected.

+

+ Own Id: OTP-9669

+
+ +

+ Fix re:split spec not to accept option 'global'(Thanks to + Shunichi Shinohara)

+

+ Own Id: OTP-9691

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

Fix a few tests that used to fail on the HiPE + platform.

+

+ Own Id: OTP-9637

+
+ +

Variables are now now allowed in 'fun M:F/A' as + suggested by Richard O'Keefe in EEP-23.

+

The representation of 'fun M:F/A' in the + abstract format has been changed in an incompatible way. + Tools that directly read or manipulate the abstract + format (such as parse transforms) may need to be updated. + The compiler can handle both the new and the old format + (i.e. extracting the abstract format from a pre-R15 BEAM + file and compiling it using compile:forms/1,2 will work). + The syntax_tools application can also handle both + formats.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9643

+
+ +

+ Tuple funs (a two-element tuple with a module name and a + function) are now officially deprecated and will be + removed in R16. Use 'fun M:F/A' instead. To make + you aware that your system uses tuple funs, the very + first time a tuple fun is applied, a warning will be sent + to the error logger.

+

+ Own Id: OTP-9649

+
+ +

+ The deprecated 'regexp' module has been removed. + Use the 're' module instead.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9737

+
+ +

+ filename:find_src/1,2 will now work on stripped + BEAM files (reported by Per Hedeland). The HiPE compiler + will also work on stripped BEAM files. The BEAM compiler + will no longer include compilation options given in the + source code itself in M:module_info(compile) + (because those options will be applied anyway if the + module is re-compiled).

+

+ Own Id: OTP-9752

+
+
+
+ +
+
STDLIB 1.17.5
Fixed Bugs and Malfunctions -- cgit v1.2.3