From f719d0fe308f00b85f92c29d7cdf9b0dc20d98a2 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 7 Apr 2014 19:52:48 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 227 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) (limited to 'lib/compiler') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index cb39b28d3d..a0f2e617cb 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -31,6 +31,233 @@

This document describes the changes made to the Compiler application.

+
Compiler 5.0 + +
Fixed Bugs and Malfunctions + + +

+ Line numbers would not be correct when a binary + construction such as + '<<Bin/binary,...>>' fails. (Thanks to + Stanislav Seletskiy for reporting this bug.)

+

+ Own Id: OTP-11572

+
+ +

+ The compiler now properly annotates the code in value in + the 'after' clause for a 'try' so that + Dialyzer no longer generates a false warning for an + unmatched return.

+

+ Own Id: OTP-11580

+
+ +

+ Some case statements where no clause would match could + cause an internal error in the compiler. (Thanks to Erik + Soe Sorensen for reporting this bug.)

+

+ Own Id: OTP-11610

+
+ +

+ With --Wunmatched_returns, dialyzer will no longer + warn when the value of a list comprehension is ignored, + provided that the each value in the list would be an + atomic value (such as integer or atoms, as opposed to + tuples and lists). Example: ignoring '[io:format(...) + || ...]' will not cause a warning, while ignoring + '[file:close(Fd) || ...]' will.

+

+ Own Id: OTP-11626

+
+ +

+ Matching out a binary and applying the binary as if it + were a fun would crash the run-time system. (Thanks to + Loïc Hoguin.)

+

+ Own Id: OTP-11672

+
+ +

+ Some local implementations of removing the last element + from a list are replaced by lists:droplast/1. Note + that this requires at least stdlib-2.0, which is + the stdlib version delivered in OTP 17.0. (Thanks to Hans + Svensson)

+

+ Own Id: OTP-11678

+
+ +

+ Allow all auto imports to be suppressed at once. + Introducing the no_auto_import attribute: + -compile(no_auto_import). Useful for code generation + tools that always use the qualified function names and + want to avoid the auto imported functions clashing with + local ones. (Thanks to José Valim.)

+

+ Own Id: OTP-11682

+
+ +

+ Application upgrade (appup) files are corrected for the + following applications:

+

+ asn1, common_test, compiler, crypto, debugger, + dialyzer, edoc, eldap, erl_docgen, et, eunit, gs, hipe, + inets, observer, odbc, os_mon, otp_mibs, parsetools, + percept, public_key, reltool, runtime_tools, ssh, + syntax_tools, test_server, tools, typer, webtool, wx, + xmerl

+

+ A new test utility for testing appup files is added to + test_server. This is now used by most applications in + OTP.

+

+ (Thanks to Tobias Schlager)

+

+ Own Id: OTP-11744

+
+ +

+ Adapt 'asm' deprecation message to new version scheme. + (Thanks to Tuncer Ayaz)

+

+ Own Id: OTP-11751

+
+ +

+ A number of compiler errors where unusual or nonsensical + code would crash the compiler have been reported by Ulf + Norell and corrected by Anthony Ramine.

+

+ Own Id: OTP-11770

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

+ Compilation times for modules with a huge number for + record accesses using the dot operator has been improved.

+

+ Own Id: OTP-10652

+
+ +

+ The compiler can generate somewhat better code by moving + let expressions into sequences. (Thanks to Anthony + Ramine.)

+

+ Own Id: OTP-11056

+
+ +

+ Forbid unsized fields in patterns of binary generators + and simplified v3_core's translation of bit string + generators. (Thanks to Anthony Ramine.)

+

+ Own Id: OTP-11186

+
+ +

+ Funs can now be a given a name. Thanks to to Richard + O'Keefe for the idea (EEP37) and to Anthony Ramine for + the implementation.

+

+ Own Id: OTP-11537

+
+ +

+ Using the from_asm option to produce a BEAM file + starting from BEAM assembly code would often fail because + early optimization passes would not understand + instructions that later optimization passes would + introduce. (Thanks to Anthony Ramine.)

+

+ Own Id: OTP-11544

+
+ +

+ The .core and .S extensions are now + documented in the erlc documentation, and the + 'from_core' and 'from_asm' options are now + documented in the compiler documentation. (Thanks to + Tuncer Ayaz.)

+

+ Own Id: OTP-11547

+
+ +

Optimization of case expressions that build tuples or + lists have been improved.

+

+ Own Id: OTP-11584

+
+ +

+ EEP43: New data type - Maps

+

+ With Maps you may for instance: M0 = + #{ a => 1, b => 2}, % create + associations M1 = M0#{ a := 10 }, % + update values M2 = M1#{ "hi" => + "hello"}, % add new associations #{ + "hi" := V1, a := V2, b := V3} = M2. % match keys with + values

+

+ For information on how to use Maps please see the + Reference + Manual.

+

+ The current implementation is without the following + features: No variable keys + No single value access No map + comprehensions

+

+ Note that Maps is experimental during OTP 17.0.

+

+ Own Id: OTP-11616

+
+ +

+ Some function specs are corrected or moved and some edoc + comments are corrected in order to allow use of edoc. + (Thanks to Pierre Fenoll)

+

+ Own Id: OTP-11702

+
+ +

+ Thanks to Anthony Ramine for several improvements to the + optimizations in the BEAM compiler and for cleaning up + the code the code that transforms list and binary + comprehensions to Core Erlang.

+

+ Own Id: OTP-11720

+
+ +

+ The default encoding for Erlang source files is now + UTF-8. As a temporary measure to ease the transition from + the old default of latin-1, if the compiler encounters + byte sequences that are not valid UTF-8 sequences, the + compiler will re-try the compilation in latin-1 mode. + This workaround will be removed in a future release.

+

+ Own Id: OTP-11791

+
+
+
+ +
+
Compiler 4.9.4
Fixed Bugs and Malfunctions -- cgit v1.2.3