From 08a112d189c8f47953eabcf2e05a0245dd6e6087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Fri, 11 Jun 2010 10:20:20 +0000 Subject: Update release notes --- lib/stdlib/doc/src/notes.xml | 277 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) (limited to 'lib/stdlib/doc/src/notes.xml') diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml index 28a3719d38..23d1e8b7de 100644 --- a/lib/stdlib/doc/src/notes.xml +++ b/lib/stdlib/doc/src/notes.xml @@ -30,6 +30,283 @@

This document describes the changes made to the STDLIB application.

+
STDLIB 1.17 + +
Fixed Bugs and Malfunctions + + +

The Erlang code preprocessor (epp) sent extra + messages on the form {eof,Location} to the client + when parsing the file attribute. This bug, + introduced in R11B, has been fixed.

+

+ Own Id: OTP-8470

+
+ +

The abstract type 'fun' could not be printed by the + Erlang pretty printer (erl_pp). This bug has been + fixed.

+

+ Own Id: OTP-8473

+
+ +

The function erl_scan:reserved_word/1 no longer + returns true when given the word spec. This + bug was introduced in STDLIB-1.15.3 (R12B-3).

+

+ Own Id: OTP-8567

+
+ +

The documentation of lists:keysort/2 states + that the sort is stable.

+

+ Own Id: OTP-8628 Aux Id: seq11576

+
+ +

+ The shell's line editing has been improved to more + resemble the behaviour of readline and other shells. + (Thanks to Dave Peticolas)

+

+ Own Id: OTP-8635

+
+ +

The Erlang code preprocessor (epp) did not + correctly handle premature end-of-input when defining + macros. This bug, introduced in STDLIB 1.16, has been + fixed.

+

+ Own Id: OTP-8665 Aux Id: OTP-7810

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

+ The module binary from EEP31 (and EEP9) is implemented.

+

+ Own Id: OTP-8217

+
+ +

The erlang pretty printer (erl_pp) no longer + quotes atoms in types.

+

+ Own Id: OTP-8501

+
+ +

The Erlang code preprocessor (epp) now + considers records with no fields as typed.

+

+ Own Id: OTP-8503

+
+ +

+ Added function zip:foldl/3 to iterate over zip + archives.

+

+ Added functions to create and extract escripts. See + escript:create/2 and escript:extract/2.

+

+ The undocumented function escript:foldl/3 has been + removed. The same functionality can be achieved with the + more flexible functions escript:extract/2 and + zip:foldl/3.

+

+ Record fields has been annotated with type info. Source + files as been adapted to fit within 80 chars and trailing + whitespace has been removed.

+

+ Own Id: OTP-8521

+
+ +

The Erlang parser no longer duplicates the singleton + type undefined in the type of record fields + without initial value.

+

+ Own Id: OTP-8522

+
+ +

A regular expression with many levels of parenthesis + could cause a buffer overflow. That has been corrected. + (Thanks to Michael Santos.)

+

+ Own Id: OTP-8539

+
+ +

When defining macros the closing right parenthesis + before the dot is now mandatory.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8562

+
+ +

+ Some properties of a compiled re pattern are defined to + allow for guard tests.

+

+ Own Id: OTP-8577

+
+ +

Local and imported functions now override the + auto-imported BIFs when the names clash. The pre R14 + behaviour was that auto-imported BIFs would override + local functions. To avoid that old programs change + behaviour, the following will generate an error:

+

Doing a call without explicit module name + to a local function having a name clashing with the name + of an auto-imported BIF that was present (and + auto-imported) before OTP R14A

+

Explicitly importing a function having a name + clashing with the name of an autoimported BIF that was + present (and autoimported) before OTP R14A

+

Using any form of the old compiler directive + nowarn_bif_clash

If the BIF + was added or auto-imported in OTP R14A or later, + overriding it with an import or a local function will + only result in a warning,

To resolve clashes, you + can either use the explicit module name erlang to + call the BIF, or you can remove the auto-import of that + specific BIF by using the new compiler directive + -compile({no_auto_import,[F/A]})., which makes all + calls to the local or imported function without explicit + module name pass without warnings or errors.

The + change makes it possible to add auto-imported BIFs + without breaking or silently changing old code in the + future. However some current code ingeniously utilizing + the old behaviour or the nowarn_bif_clash compiler + directive, might need changing to be accepted by the + compiler.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8579

+
+ +

The undocumented, unsupport, and deprecated function + lists:flat_length/1 has been removed.

+

+ Own Id: OTP-8584

+
+ +

+ A bug in re that could cause certain regular expression + matches never to terminate is corrected. (Thanks to + Michael Santos and Gordon Guthrie.)

+

+ Own Id: OTP-8589

+
+ +

Nested records can now be accessed without + parenthesis. See the Reference Manual for examples. + (Thanks to YAMASHINA Hio and Tuncer Ayaz.)

+

+ Own Id: OTP-8597

+
+ +

receive statements that can only read out a + newly created reference are now specially optimized so + that it will execute in constant time regardless of the + number of messages in the receive queue for the process. + That optimization will benefit calls to + gen_server:call(). (See gen:do_call/4 for + an example of a receive statement that will be + optimized.)

+

+ Own Id: OTP-8623

+
+ +

The beam_lib:cmp/2 function now compares BEAM files in + stricter way. The BEAM files will be considered different + if there are any changes except in the compilation + information ("CInf") chunk. beam_lib:cmp/2 used to ignore + differences in the debug information (significant for + Dialyzer) and other chunks that did not directly change + the run-time behavior.

+

+ Own Id: OTP-8625

+
+ +

+ When a gen_server, gen_fsm process, or gen_event + terminates abnormally, sometimes the text representation + of the process state can occupy many lines of the error + log, depending on the definition of the state term. A + mechanism to trim out parts of the state from the log has + been added (using a format_status/2 callback). See the + documentation.

+

+ Own Id: OTP-8630

+
+ +

+ Calling sys:get_status() for processes that have + globally registered names that were not atoms would cause + a crash. Corrected. (Thanks to Steve Vinoski.)

+

+ Own Id: OTP-8656

+
+ +

The Erlang scanner has been augmented with two new + tokens: .. and ....

+

+ Own Id: OTP-8657

+
+ +

Expressions evaluating to integers can now be used in + types and function specifications where hitherto only + integers were allowed ("Erlang_Integer").

+

+ Own Id: OTP-8664

+
+ +

The compiler optimizes record operations better.

+

+ Own Id: OTP-8668

+
+ +

+ The recently added BIFs erlang:min/2, erlang:max/2 and + erlang:port_command/3 are now auto-imported (as they were + originally intended to be). Due to the recent compiler + change (OTP-8579), the only impact on old code defining + it's own min/2, max/2 or port_command/3 functions will be + a warning, the local functions will still be used. The + warning can be removed by using + -compile({no_auto_import,[min/2,max/2,port_command/3]}). + in the source file.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8669 Aux Id: OTP-8579

+
+ +

+ Now, binary_to_term/2 is auto-imported. This will cause a + compile warning if and only if a module has got a local + function with that name.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8671

+
+ +

+ The predefined builtin type tid() has been removed. + Instead, ets:tid() should be used.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-8687

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