From 12f6a1b18fc573ce3f245bfd69e62fbaa378b80e Mon Sep 17 00:00:00 2001 From: Richard Carlsson Date: Sat, 29 Oct 2016 23:30:49 +0200 Subject: warn_obsolete_guard is already default Update compiler documentation and remove superfluous erlc flags. --- lib/compiler/doc/src/compile.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 3ce37b98e9..81e8ec6c23 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -574,7 +574,7 @@ module.beam: module.erl \ such as pid/1 and list/1. See the Erlang Reference Manual for a complete list of type testing BIFs and their old - equivalents. Default is to emit no warnings for calls to + equivalents. Default is to emit warnings for calls to old type testing BIFs.

-- cgit v1.2.3 From ba8f27dca5662ca7c66ac766be107342d808e72b Mon Sep 17 00:00:00 2001 From: Richard Carlsson Date: Sat, 29 Oct 2016 23:40:01 +0200 Subject: Make warn_export_all the default --- lib/compiler/doc/src/compile.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 81e8ec6c23..e93da85f6c 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -498,9 +498,11 @@ module.beam: module.erl \ - warn_export_all + nowarn_export_all -

Emits a warning if option export_all is also given.

+

Turns off warnings for uses of the export_all + option. Default is to emit a warning if option + export_all is also given.

warn_export_vars -- cgit v1.2.3 From 8b0aff6608c42bf3c04381697b9ab57ffbd93456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Wed, 7 Dec 2016 15:40:45 +0100 Subject: Add option 'deterministic' for reproducible builds Add the option 'deterministic' to make it easier to achieve reproducible builds. This option omits the {options,...} and {source,...} tuples in M:module_info(compile), because those options may contain absolute paths. The author of ERL-310 suggested that only compiler options that may contain absolute paths (such as {i,...}) should be excluded. But I find it confusing to keep only some options. Alternatives considered: Always omitting this information. Since this information has been available for a long time, that would probably break some workflows. As an example that some people care about {source,...}, 2d785c07fbf9 made it possible to give a compiler option to set {source,...}. ERL-310 --- lib/compiler/doc/src/compile.xml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index e93da85f6c..bd488a39a5 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -176,6 +176,14 @@ beam_lib(3).

+ deterministic + +

Omit the options and source tuples in + the list returned by Module:module_info(compile). + This option will make it easier to achieve reproducible builds. +

+
+ makedep

Produces a Makefile rule to track headers dependencies. -- cgit v1.2.3 From fc0427be6d482182ec70f3cd87c73027cfb17ea9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 9 Dec 2016 11:45:22 +0100 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 6aaf16e9a5..2e58b68bf0 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,41 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.0.3 + +
Fixed Bugs and Malfunctions + + +

+ Fixed a compiler crash when maps were matched.

+

+ Own Id: OTP-13931 Aux Id: ERL-266

+
+ +

+ Fixed a compiler crash having to with the delayed + sub-creation optimization. (Thanks to Jose Valim for + reporting this bug.)

+

+ Own Id: OTP-13947 Aux Id: ERL-268

+
+ +

The compiler option inline_list_funcs + accidentally turned off some other optimizations.

+

+ Own Id: OTP-13985

+
+ +

The compiler could sometimes generate spurious + warnings when inlining was enabled.

+

+ Own Id: OTP-14040 Aux Id: ERL-301

+
+
+
+ +
+
Compiler 7.0.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 36f7087ae0fe9749b776b7b013ccc0a26a494a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 12 Feb 2017 22:04:36 +0100 Subject: Add extra_chunks option to compile This allow languages such as Elixir and LFE to attach extra chunks to the .beam file without having to parse the beam file after compilation. This commit also cleans up the interface to beam_asm, allowing chunks to be passed from the compiler without a need to change beam_asm API on every new chunk. --- lib/compiler/doc/src/compile.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index bd488a39a5..e6470b938f 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -418,7 +418,7 @@ module.beam: module.erl \ without module prefix to local or imported functions before trying with auto-imported BIFs. If the BIF is to be called, use the erlang module prefix in the call, not - { no_auto_import,[{F,A}, ...]}.

+ {no_auto_import,[{F,A}, ...]}.

If this option is written in the source code, as a -compile directive, the syntax F/A can be used instead @@ -439,6 +439,15 @@ module.beam: module.erl \

+ {extra_chunks, [{binary(), binary()}]} + +

Pass extra chunks to be stored in the .beam file. + The extra chunks must be a list of tuples with a four byte + binary as chunk name followed by a binary with the chunk contents. + See beam_lib for + more information. +

+

If warnings are turned on (option report_warnings -- cgit v1.2.3 From 2e6f6882b36bd4b752c27f1e07a7209d74cd9bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20G=C3=B6m=C3=B6ri?= Date: Sun, 26 Feb 2017 14:32:03 +0100 Subject: Fix minor typo in compile:forms/1 doc --- lib/compiler/doc/src/compile.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 3ce37b98e9..611cdc71ae 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -669,7 +669,7 @@ module.beam: module.erl \ Compiles a list of forms.

Is the same as - forms(File, [verbose,report_errors,report_warnings]). + forms(Forms, [verbose,report_errors,report_warnings]).

-- cgit v1.2.3 From 26c3cd82529836cb5b6eefbf7f92f318fd91f847 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Fri, 10 Mar 2017 15:00:46 +0100 Subject: Update copyright year --- lib/compiler/doc/src/compile.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 611cdc71ae..9ac16af814 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -4,7 +4,7 @@
- 19962016 + 19962017 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From 4d658008be5a08ddadbe75ebadb9ef124436b76e Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 14 Mar 2017 15:59:23 +0100 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 2e58b68bf0..449453bf88 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.0.4 + +
Fixed Bugs and Malfunctions + + +

+ Minor internal changes. A typo in the documentation was + also fixed.

+

+ Own Id: OTP-14240

+
+
+
+ +
+
Compiler 7.0.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From dfb899c0229f7ff7dbfad34d496e0429562728bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Mar 2017 13:25:35 +0100 Subject: Store abstract code in the Dbgi chunk The new Dbgi chunk returns data in the following format: {debug_info_v1, Backend, Data} This allows compilers to store the debug info in different formats. In order to retrieve a particular format, for instance, Erlang Abstract Format, one may invoke: Backend:debug_info(erlang_v1, Module, Data, Opts) Besides introducing the chunk above, this commit also: * Changes beam_lib:chunk(Beam, [:abstract_code]) to read from the new Dbgi chunk while keeping backwards compatibility with old .beams * Adds the {debug_info, {Backend, Data}} option to compile:file/2 and friends that are stored in the Dbgi chunk. This allows the debug info encryption mechanism to work across compilers * Improves dialyzer to work directly on Core Erlang, allowing languages that do not have the Erlang Abstract Format to be dialyzer as long as they emit the new chunk and their backend implementation is available Backwards compatibility is kept across the board except for those calling beam_lib:chunk(Beam, ["Abst"]), as the old chunk is no longer available. Note however the "Abst" chunk has always been optional. Future OTP versions may remove parsing the "Abst" chunk altogether from beam_lib once Erlang 19 and earlier is no longer supported. The current Dialyzer implementation still supports earlier .beam files and such may also be removed in future versions. --- lib/compiler/doc/src/compile.xml | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index ed04dac1c0..94bda0d5e3 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -132,12 +132,10 @@ debug_info -

Includes debug information in the form of abstract code - (see - The Abstract Format - in ERTS User's Guide) in the compiled beam module. Tools - such as Debugger, Xref, and Cover require - the debug information to be included.

+

Includes debug information in the form of + Erlang Abstract Format in the debug_info + chunk of the compiled beam module. Tools such as Debugger, + Xref, and Cover require the debug information to be included.

Warning: Source code can be reconstructed from the debug information. Use encrypted debug information @@ -147,6 +145,21 @@ beam_lib(3).

+ {debug_info, {Backend, Data}} + + +

Includes custom debug information in the form of a + Backend module with custom Data in the compiled beam module. + The given module must implement a debug_info/4 function + and is responsible for generating different code representations, + as described in the debug_info under + beam_lib(3).

+ +

Warning: Source code can be reconstructed from + the debug information. Use encrypted debug information + (encrypt_debug_info) to prevent this.

+
+ {debug_info_key,KeyString} {debug_info_key,{Mode,KeyString}} -- cgit v1.2.3 From 83e20c62057ebc1d8064bf57b01be560cd244e1d Mon Sep 17 00:00:00 2001 From: Raimo Niskanen Date: Thu, 4 May 2017 15:42:21 +0200 Subject: Update copyright year --- lib/compiler/doc/src/compile.xml | 2 +- lib/compiler/doc/src/notes.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 94bda0d5e3..a82befd057 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -4,7 +4,7 @@
- 19962016 + 19962017 Ericsson AB. All Rights Reserved. diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 449453bf88..1dc0c808e7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042016 + 20042017 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From dc57404252c47520f352834ad9be45ad684f96c9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 4 May 2017 17:05:25 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 150 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 1dc0c808e7..f3da04120a 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,156 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1 + +
Fixed Bugs and Malfunctions + + +

For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard BIF + as filter in a list comprehension was not allowed.

+

+ Own Id: OTP-13690

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

+ Optimized test for tuples with an atom as first element.

+

+ Own Id: OTP-12148

+
+ +

+ Compilation of modules with huge literal binary strings + is now much faster.

+

+ Own Id: OTP-13794

+
+ +

Replaced usage of deprecated symbolic time + unit representations.

+

+ Own Id: OTP-13831 Aux Id: OTP-13735

+
+ +

The undocumented and unsupported module + sys_pre_expand has been removed. As a partical + replacement for the functionality, there is a new + function erl_internal:add_predefined_functions/1 + and erl_expand_records will now add a module + prefix to calls to BIFs and imported functions.

+

+ Own Id: OTP-13856

+
+ +

The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with variables + in languages such as Elixir or LFE.

+

+ Own Id: OTP-13924

+
+ +

The function fmod/2 has been added to the + math module.

+

+ Own Id: OTP-14000

+
+ +

Code generation for complicated guards have been + improved.

+

+ Own Id: OTP-14042

+
+ +

+ The compiler has new warnings for repeated identical map + keys.

+

+ A map expression such as,

+

+ #{'a' => 1, 'b' => 2, 'a' => 3}.

+

+ will produce a warning for the repeated key 'a'.

+

+ Own Id: OTP-14058

+
+ +

By default, there will now be a warning when + export_all is used. The warning can be disabled + using nowarn_export_all.

+

+ Own Id: OTP-14071

+
+ +

+ Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching.

+

+ Own Id: OTP-14072

+
+ +

There is a new 'deterministc' option to omit + 'source' and 'options' tuples in the BEAM + file.

+

+ Own Id: OTP-14087

+
+ +

+ Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster.

+

+ Own Id: OTP-14125 Aux Id: ERL-308

+
+ +

Atoms may now contain arbitrary Unicode + characters.

+

+ Own Id: OTP-14178

+
+ +

compile:file/2 now accepts the option + extra_chunks to include extra chunks in the BEAM + file.

+

+ Own Id: OTP-14221

+
+ +

The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. + The purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE.

+

All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, + [abstract_code]) will continue to work with both the + new and old format. Tools that call + beam_lib:chunk(Beam, ["Abst"]) will not work with + the new format.

+

For more information, see the description of + debug_info in the documentation for + beam_lib and the description of the + {debug_info,{Backend,Data}} option in the + documentation for compile.

+

+ Own Id: OTP-14369 Aux Id: PR-1367

+
+
+
+ +
+
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From eace29905be436d77245656b2511c9a9c2c67c90 Mon Sep 17 00:00:00 2001 From: Raimo Niskanen Date: Fri, 5 May 2017 13:15:42 +0200 Subject: Revert "Prepare release" This reverts commit dc57404252c47520f352834ad9be45ad684f96c9. --- lib/compiler/doc/src/notes.xml | 150 ----------------------------------------- 1 file changed, 150 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index f3da04120a..1dc0c808e7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,156 +32,6 @@

This document describes the changes made to the Compiler application.

-
Compiler 7.1 - -
Fixed Bugs and Malfunctions - - -

For many releases, it has been legal to override a BIF - with a local function having the same name. However, - calling a local function with the same name as guard BIF - as filter in a list comprehension was not allowed.

-

- Own Id: OTP-13690

-
-
-
- - -
Improvements and New Features - - -

- Optimized test for tuples with an atom as first element.

-

- Own Id: OTP-12148

-
- -

- Compilation of modules with huge literal binary strings - is now much faster.

-

- Own Id: OTP-13794

-
- -

Replaced usage of deprecated symbolic time - unit representations.

-

- Own Id: OTP-13831 Aux Id: OTP-13735

-
- -

The undocumented and unsupported module - sys_pre_expand has been removed. As a partical - replacement for the functionality, there is a new - function erl_internal:add_predefined_functions/1 - and erl_expand_records will now add a module - prefix to calls to BIFs and imported functions.

-

- Own Id: OTP-13856

-
- -

The internal compiler passes now start all generated - variables with "@" to avoid any conflicts with variables - in languages such as Elixir or LFE.

-

- Own Id: OTP-13924

-
- -

The function fmod/2 has been added to the - math module.

-

- Own Id: OTP-14000

-
- -

Code generation for complicated guards have been - improved.

-

- Own Id: OTP-14042

-
- -

- The compiler has new warnings for repeated identical map - keys.

-

- A map expression such as,

-

- #{'a' => 1, 'b' => 2, 'a' => 3}.

-

- will produce a warning for the repeated key 'a'.

-

- Own Id: OTP-14058

-
- -

By default, there will now be a warning when - export_all is used. The warning can be disabled - using nowarn_export_all.

-

- Own Id: OTP-14071

-
- -

- Optimize maps pattern matching by only examining the - common keys in each clause first instead of all keys. - This will reduce the number of lookups of each key in - maps pattern matching.

-

- Own Id: OTP-14072

-
- -

There is a new 'deterministc' option to omit - 'source' and 'options' tuples in the BEAM - file.

-

- Own Id: OTP-14087

-
- -

- Analyzing modules with binary construction with huge - strings is now much faster. The compiler also compiles - such modules slightly faster.

-

- Own Id: OTP-14125 Aux Id: ERL-308

-
- -

Atoms may now contain arbitrary Unicode - characters.

-

- Own Id: OTP-14178

-
- -

compile:file/2 now accepts the option - extra_chunks to include extra chunks in the BEAM - file.

-

- Own Id: OTP-14221

-
- -

The format of debug information that is stored in BEAM - files (when debug_info is used) has been changed. - The purpose of the change is to better support other - BEAM-based languages such as Elixir or LFE.

-

All tools included in OTP (dialyzer, debugger, cover, - and so on) will handle both the new format and the - previous format. Tools that retrieve the debug - information using beam_lib:chunk(Beam, - [abstract_code]) will continue to work with both the - new and old format. Tools that call - beam_lib:chunk(Beam, ["Abst"]) will not work with - the new format.

-

For more information, see the description of - debug_info in the documentation for - beam_lib and the description of the - {debug_info,{Backend,Data}} option in the - documentation for compile.

-

- Own Id: OTP-14369 Aux Id: PR-1367

-
-
-
- -
-
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d55c8e08714a8badd4a0af2bd14965b4672958fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Thu, 11 May 2017 07:04:32 +0200 Subject: Update compile.xml --- lib/compiler/doc/src/compile.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index ed04dac1c0..065042ed1c 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -587,9 +587,9 @@ module.beam: module.erl \ to be deprecated.

- warn_obsolete_guard + nowarn_obsolete_guard -

Emits warnings for calls to old type testing BIFs, +

Turns off warnings for calls to old type testing BIFs, such as pid/1 and list/1. See the Erlang Reference Manual for a complete list of type testing BIFs and their old -- cgit v1.2.3 From 7b169140b2d37f43996b9d1a94877926a471d97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Tue, 2 May 2017 05:41:17 +0200 Subject: Warn for potentially unsafe use of get_stacktrace/0 erlang:get_stacktrace/0 returns the stacktrace for the latest exception. The problem is that the stacktrace is kept until the next exception occurs. If the last exception was a 'function_clause' or a 'badarg', the arguments for the call are also kept forever. The arguments can be terms of any size (potentially huge). In a future release, we would like to only allow erlang:get_stacktrace/0 from within a 'try' expression. That would make it possible to clear the stacktrace when the 'try' expression is exited. The 'catch' expression has no natural end where the stacktrace could be cleared. The stacktrace could be cleared at the end of the function that the 'catch' occurs in, but that would cause problems in the following scenario (from real life, but simplified): try ... catch _:_ -> io:format(...), io:format("~p\n", [erlang:get_stacktrace()]) end. %% In io.erl. format(Fmt, Args) -> Res = case ... of SomePattern -> catch... ...; SomeOtherPattern -> %% Output the formatted string here ... end, clear_stacktrace(), %% Inserted by compiler. Res. The call to io:format() would always clear the stacktrace before it could be retrieved. That problem could be solved by tightning the scope in which the stacktrace is kept, but the rules for how long erlang:get_stacktrace/0 would work would become complicated. Therefore, the solution we suggest for a future major release of OTP is that erlang:get_stacktrace/0 will return [] if it is called outside the 'catch' part of a 'try' expression. To help users prepare, introduce a warning when it is likely that erlang:get_stacktrace/0 will always return an empty list, for example in this code: catch error(foo), Stk = erlang:get_stacktrace() or in this code: try Expr catch _:_ -> ok end, Stk = erlang:get_stacktrace() --- lib/compiler/doc/src/compile.xml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index fed68037c1..10164890f2 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -629,6 +629,14 @@ module.beam: module.erl \

Turns off warnings for unused record types. Default is to emit warnings for unused locally defined record types.

+ + nowarn_get_stacktrace + +

Turns off warnings for using get_stacktrace/0 in a context + where it will probably not work in a future release. For example, + by default there will be a warning if get_stacktrace/0 is + used following a catch expression.

+

Another class of warnings is generated by the compiler -- cgit v1.2.3 From eaf8ca41dfa4850437ad270d3897399c9358ced0 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 30 May 2017 16:15:30 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 174 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 1dc0c808e7..f11d6c73f2 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,180 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1 + +
Fixed Bugs and Malfunctions + + +

For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard BIF + as filter in a list comprehension was not allowed.

+

+ Own Id: OTP-13690

+
+ +

compile:forms/2 would not return the module name as + documented when one of the options 'from_core', + 'from_asm', or 'from_beam' was given. Also, + the compiler would crash if one of those options was + combined with 'native'.

+

+ Own Id: OTP-14408 Aux Id: ERL-417

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

+ Optimized test for tuples with an atom as first element.

+

+ Own Id: OTP-12148

+
+ +

+ Compilation of modules with huge literal binary strings + is now much faster.

+

+ Own Id: OTP-13794

+
+ +

Replaced usage of deprecated symbolic time + unit representations.

+

+ Own Id: OTP-13831 Aux Id: OTP-13735

+
+ +

The undocumented and unsupported module + sys_pre_expand has been removed. As a partical + replacement for the functionality, there is a new + function erl_internal:add_predefined_functions/1 + and erl_expand_records will now add a module + prefix to calls to BIFs and imported functions.

+

+ Own Id: OTP-13856

+
+ +

The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with variables + in languages such as Elixir or LFE.

+

+ Own Id: OTP-13924

+
+ +

The function fmod/2 has been added to the + math module.

+

+ Own Id: OTP-14000

+
+ +

Code generation for complicated guards have been + improved.

+

+ Own Id: OTP-14042

+
+ +

+ The compiler has new warnings for repeated identical map + keys.

+

+ A map expression such as,

+

+ #{'a' => 1, 'b' => 2, 'a' => 3}.

+

+ will produce a warning for the repeated key 'a'.

+

+ Own Id: OTP-14058

+
+ +

By default, there will now be a warning when + export_all is used. The warning can be disabled + using nowarn_export_all.

+

+ Own Id: OTP-14071

+
+ +

+ Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching.

+

+ Own Id: OTP-14072

+
+ +

There is a new 'deterministc' option to omit + 'source' and 'options' tuples in the BEAM + file.

+

+ Own Id: OTP-14087

+
+ +

+ Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster.

+

+ Own Id: OTP-14125 Aux Id: ERL-308

+
+ +

Atoms may now contain arbitrary Unicode + characters.

+

+ Own Id: OTP-14178

+
+ +

compile:file/2 now accepts the option + extra_chunks to include extra chunks in the BEAM + file.

+

+ Own Id: OTP-14221

+
+ +

The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. + The purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE.

+

All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, + [abstract_code]) will continue to work with both the + new and old format. Tools that call + beam_lib:chunk(Beam, ["Abst"]) will not work with + the new format.

+

For more information, see the description of + debug_info in the documentation for + beam_lib and the description of the + {debug_info,{Backend,Data}} option in the + documentation for compile.

+

+ Own Id: OTP-14369 Aux Id: PR-1367

+
+ +

In a future release, erlang:get_stacktrace/0 + will probably only work when called from within a + 'try' expression (otherwise it will return + [].

+

To help prepare for that change, the compiler will now + by default warn if 'get_stacktrace/0' is used in a + way that will not work in the future. Note that the + warning will not be issued if 'get_stacktrace/0' + is used in a function that uses neither 'catch' + nor 'try' (because that could be a legal use if + the function is called from within a 'try'.

+

+ Own Id: OTP-14401

+
+
+
+ +
+
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 32275a2fc0b86d1f1b124706afc80f3ff92216eb Mon Sep 17 00:00:00 2001 From: Hans Nilsson Date: Wed, 31 May 2017 16:21:00 +0200 Subject: Revert "Prepare release" This reverts commit eaf8ca41dfa4850437ad270d3897399c9358ced0. --- lib/compiler/doc/src/notes.xml | 174 ----------------------------------------- 1 file changed, 174 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index f11d6c73f2..1dc0c808e7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,180 +32,6 @@

This document describes the changes made to the Compiler application.

-
Compiler 7.1 - -
Fixed Bugs and Malfunctions - - -

For many releases, it has been legal to override a BIF - with a local function having the same name. However, - calling a local function with the same name as guard BIF - as filter in a list comprehension was not allowed.

-

- Own Id: OTP-13690

-
- -

compile:forms/2 would not return the module name as - documented when one of the options 'from_core', - 'from_asm', or 'from_beam' was given. Also, - the compiler would crash if one of those options was - combined with 'native'.

-

- Own Id: OTP-14408 Aux Id: ERL-417

-
-
-
- - -
Improvements and New Features - - -

- Optimized test for tuples with an atom as first element.

-

- Own Id: OTP-12148

-
- -

- Compilation of modules with huge literal binary strings - is now much faster.

-

- Own Id: OTP-13794

-
- -

Replaced usage of deprecated symbolic time - unit representations.

-

- Own Id: OTP-13831 Aux Id: OTP-13735

-
- -

The undocumented and unsupported module - sys_pre_expand has been removed. As a partical - replacement for the functionality, there is a new - function erl_internal:add_predefined_functions/1 - and erl_expand_records will now add a module - prefix to calls to BIFs and imported functions.

-

- Own Id: OTP-13856

-
- -

The internal compiler passes now start all generated - variables with "@" to avoid any conflicts with variables - in languages such as Elixir or LFE.

-

- Own Id: OTP-13924

-
- -

The function fmod/2 has been added to the - math module.

-

- Own Id: OTP-14000

-
- -

Code generation for complicated guards have been - improved.

-

- Own Id: OTP-14042

-
- -

- The compiler has new warnings for repeated identical map - keys.

-

- A map expression such as,

-

- #{'a' => 1, 'b' => 2, 'a' => 3}.

-

- will produce a warning for the repeated key 'a'.

-

- Own Id: OTP-14058

-
- -

By default, there will now be a warning when - export_all is used. The warning can be disabled - using nowarn_export_all.

-

- Own Id: OTP-14071

-
- -

- Optimize maps pattern matching by only examining the - common keys in each clause first instead of all keys. - This will reduce the number of lookups of each key in - maps pattern matching.

-

- Own Id: OTP-14072

-
- -

There is a new 'deterministc' option to omit - 'source' and 'options' tuples in the BEAM - file.

-

- Own Id: OTP-14087

-
- -

- Analyzing modules with binary construction with huge - strings is now much faster. The compiler also compiles - such modules slightly faster.

-

- Own Id: OTP-14125 Aux Id: ERL-308

-
- -

Atoms may now contain arbitrary Unicode - characters.

-

- Own Id: OTP-14178

-
- -

compile:file/2 now accepts the option - extra_chunks to include extra chunks in the BEAM - file.

-

- Own Id: OTP-14221

-
- -

The format of debug information that is stored in BEAM - files (when debug_info is used) has been changed. - The purpose of the change is to better support other - BEAM-based languages such as Elixir or LFE.

-

All tools included in OTP (dialyzer, debugger, cover, - and so on) will handle both the new format and the - previous format. Tools that retrieve the debug - information using beam_lib:chunk(Beam, - [abstract_code]) will continue to work with both the - new and old format. Tools that call - beam_lib:chunk(Beam, ["Abst"]) will not work with - the new format.

-

For more information, see the description of - debug_info in the documentation for - beam_lib and the description of the - {debug_info,{Backend,Data}} option in the - documentation for compile.

-

- Own Id: OTP-14369 Aux Id: PR-1367

-
- -

In a future release, erlang:get_stacktrace/0 - will probably only work when called from within a - 'try' expression (otherwise it will return - [].

-

To help prepare for that change, the compiler will now - by default warn if 'get_stacktrace/0' is used in a - way that will not work in the future. Note that the - warning will not be issued if 'get_stacktrace/0' - is used in a function that uses neither 'catch' - nor 'try' (because that could be a legal use if - the function is called from within a 'try'.

-

- Own Id: OTP-14401

-
-
-
- -
-
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From c18b13d4c8aa31b145703bbbf228fb07d6b2a0a5 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 21 Jun 2017 10:53:19 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 174 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 1dc0c808e7..f3d42a909b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,180 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1 + +
Fixed Bugs and Malfunctions + + +

For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard BIF + as filter in a list comprehension was not allowed.

+

+ Own Id: OTP-13690

+
+ +

compile:forms/2 would not return the module name as + documented when one of the options 'from_core', + 'from_asm', or 'from_beam' was given. Also, + the compiler would crash if one of those options was + combined with 'native'.

+

+ Own Id: OTP-14408 Aux Id: ERL-417

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

+ Optimized test for tuples with an atom as first element.

+

+ Own Id: OTP-12148

+
+ +

+ Compilation of modules with huge literal binary strings + is now much faster.

+

+ Own Id: OTP-13794

+
+ +

Replaced usage of deprecated symbolic time + unit representations.

+

+ Own Id: OTP-13831 Aux Id: OTP-13735

+
+ +

The undocumented and unsupported module + sys_pre_expand has been removed. As a partial + replacement for the functionality, there is a new + function erl_internal:add_predefined_functions/1 + and erl_expand_records will now add a module + prefix to calls to BIFs and imported functions.

+

+ Own Id: OTP-13856

+
+ +

The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with variables + in languages such as Elixir or LFE.

+

+ Own Id: OTP-13924

+
+ +

The function fmod/2 has been added to the + math module.

+

+ Own Id: OTP-14000

+
+ +

Code generation for complicated guards have been + improved.

+

+ Own Id: OTP-14042

+
+ +

+ The compiler has new warnings for repeated identical map + keys.

+

+ A map expression such as,

+

+ #{'a' => 1, 'b' => 2, 'a' => 3}.

+

+ will produce a warning for the repeated key 'a'.

+

+ Own Id: OTP-14058

+
+ +

By default, there will now be a warning when + export_all is used. The warning can be disabled + using nowarn_export_all.

+

+ Own Id: OTP-14071

+
+ +

+ Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching.

+

+ Own Id: OTP-14072

+
+ +

There is a new 'deterministic' option to omit + 'source' and 'options' tuples in the BEAM + file.

+

+ Own Id: OTP-14087

+
+ +

+ Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster.

+

+ Own Id: OTP-14125 Aux Id: ERL-308

+
+ +

Atoms may now contain arbitrary Unicode + characters.

+

+ Own Id: OTP-14178

+
+ +

compile:file/2 now accepts the option + extra_chunks to include extra chunks in the BEAM + file.

+

+ Own Id: OTP-14221

+
+ +

The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. + The purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE.

+

All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, + [abstract_code]) will continue to work with both the + new and old format. Tools that call + beam_lib:chunk(Beam, ["Abst"]) will not work with + the new format.

+

For more information, see the description of + debug_info in the documentation for + beam_lib and the description of the + {debug_info,{Backend,Data}} option in the + documentation for compile.

+

+ Own Id: OTP-14369 Aux Id: PR-1367

+
+ +

In a future release, erlang:get_stacktrace/0 + will probably only work when called from within a + 'try' expression (otherwise it will return + [].

+

To help prepare for that change, the compiler will now + by default warn if 'get_stacktrace/0' is used in a + way that will not work in the future. Note that the + warning will not be issued if 'get_stacktrace/0' + is used in a function that uses neither 'catch' + nor 'try' (because that could be a legal use if + the function is called from within a 'try'.

+

+ Own Id: OTP-14401

+
+
+
+ +
+
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From e769d2c06eddfca16b1d4b5f7a3a7d1ed0218777 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 23 Aug 2017 10:39:49 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index f3d42a909b..bc335a9eaa 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.1 + +
Fixed Bugs and Malfunctions + + +

Fail labels on guard BIFs weren't taken into account + during an optimization pass, and a bug in the validation + pass sometimes prevented this from being noticed when a + fault occurred.

+

+ Own Id: OTP-14522 Aux Id: ERIERL-48

+
+
+
+ +
+
Compiler 7.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 9bac40fb969bc23f0aa4e90618835fbd95b4dabc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 3 Sep 2017 00:11:25 +0200 Subject: Add compile_info option to compile This allows compilers built on top of the compile module to attach external compilation metadata to the compile_info chunk. For example, Erlang uses this chunk to store the compiler version. Elixir and LFE may augment this by also adding their own compiler versions, which can be useful when debugging. The deterministic option does not affect the user supplied compile_info. It is therefore the responsibility of external compilers to guarantee any added information does not violate the determinsitic option, if such option is supported. Finally, this code moves the building of the compile_info options to the compile module instead of beam_asm, moving all of the option mangling code to a single place. --- lib/compiler/doc/src/compile.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 10164890f2..b398871ddf 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -123,6 +123,17 @@ in the Efficiency Guide.

+ {compile_info, [{atom(), term()}]} + +

Allows compilers built on top of compile to attach + extra compilation metadata to the compile_info chunk + in the generated beam file.

+ +

It is advised for compilers to remove all non-deterministic + information if the deterministic option is supported and + it was supplied by the user.

+
+ compressed

The compiler will compress the generated object code, -- cgit v1.2.3 From af2073640c4b7c67c9b978ebc203d57ac43e96dc Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 22 Sep 2017 15:21:49 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index bc335a9eaa..9b32ec54c4 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,61 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.2 + +
Fixed Bugs and Malfunctions + + +

Fail labels on guard BIFs weren't taken into account + during an optimization pass, and a bug in the validation + pass sometimes prevented this from being noticed when a + fault occurred.

+

+ Own Id: OTP-14522 Aux Id: ERIERL-48

+
+ +

+ When compiling from Core Erlang, an 'apply' with a nested + apply in the function position would be treated as an + invalid call. Corrected. (Thanks to Mikael Pettersson for + reporting this bug.)

+

+ Own Id: OTP-14526

+
+ +

Fixed checking of binary matching in the + beam_validator module to ensure that potential + compiler bugs are found at compile-time instead as + emulator crash at run-time.

+

+ Own Id: OTP-14591

+
+ +

There could be false warnings for + erlang:get_stacktrace/0 being used outside of a + try block when using multiple catch + clauses.

+

+ Own Id: OTP-14600 Aux Id: ERL-478

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

The Erlang code linter no longer checks that the + functions mentioned in nowarn_deprecated_function + options are declared in the module.

+

+ Own Id: OTP-14378

+
+
+
+ +
+
Compiler 7.1.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 9395c7b4a2079349fdb881a1f537af5b73eacfd2 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Mon, 25 Sep 2017 15:15:37 +0200 Subject: Remove unused files from the documentation build --- lib/compiler/doc/src/Makefile | 24 ++++++++--------- lib/compiler/doc/src/fascicules.xml | 15 ----------- lib/compiler/doc/src/note.gif | Bin 1539 -> 0 bytes lib/compiler/doc/src/part_notes.xml | 40 ---------------------------- lib/compiler/doc/src/part_notes_history.xml | 40 ---------------------------- lib/compiler/doc/src/user_guide.gif | Bin 1581 -> 0 bytes lib/compiler/doc/src/warning.gif | Bin 1498 -> 0 bytes 7 files changed, 11 insertions(+), 108 deletions(-) delete mode 100644 lib/compiler/doc/src/fascicules.xml delete mode 100644 lib/compiler/doc/src/note.gif delete mode 100644 lib/compiler/doc/src/part_notes.xml delete mode 100644 lib/compiler/doc/src/part_notes_history.xml delete mode 100644 lib/compiler/doc/src/user_guide.gif delete mode 100644 lib/compiler/doc/src/warning.gif (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/Makefile b/lib/compiler/doc/src/Makefile index c6864cb835..254445c111 100644 --- a/lib/compiler/doc/src/Makefile +++ b/lib/compiler/doc/src/Makefile @@ -1,8 +1,8 @@ # # %CopyrightBegin% -# -# Copyright Ericsson AB 1997-2016. All Rights Reserved. -# +# +# Copyright Ericsson AB 1997-2017. All Rights Reserved. +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -14,7 +14,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# +# # %CopyrightEnd% # include $(ERL_TOP)/make/target.mk @@ -38,13 +38,12 @@ RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) XML_APPLICATION_FILES = ref_man.xml XML_REF3_FILES = compile.xml -XML_PART_FILES = part_notes.xml part_notes_history.xml +XML_PART_FILES = XML_CHAPTER_FILES = notes.xml notes_history.xml BOOK_FILES = book.xml -GIF_FILES = \ - warning.gif +GIF_FILES = XML_FILES = \ $(BOOK_FILES) $(XML_CHAPTER_FILES) \ @@ -64,9 +63,9 @@ HTML_REF_MAN_FILE = $(HTMLDIR)/index.html TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf # ---------------------------------------------------- -# FLAGS +# FLAGS # ---------------------------------------------------- -XML_FLAGS += +XML_FLAGS += # ---------------------------------------------------- # Targets @@ -86,17 +85,17 @@ man: $(MAN3_FILES) gifs: $(GIF_FILES:%=$(HTMLDIR)/%) -debug opt: +debug opt: clean clean_docs: rm -rf $(HTMLDIR)/* rm -f $(MAN3DIR)/* rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) - rm -f errs core *~ + rm -f errs core *~ # ---------------------------------------------------- # Release Target -# ---------------------------------------------------- +# ---------------------------------------------------- include $(ERL_TOP)/make/otp_release_targets.mk release_docs_spec: docs @@ -110,4 +109,3 @@ release_docs_spec: docs $(INSTALL_DATA) $(MAN3DIR)/* "$(RELEASE_PATH)/man/man3" release_spec: - diff --git a/lib/compiler/doc/src/fascicules.xml b/lib/compiler/doc/src/fascicules.xml deleted file mode 100644 index fadd37eefb..0000000000 --- a/lib/compiler/doc/src/fascicules.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - Reference Manual - - - Release Notes - - - Off-Print - - - diff --git a/lib/compiler/doc/src/note.gif b/lib/compiler/doc/src/note.gif deleted file mode 100644 index 6fffe30419..0000000000 Binary files a/lib/compiler/doc/src/note.gif and /dev/null differ diff --git a/lib/compiler/doc/src/part_notes.xml b/lib/compiler/doc/src/part_notes.xml deleted file mode 100644 index c1f0ff3861..0000000000 --- a/lib/compiler/doc/src/part_notes.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - -
- - 20042016 - Ericsson AB. All Rights Reserved. - - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - - Compiler Release Notes - - - 2004-09-07 - 1.0 -
- -

The Compiler application compiles Erlang - code to byte-code. The highly compact byte-code is executed by - the Erlang emulator.

-

For information about older versions, see - Release Notes History.

-
- -
- diff --git a/lib/compiler/doc/src/part_notes_history.xml b/lib/compiler/doc/src/part_notes_history.xml deleted file mode 100644 index 4019676b83..0000000000 --- a/lib/compiler/doc/src/part_notes_history.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - -
- - 2006 - 2016 - Ericsson AB, All Rights Reserved - - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - The Initial Developer of the Original Code is Ericsson AB. - - - Compiler Release Notes History - - - - -
- -

The Compiler application compiles Erlang - code to byte-code. The highly compact byte-code is executed by - the Erlang emulator.

-
- -
- diff --git a/lib/compiler/doc/src/user_guide.gif b/lib/compiler/doc/src/user_guide.gif deleted file mode 100644 index e6275a803d..0000000000 Binary files a/lib/compiler/doc/src/user_guide.gif and /dev/null differ diff --git a/lib/compiler/doc/src/warning.gif b/lib/compiler/doc/src/warning.gif deleted file mode 100644 index 96af52360e..0000000000 Binary files a/lib/compiler/doc/src/warning.gif and /dev/null differ -- cgit v1.2.3 From b584195a6befac314eef75ac3f1ae2ac4f448a61 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 2 Oct 2017 15:55:32 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 9b32ec54c4..bd095c422a 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.3 + +
Fixed Bugs and Malfunctions + + +

The compiler could issue an incorrect internal + consistency failure diagnostic for some complicated bit + syntax maches.

+

+ Own Id: OTP-14640 Aux Id: ERL-490

+
+
+
+ +
+
Compiler 7.1.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From f443163b0a58e80e154fa38a5ae36f0bb8b074fd Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 5 Oct 2017 16:58:30 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 449453bf88..db50cba094 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.0.4.1 + +
Fixed Bugs and Malfunctions + + +

Fail labels on guard BIFs weren't taken into account + during an optimization pass, and a bug in the validation + pass sometimes prevented this from being noticed when a + fault occurred.

+

+ Own Id: OTP-14522 Aux Id: ERIERL-48

+
+
+
+ +
+
Compiler 7.0.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From cc8dade5326d130f1c704f7a47a4d0ce88af370e Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 23 Oct 2017 13:10:21 +0200 Subject: Refactor xmllint check and make it fail on failure This commit also adds a check to see that all files that are part of an xi:include also have part of XML_FILES and vice versa. It also fixes any applications where this was not true. --- lib/compiler/doc/src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/Makefile b/lib/compiler/doc/src/Makefile index 254445c111..13210de040 100644 --- a/lib/compiler/doc/src/Makefile +++ b/lib/compiler/doc/src/Makefile @@ -39,7 +39,7 @@ XML_APPLICATION_FILES = ref_man.xml XML_REF3_FILES = compile.xml XML_PART_FILES = -XML_CHAPTER_FILES = notes.xml notes_history.xml +XML_CHAPTER_FILES = notes.xml BOOK_FILES = book.xml -- cgit v1.2.3 From 07a38dac41aec3c5b96f7b3df71a761f10ae3e0a Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 15 Nov 2017 14:40:25 +0100 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 8ed71db54a..de39b019de 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 6.0.3.1 + +
Fixed Bugs and Malfunctions + + +

Fail labels on guard BIFs weren't taken into account + during an optimization pass, and a bug in the validation + pass sometimes prevented this from being noticed when a + fault occurred.

+

+ Own Id: OTP-14522 Aux Id: ERIERL-48

+
+
+
+ +
+
Compiler 6.0.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d455cf67203c29354ff792ea44aea09e7a2155f8 Mon Sep 17 00:00:00 2001 From: Tony Rogvall Date: Wed, 6 Dec 2017 02:28:29 +0100 Subject: Add -MMD option to erlc The compile option makedep_side_effect, erlc -MMD, instructs the compiler to emit dependencies and continue to compile as normal. --- lib/compiler/doc/src/compile.xml | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index b398871ddf..06afc55c07 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -233,6 +233,15 @@ module.beam: module.erl \ header.hrl + makedep_side_effect + +

The dependecies are created as a side effect to the + normal compilation process. This means that the object + file will also be produced. This option override the + makedep option. +

+
+ {makedep_output, Output}

Writes generated rules to Output instead of the -- cgit v1.2.3 From 47198f179ab14cf8cfcdab0d976650cd1519b236 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 8 Dec 2017 10:57:50 +0100 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 2aec75a2aa..f4a3f9875b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.4 + +
Fixed Bugs and Malfunctions + + +

The 'deterministic' option was not recognized + when given in a -compile() attribute in the source + code.

+

+ Own Id: OTP-14773 Aux Id: ERL-498

+
+
+
+ +
+
Compiler 7.1.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 7c7ba7191a3932e737fa81fd0166df1c637d4b31 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 9 Mar 2018 11:01:07 +0100 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index f4a3f9875b..bc1f68337b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,31 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.5 + +
Fixed Bugs and Malfunctions + + +

The internal compiler pass (beam_validator) + that validates the generated code has been + strengthened.

+

When compiling from BEAM assembly code, the + beam_type optimizer pass could make the code + unsafe. Corrected.

+

+ Own Id: OTP-14863

+
+ +

Corrected optimizations of integers matched out from + binaries and used in bit operations.

+

+ Own Id: OTP-14898

+
+
+
+ +
+
Compiler 7.1.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From ce550c97975cce13b90f6a3a07a7e253491e23aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Mon, 16 Apr 2018 13:09:29 +0200 Subject: Remove warnings for improper use of erlang:get_stacktrace/0 Those warnings don't make sense any more since erlang:get_stacktrace/0 is now deprecated. --- lib/compiler/doc/src/compile.xml | 8 -------- 1 file changed, 8 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 06afc55c07..e4491288a6 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -649,14 +649,6 @@ module.beam: module.erl \

Turns off warnings for unused record types. Default is to emit warnings for unused locally defined record types.

- - nowarn_get_stacktrace - -

Turns off warnings for using get_stacktrace/0 in a context - where it will probably not work in a future release. For example, - by default there will be a warning if get_stacktrace/0 is - used following a catch expression.

-

Another class of warnings is generated by the compiler -- cgit v1.2.3 From 202bb737e3deabfebee683266f4b7c42781eb521 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 30 Apr 2018 10:06:42 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 198 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index bc1f68337b..9cb1fc1ba7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,204 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2 + +
Fixed Bugs and Malfunctions + + +

Fixed an error in an optimization pass that caused + impossible tuple matching.

+

+ Own Id: OTP-14855 Aux Id: ERL-549

+
+ +

The exception thrown when a list comprehension was + given a non-list term was not always correct.

+

+ Own Id: OTP-14992 Aux Id: ERL-572

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

Changed the default behaviour of .erlang + loading: .erlang is no longer loaded from the + current directory. c:erlangrc(PathList) can be + used to search and load an .erlang file from user + specified directories.

escript, + erlc, dialyzer and typer no longer + load an .erlang at all.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14439

+
+ +

Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument for + an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused + confuses, especially when such call failed. The + stacktrace would point out functions that don't exist in + the source code.

+

For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this + option is given, the compiler will generate extra code + that emulates the old behavior for calls where the module + is a variable.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14497

+
+ +

In code such as example({ok, Val}) -> {ok, + Val}. a tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will + reduce code size, execution time, and remove GC + pressure.

+

+ Own Id: OTP-14505

+
+ +

The optimization of case expression where only + one of the case arms can execute successfully has been + improved.

+

+ Own Id: OTP-14525

+
+ +

Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling.

+

+ Own Id: OTP-14594 Aux Id: ERL-444

+
+ +

There is a new {compile_info,Info} option for + the compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions.

+

+ Own Id: OTP-14615 Aux Id: PR-1558

+
+ +

Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions.

+

These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There is + also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation is + found in here in a source directory or git repository: + erts/emulator/internal_doc/beam_makeops.md. An online + version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md

+

+ Own Id: OTP-14626

+
+ +

Size calculations for binary constructions has been + somewhat optimized, producing smaller code.

+

+ Own Id: OTP-14654

+
+ +

When the value returned from a 'catch' + expression is ignored, no stacktrace will be built if an + exception is caught. That will save time and produce less + garbage. There are also some minor optimizations of + 'try/catch' both in the compiler and + run-time system.

+

+ Own Id: OTP-14683

+
+ +

There is a new syntax in 'try/catch' for + retrieving the stacktrace without calling + 'erlang:get_stacktrace/0'. See the reference + manual for a description of the new syntax. The + 'erlang:get_stacktrace/0' BIF is now + deprecated.

+

+ Own Id: OTP-14692

+
+ +

The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its + functionality has been simplified and integrated into + v3_codegen.

+

+ Own Id: OTP-14712

+
+ +

The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) could + be thwarted by the argument order and could be necessary + to change the argument order. The compiler has now become + smarter and can handle any argument order.

+

+ Own Id: OTP-14774

+
+ +

When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary.

+

+ Own Id: OTP-14808 Aux Id: ERL-514

+
+ +

There is a new option 'makedep_side_effect' for + the compiler and -MMD for 'erlc' that + generates dependencies and continues to compile as + normal.

+

+ Own Id: OTP-14830

+
+ +

When compiling modules with huge functions, the + compiler would generate a lot of atoms for its internal, + sometimes so many that the atom table would overflow. The + compiler has been rewritten to generate far less internal + atoms to avoid filling the atom table.

+

+ Own Id: OTP-14968 Aux Id: ERL-563

+
+ +

External funs with literal values for module, name, + and arity (e.g. erlang:abs/1) are now treated as + literals. That means more efficient code that produces + less garbage on the heap.

+

+ Own Id: OTP-15003

+
+ +

The map_get/2 guard BIF has been added. It + works the same way as maps:get/2, except that it + is allowed to use it in guards.

+

+ Own Id: OTP-15037 Aux Id: PR-1784

+
+ +

A call or apply of a literal external fun will be + replaced with a direct call.

+

+ Own Id: OTP-15044 Aux Id: ERL-614

+
+
+
+ +
+
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 561e871d680a081d531ff205b8331eacca1d7a3c Mon Sep 17 00:00:00 2001 From: Henrik Date: Wed, 2 May 2018 09:19:05 +0200 Subject: Revert "Update release notes" This reverts commit 202bb737e3deabfebee683266f4b7c42781eb521. --- lib/compiler/doc/src/notes.xml | 198 ----------------------------------------- 1 file changed, 198 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 9cb1fc1ba7..bc1f68337b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,204 +32,6 @@

This document describes the changes made to the Compiler application.

-
Compiler 7.2 - -
Fixed Bugs and Malfunctions - - -

Fixed an error in an optimization pass that caused - impossible tuple matching.

-

- Own Id: OTP-14855 Aux Id: ERL-549

-
- -

The exception thrown when a list comprehension was - given a non-list term was not always correct.

-

- Own Id: OTP-14992 Aux Id: ERL-572

-
-
-
- - -
Improvements and New Features - - -

Changed the default behaviour of .erlang - loading: .erlang is no longer loaded from the - current directory. c:erlangrc(PathList) can be - used to search and load an .erlang file from user - specified directories.

escript, - erlc, dialyzer and typer no longer - load an .erlang at all.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14439

-
- -

Support for "tuple calls" have been removed from the - run-time system. Tuple calls was an undocumented and - unsupported feature which allowed the module argument for - an apply operation to be a tuple: Var = dict:new(), - Var:size(). This "feature" frequently caused - confuses, especially when such call failed. The - stacktrace would point out functions that don't exist in - the source code.

-

For legacy code that need to use parameterized modules - or tuple calls for some other reason, there is a new - compiler option called tuple_calls. When this - option is given, the compiler will generate extra code - that emulates the old behavior for calls where the module - is a variable.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14497

-
- -

In code such as example({ok, Val}) -> {ok, - Val}. a tuple would be built. The compiler will now - automatically rewrite the code to - example({ok,Val}=Tuple) -> Tuple. which will - reduce code size, execution time, and remove GC - pressure.

-

- Own Id: OTP-14505

-
- -

The optimization of case expression where only - one of the case arms can execute successfully has been - improved.

-

- Own Id: OTP-14525

-
- -

Some uses of binary matching has been slightly - improved, eliminating unnecessary register shuffling.

-

- Own Id: OTP-14594 Aux Id: ERL-444

-
- -

There is a new {compile_info,Info} option for - the compiler that allows BEAM-based languages such as - Elixir and LFE to add their own compiler versions.

-

- Own Id: OTP-14615 Aux Id: PR-1558

-
- -

Loaded BEAM code in a 64-bit system requires less - memory because of better packing of operands for - instructions.

-

These memory savings were achieved by major - improvements to the beam_makeops scripts used when - building the run time system and BEAM compiler. There is - also new for documentation for beam_makeops that - describes how new BEAM instructions and loader - transformations can be implemented. The documentation is - found in here in a source directory or git repository: - erts/emulator/internal_doc/beam_makeops.md. An online - version can be found here: - https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md

-

- Own Id: OTP-14626

-
- -

Size calculations for binary constructions has been - somewhat optimized, producing smaller code.

-

- Own Id: OTP-14654

-
- -

When the value returned from a 'catch' - expression is ignored, no stacktrace will be built if an - exception is caught. That will save time and produce less - garbage. There are also some minor optimizations of - 'try/catch' both in the compiler and - run-time system.

-

- Own Id: OTP-14683

-
- -

There is a new syntax in 'try/catch' for - retrieving the stacktrace without calling - 'erlang:get_stacktrace/0'. See the reference - manual for a description of the new syntax. The - 'erlang:get_stacktrace/0' BIF is now - deprecated.

-

- Own Id: OTP-14692

-
- -

The following is an internal change in the compiler, - that is not noticeable for normal use of the compiler: - The module v3_life has been removed. Its - functionality has been simplified and integrated into - v3_codegen.

-

- Own Id: OTP-14712

-
- -

The optimization of binary matching that delays - creation of sub binaries (see the Efficiency Guide) could - be thwarted by the argument order and could be necessary - to change the argument order. The compiler has now become - smarter and can handle any argument order.

-

- Own Id: OTP-14774

-
- -

When the compiler was faced with complex case - expressions it would unnecessarily allocate stack - elements and shuffle data between x and y registers. - Improved code generation to only allocate a stack frame - when strictly necessary.

-

- Own Id: OTP-14808 Aux Id: ERL-514

-
- -

There is a new option 'makedep_side_effect' for - the compiler and -MMD for 'erlc' that - generates dependencies and continues to compile as - normal.

-

- Own Id: OTP-14830

-
- -

When compiling modules with huge functions, the - compiler would generate a lot of atoms for its internal, - sometimes so many that the atom table would overflow. The - compiler has been rewritten to generate far less internal - atoms to avoid filling the atom table.

-

- Own Id: OTP-14968 Aux Id: ERL-563

-
- -

External funs with literal values for module, name, - and arity (e.g. erlang:abs/1) are now treated as - literals. That means more efficient code that produces - less garbage on the heap.

-

- Own Id: OTP-15003

-
- -

The map_get/2 guard BIF has been added. It - works the same way as maps:get/2, except that it - is allowed to use it in guards.

-

- Own Id: OTP-15037 Aux Id: PR-1784

-
- -

A call or apply of a literal external fun will be - replaced with a direct call.

-

- Own Id: OTP-15044 Aux Id: ERL-614

-
-
-
- -
-
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From fd8e49b5bddceaae803670121b603b5eee8c5c08 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 25 May 2018 12:14:27 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 213 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index bc1f68337b..357a940f24 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,219 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2 + +
Fixed Bugs and Malfunctions + + +

Fixed an error in an optimization pass that caused + impossible tuple matching.

+

+ Own Id: OTP-14855 Aux Id: ERL-549

+
+ +

The exception thrown when a list comprehension was + given a non-list term was not always correct.

+

+ Own Id: OTP-14992 Aux Id: ERL-572

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

Changed the default behaviour of .erlang + loading: .erlang is no longer loaded from the + current directory. c:erlangrc(PathList) can be + used to search and load an .erlang file from user + specified directories.

escript, + erlc, dialyzer and typer no longer + load an .erlang at all.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14439

+
+ +

Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument for + an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused + confusion, especially when such call failed. The + stacktrace would point out functions that don't exist in + the source code.

+

For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this + option is given, the compiler will generate extra code + that emulates the old behavior for calls where the module + is a variable.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14497

+
+ +

In code such as example({ok, Val}) -> {ok, + Val}. a tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will + reduce code size, execution time, and remove GC + pressure.

+

+ Own Id: OTP-14505

+
+ +

The optimization of case expression where only + one of the case arms can execute successfully has been + improved.

+

+ Own Id: OTP-14525

+
+ +

Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling.

+

+ Own Id: OTP-14594 Aux Id: ERL-444

+
+ +

There is a new {compile_info,Info} option for + the compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions.

+

+ Own Id: OTP-14615 Aux Id: PR-1558

+
+ +

Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions.

+

These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There is + also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation is + found in here in a source directory or git repository: + erts/emulator/internal_doc/beam_makeops.md. An online + version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md

+

+ Own Id: OTP-14626

+
+ +

Size calculations for binary constructions has been + somewhat optimized, producing smaller code.

+

+ Own Id: OTP-14654

+
+ +

When the value returned from a 'catch' + expression is ignored, no stacktrace will be built if an + exception is caught. That will save time and produce less + garbage. There are also some minor optimizations of + 'try/catch' both in the compiler and + run-time system.

+

+ Own Id: OTP-14683

+
+ +

There is a new syntax in 'try/catch' for + retrieving the stacktrace without calling + 'erlang:get_stacktrace/0'. See the reference + manual for a description of the new syntax. The + 'erlang:get_stacktrace/0' BIF is now + deprecated.

+

+ Own Id: OTP-14692

+
+ +

The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its + functionality has been simplified and integrated into + v3_codegen.

+

+ Own Id: OTP-14712

+
+ +

The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) could + be thwarted by the argument order and could be necessary + to change the argument order. The compiler has now become + smarter and can handle any argument order.

+

+ Own Id: OTP-14774

+
+ +

When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary.

+

+ Own Id: OTP-14808 Aux Id: ERL-514

+
+ +

There is a new option 'makedep_side_effect' for + the compiler and -MMD for 'erlc' that + generates dependencies and continues to compile as + normal.

+

+ Own Id: OTP-14830

+
+ +

When compiling modules with huge functions, the + compiler would generate a lot of atoms for its internal, + sometimes so many that the atom table would overflow. The + compiler has been rewritten to generate far less internal + atoms to avoid filling the atom table.

+

+ Own Id: OTP-14968 Aux Id: ERL-563

+
+ +

External funs with literal values for module, name, + and arity (e.g. erlang:abs/1) are now treated as + literals. That means more efficient code that produces + less garbage on the heap.

+

+ Own Id: OTP-15003

+
+ +

Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the + same as maps:get/2 and maps:is_key/2, + respectively, except that they are allowed to be used in + guards.

+

+ Own Id: OTP-15037 Aux Id: PR-1784, PR-1802

+
+ +

A call or apply of a literal external fun will be + replaced with a direct call.

+

+ Own Id: OTP-15044 Aux Id: ERL-614

+
+ +

Part of EEP-44 has been implemented.

+

There is a new predefined macro called + OTP_RELEASE which is an integer indicating the OTP + release number (its value is 21 in this + release).

+

There are new preprocessor directives + -if(Condition). and -elif(Condition).. The + if/elif supports the builtin function + defined(Symbol).

+

+ Own Id: OTP-15087 Aux Id: PR-1810

+
+
+
+ +
+
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From b9faca269de1de51ae33577cc204befbea24243c Mon Sep 17 00:00:00 2001 From: Henrik Date: Tue, 29 May 2018 10:47:25 +0200 Subject: Revert "Prepare release" This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08. --- lib/compiler/doc/src/notes.xml | 213 ----------------------------------------- 1 file changed, 213 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 357a940f24..bc1f68337b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,219 +32,6 @@

This document describes the changes made to the Compiler application.

-
Compiler 7.2 - -
Fixed Bugs and Malfunctions - - -

Fixed an error in an optimization pass that caused - impossible tuple matching.

-

- Own Id: OTP-14855 Aux Id: ERL-549

-
- -

The exception thrown when a list comprehension was - given a non-list term was not always correct.

-

- Own Id: OTP-14992 Aux Id: ERL-572

-
-
-
- - -
Improvements and New Features - - -

Changed the default behaviour of .erlang - loading: .erlang is no longer loaded from the - current directory. c:erlangrc(PathList) can be - used to search and load an .erlang file from user - specified directories.

escript, - erlc, dialyzer and typer no longer - load an .erlang at all.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14439

-
- -

Support for "tuple calls" have been removed from the - run-time system. Tuple calls was an undocumented and - unsupported feature which allowed the module argument for - an apply operation to be a tuple: Var = dict:new(), - Var:size(). This "feature" frequently caused - confusion, especially when such call failed. The - stacktrace would point out functions that don't exist in - the source code.

-

For legacy code that need to use parameterized modules - or tuple calls for some other reason, there is a new - compiler option called tuple_calls. When this - option is given, the compiler will generate extra code - that emulates the old behavior for calls where the module - is a variable.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14497

-
- -

In code such as example({ok, Val}) -> {ok, - Val}. a tuple would be built. The compiler will now - automatically rewrite the code to - example({ok,Val}=Tuple) -> Tuple. which will - reduce code size, execution time, and remove GC - pressure.

-

- Own Id: OTP-14505

-
- -

The optimization of case expression where only - one of the case arms can execute successfully has been - improved.

-

- Own Id: OTP-14525

-
- -

Some uses of binary matching has been slightly - improved, eliminating unnecessary register shuffling.

-

- Own Id: OTP-14594 Aux Id: ERL-444

-
- -

There is a new {compile_info,Info} option for - the compiler that allows BEAM-based languages such as - Elixir and LFE to add their own compiler versions.

-

- Own Id: OTP-14615 Aux Id: PR-1558

-
- -

Loaded BEAM code in a 64-bit system requires less - memory because of better packing of operands for - instructions.

-

These memory savings were achieved by major - improvements to the beam_makeops scripts used when - building the run time system and BEAM compiler. There is - also new for documentation for beam_makeops that - describes how new BEAM instructions and loader - transformations can be implemented. The documentation is - found in here in a source directory or git repository: - erts/emulator/internal_doc/beam_makeops.md. An online - version can be found here: - https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md

-

- Own Id: OTP-14626

-
- -

Size calculations for binary constructions has been - somewhat optimized, producing smaller code.

-

- Own Id: OTP-14654

-
- -

When the value returned from a 'catch' - expression is ignored, no stacktrace will be built if an - exception is caught. That will save time and produce less - garbage. There are also some minor optimizations of - 'try/catch' both in the compiler and - run-time system.

-

- Own Id: OTP-14683

-
- -

There is a new syntax in 'try/catch' for - retrieving the stacktrace without calling - 'erlang:get_stacktrace/0'. See the reference - manual for a description of the new syntax. The - 'erlang:get_stacktrace/0' BIF is now - deprecated.

-

- Own Id: OTP-14692

-
- -

The following is an internal change in the compiler, - that is not noticeable for normal use of the compiler: - The module v3_life has been removed. Its - functionality has been simplified and integrated into - v3_codegen.

-

- Own Id: OTP-14712

-
- -

The optimization of binary matching that delays - creation of sub binaries (see the Efficiency Guide) could - be thwarted by the argument order and could be necessary - to change the argument order. The compiler has now become - smarter and can handle any argument order.

-

- Own Id: OTP-14774

-
- -

When the compiler was faced with complex case - expressions it would unnecessarily allocate stack - elements and shuffle data between x and y registers. - Improved code generation to only allocate a stack frame - when strictly necessary.

-

- Own Id: OTP-14808 Aux Id: ERL-514

-
- -

There is a new option 'makedep_side_effect' for - the compiler and -MMD for 'erlc' that - generates dependencies and continues to compile as - normal.

-

- Own Id: OTP-14830

-
- -

When compiling modules with huge functions, the - compiler would generate a lot of atoms for its internal, - sometimes so many that the atom table would overflow. The - compiler has been rewritten to generate far less internal - atoms to avoid filling the atom table.

-

- Own Id: OTP-14968 Aux Id: ERL-563

-
- -

External funs with literal values for module, name, - and arity (e.g. erlang:abs/1) are now treated as - literals. That means more efficient code that produces - less garbage on the heap.

-

- Own Id: OTP-15003

-
- -

Two new guards BIFs operating on maps have been added: - map_get/2 and is_map_key/2. They do the - same as maps:get/2 and maps:is_key/2, - respectively, except that they are allowed to be used in - guards.

-

- Own Id: OTP-15037 Aux Id: PR-1784, PR-1802

-
- -

A call or apply of a literal external fun will be - replaced with a direct call.

-

- Own Id: OTP-15044 Aux Id: ERL-614

-
- -

Part of EEP-44 has been implemented.

-

There is a new predefined macro called - OTP_RELEASE which is an integer indicating the OTP - release number (its value is 21 in this - release).

-

There are new preprocessor directives - -if(Condition). and -elif(Condition).. The - if/elif supports the builtin function - defined(Symbol).

-

- Own Id: OTP-15087 Aux Id: PR-1810

-
-
-
- -
-
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5ca92e2eac1e84fd22f60e7abc3aa2b0ff1cb42b Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Mon, 18 Jun 2018 14:51:18 +0200 Subject: Update copyright year --- lib/compiler/doc/src/compile.xml | 2 +- lib/compiler/doc/src/notes.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index e4491288a6..1a71c83521 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -4,7 +4,7 @@
- 19962017 + 19962018 Ericsson AB. All Rights Reserved. diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index bc1f68337b..ee69f73890 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042017 + 20042018 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From bb19e24a485e9ef43bcca3fbe9757da83f70c3a0 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 19 Jun 2018 08:24:54 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 220 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index ee69f73890..997a506181 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,226 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2 + +
Fixed Bugs and Malfunctions + + +

Fixed an error in an optimization pass that caused + impossible tuple matching.

+

+ Own Id: OTP-14855 Aux Id: ERL-549

+
+ +

The exception thrown when a list comprehension was + given a non-list term was not always correct.

+

+ Own Id: OTP-14992 Aux Id: ERL-572

+
+ +

The compiler could produce incorrect code in rare + circumstances when the [{inline,F/A}] option was + used.

+

+ Own Id: OTP-15115 Aux Id: PR-1831

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

Changed the default behaviour of .erlang + loading: .erlang is no longer loaded from the + current directory. c:erlangrc(PathList) can be + used to search and load an .erlang file from user + specified directories.

escript, + erlc, dialyzer and typer no longer + load an .erlang at all.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14439

+
+ +

Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument for + an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused + confusion, especially when such call failed. The + stacktrace would point out functions that don't exist in + the source code.

+

For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this + option is given, the compiler will generate extra code + that emulates the old behavior for calls where the module + is a variable.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14497

+
+ +

In code such as example({ok, Val}) -> {ok, + Val}. a tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will + reduce code size, execution time, and remove GC + pressure.

+

+ Own Id: OTP-14505

+
+ +

The optimization of case expression where only + one of the case arms can execute successfully has been + improved.

+

+ Own Id: OTP-14525

+
+ +

Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling.

+

+ Own Id: OTP-14594 Aux Id: ERL-444

+
+ +

There is a new {compile_info,Info} option for + the compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions.

+

+ Own Id: OTP-14615 Aux Id: PR-1558

+
+ +

Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions.

+

These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There is + also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation is + found in here in a source directory or git repository: + erts/emulator/internal_doc/beam_makeops.md. An online + version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md

+

+ Own Id: OTP-14626

+
+ +

Size calculations for binary constructions has been + somewhat optimized, producing smaller code.

+

+ Own Id: OTP-14654

+
+ +

When the value returned from a 'catch' + expression is ignored, no stacktrace will be built if an + exception is caught. That will save time and produce less + garbage. There are also some minor optimizations of + 'try/catch' both in the compiler and + run-time system.

+

+ Own Id: OTP-14683

+
+ +

There is a new syntax in 'try/catch' for + retrieving the stacktrace without calling + 'erlang:get_stacktrace/0'. See the reference + manual for a description of the new syntax. The + 'erlang:get_stacktrace/0' BIF is now + deprecated.

+

+ Own Id: OTP-14692

+
+ +

The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its + functionality has been simplified and integrated into + v3_codegen.

+

+ Own Id: OTP-14712

+
+ +

The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) could + be thwarted by the argument order and could be necessary + to change the argument order. The compiler has now become + smarter and can handle any argument order.

+

+ Own Id: OTP-14774

+
+ +

When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary.

+

+ Own Id: OTP-14808 Aux Id: ERL-514

+
+ +

There is a new option 'makedep_side_effect' for + the compiler and -MMD for 'erlc' that + generates dependencies and continues to compile as + normal.

+

+ Own Id: OTP-14830

+
+ +

When compiling modules with huge functions, the + compiler would generate a lot of atoms for its internal, + sometimes so many that the atom table would overflow. The + compiler has been rewritten to generate far less internal + atoms to avoid filling the atom table.

+

+ Own Id: OTP-14968 Aux Id: ERL-563

+
+ +

External funs with literal values for module, name, + and arity (e.g. erlang:abs/1) are now treated as + literals. That means more efficient code that produces + less garbage on the heap.

+

+ Own Id: OTP-15003

+
+ +

Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the + same as maps:get/2 and maps:is_key/2, + respectively, except that they are allowed to be used in + guards.

+

+ Own Id: OTP-15037 Aux Id: PR-1784, PR-1802

+
+ +

A call or apply of a literal external fun will be + replaced with a direct call.

+

+ Own Id: OTP-15044 Aux Id: ERL-614

+
+ +

Part of EEP-44 has been implemented.

+

There is a new predefined macro called + OTP_RELEASE which is an integer indicating the OTP + release number (its value is 21 in this + release).

+

There are new preprocessor directives + -if(Condition). and -elif(Condition).. The + if/elif supports the builtin function + defined(Symbol).

+

+ Own Id: OTP-15087 Aux Id: PR-1810

+
+
+
+ +
+
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From aeb4b903064ac690372fe4d2e668397d349c00d9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 25 Jun 2018 13:19:45 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 997a506181..fcfa7d38a7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,21 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.1 + +
Fixed Bugs and Malfunctions + + +

The could could crash when compiling a complicated + function that used the binary syntax.

+

+ Own Id: OTP-15150 Aux Id: ERL-650

+
+
+
+ +
+
Compiler 7.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5c8e7e905a678e1214cab55fed38d6d93fab04cb Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 29 Jun 2018 14:30:53 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index fcfa7d38a7..0ec7aa54c7 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,36 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.2 + +
Fixed Bugs and Malfunctions + + +

In rare cases involving matching of binary literal + strings, the compiler could optimize away code that + should be executed.

+

+ Own Id: OTP-15156 Aux Id: ERL-655

+
+ +

There could be an internal consistency check failure + when compiling code that called map_get(Key, Map) + and then updated the same map.

+

+ Own Id: OTP-15157

+
+ +

In rare circumstances, the compiler could crash in + beam_jump when compiling a floating point + operation.

+

+ Own Id: OTP-15166 Aux Id: ERL-660

+
+
+
+ +
+
Compiler 7.2.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From b453f67879df577fcf5b0eb6062ec444b0c43958 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 13 Jul 2018 15:10:57 +0200 Subject: docs: make clean all XMLDIR --- lib/compiler/doc/src/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/Makefile b/lib/compiler/doc/src/Makefile index 13210de040..661415899f 100644 --- a/lib/compiler/doc/src/Makefile +++ b/lib/compiler/doc/src/Makefile @@ -89,6 +89,7 @@ debug opt: clean clean_docs: rm -rf $(HTMLDIR)/* + rm -rf $(XMLDIR) rm -f $(MAN3DIR)/* rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) rm -f errs core *~ -- cgit v1.2.3 From 962ea06fa99e36a4631ec6459895d9466e61964c Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 9 Aug 2018 17:29:04 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index bc1f68337b..0a4e25cf97 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.5.1 + +
Fixed Bugs and Malfunctions + + +

Fixed an issue where files compiled with the + +deterministic option differed if they were + compiled in a different directory but were otherwise + identical.

+

+ Own Id: OTP-15204 Aux Id: ERL-679

+
+
+
+ +
+
Compiler 7.1.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d41ed9524c7fc93b27aa28f51e8a07be4703a27b Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 10 Aug 2018 19:02:49 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 0ec7aa54c7..0e19642960 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.3 + +
Fixed Bugs and Malfunctions + + +

Fixed an issue where files compiled with the + +deterministic option differed if they were + compiled in a different directory but were otherwise + identical.

+

+ Own Id: OTP-15204 Aux Id: ERL-679

+
+
+
+ +
+
Compiler 7.2.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 1f3adc9fbfd1bb87e06e176d0b3717683ded8adb Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 11 Sep 2018 15:14:14 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 0a4e25cf97..6aa662b79a 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.1.5.2 + +
Fixed Bugs and Malfunctions + + +

Fix a regression in OTP-15204 that removed + .beam file metadata that some external build tools + relied on.

+

+ Own Id: OTP-15292

+
+
+
+ +
+
Compiler 7.1.5.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From f80b65a178fa95b5454cb238bdf71e27f240eed5 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 11 Sep 2018 16:57:02 +0200 Subject: Update release notes --- lib/compiler/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 0e19642960..9ee5c14336 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.4 + +
Fixed Bugs and Malfunctions + + +

Fix a regression in OTP-15204 that removed + .beam file metadata that some external build tools + relied on.

+

+ Own Id: OTP-15292

+
+
+
+ +
+
Compiler 7.2.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d04b53936d5e9f84a3066ecd466993671b1428bf Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Fri, 21 Sep 2018 12:23:25 +0200 Subject: Update copyright year --- lib/compiler/doc/src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/Makefile b/lib/compiler/doc/src/Makefile index 661415899f..32f150eef8 100644 --- a/lib/compiler/doc/src/Makefile +++ b/lib/compiler/doc/src/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 1997-2017. All Rights Reserved. +# Copyright Ericsson AB 1997-2018. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. -- cgit v1.2.3 From fb7006280f8d5a45459e1fba066fe6f6131e8e86 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 24 Sep 2018 11:32:41 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 440b50d509..b175669bd8 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,58 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.5 + +
Fixed Bugs and Malfunctions + + +

Fixed a bug that prevented certain variable-sized + binary comprehensions from compiling.

+

+ Own Id: OTP-15186 Aux Id: ERL-665

+
+ +

When compiling from Core Erlang, funs created in + certain expressions that were only used for their + side-effects were subtly broken.

+

+ Own Id: OTP-15188 Aux Id: ERL-658

+
+ +

There could be an internal consistency failure when a + receive was nested in a + try/catch.

+

+ Own Id: OTP-15218 Aux Id: ERL-684

+
+ +

In rare circumstances, the matched out tail of a + binary could be the entire original binary.

+

+ Own Id: OTP-15219 Aux Id: ERL-689

+
+ +

When is_map_key/2 was used in a guard together + with the not/1 or or/2 operators, the error + behavior could be wrong when is_map_key/2 was + passed a non-map as the second argument.

+

In rare circumstances, compiling code that uses + is_map_key/2 could cause an internal consistency + check failure.

+

+ Own Id: OTP-15227 Aux Id: ERL-699

+
+ +

The compiler could crash when compiling a function + with multiple receives in multiple clauses.

+

+ Own Id: OTP-15235 Aux Id: ERL-703

+
+
+
+ +
+
Compiler 7.2.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 3a34f37fbc5af8eca7a70f5dab61dca7ee1706b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= Date: Fri, 5 Oct 2018 10:06:35 +0200 Subject: compiler: Forward +source flag to epp and fix bug in +deterministic The source file path as given to `erlc` was included in an implicit file attribute inserted by epp, even when the +source flag was set to something else which was a bit surprising. It was also included when +deterministic was specified, breaking the flag's promise. This commit forwards the +source flag to epp so it inserts the right information, and if +deterministic is given it will be shaved to just the base name of the file, guaranteeing the same result regardless of how the input is reached. --- lib/compiler/doc/src/compile.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 1a71c83521..cfbd4c7fda 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -203,7 +203,8 @@ deterministic

Omit the options and source tuples in - the list returned by Module:module_info(compile). + the list returned by Module:module_info(compile), and + reduce the paths in stack traces to the module name alone. This option will make it easier to achieve reproducible builds.

@@ -347,8 +348,8 @@ module.beam: module.erl \ {source,FileName} -

Sets the value of the source, as returned by - module_info(compile).

+

Overrides the source file name as presented in + module_info(compile) and stack traces.

{outdir,Dir} -- cgit v1.2.3 From 218f84f6b7cca496d3100fcb3ba1b3f7fa2fc1ac Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 12 Oct 2018 17:12:09 +0200 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index b175669bd8..5024310788 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.6 + +
Fixed Bugs and Malfunctions + + +

In rare circumstances, the matched out tail of a + binary could be the entire original binary. (There was + partial correction to this problem in version 7.2.5 of + the compiler application.)

+

+ Own Id: OTP-15335 Aux Id: ERL-689, OTP-15219

+
+
+
+ +
+
Compiler 7.2.5
Fixed Bugs and Malfunctions -- cgit v1.2.3 From e3c71d353e884316420eebea2d7ef802c651437b Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 15 Nov 2018 12:26:12 +0100 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index 5024310788..e0e5bc832b 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,21 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.2.7 + +
Fixed Bugs and Malfunctions + + +

Fixed a bug where incorrect code was generated + following a binary match guard.

+

+ Own Id: OTP-15353 Aux Id: ERL-753

+
+
+
+ +
+
Compiler 7.2.6
Fixed Bugs and Malfunctions -- cgit v1.2.3 From a2ca3bd78fc002dd1e6533c191e44092cc3aa949 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 10 Dec 2018 11:07:05 +0100 Subject: Prepare release --- lib/compiler/doc/src/notes.xml | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'lib/compiler/doc/src') diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index e0e5bc832b..7addadf82c 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,61 @@

This document describes the changes made to the Compiler application.

+
Compiler 7.3 + +
Fixed Bugs and Malfunctions + + +

Fixed a rare internal consistency failure caused by a + bug in the beam_jump pass. (Thanks to Simon + Cornish for reporting this bug.)

+

+ Own Id: OTP-15400 Aux Id: ERL-759

+
+ +

The compiler could fail with an internal consistency + check failure when compiling code that used the + is_function/2 BIF.

+

+ Own Id: OTP-15435 Aux Id: ERL-778

+
+ +

When an external fun was used, warnings for unused + variables could be suppressed.

+

+ Own Id: OTP-15437 Aux Id: ERL-762

+
+ +

The compiler would crash when compiling an + after block that called erlang:raise/3 like + this: erlang:raise(Class, Stacktrace, + Stacktrace)

+

+ Own Id: OTP-15481

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

When specified, the +{source,Name} option will + now override the actual file name in stack traces, + instead of only affecting the return value of + Mod:module_info().

+

The +deterministic flag will also affect stack + traces now, omitting all path information except the file + name, fixing a long-standing issue where deterministic + builds required deterministic paths.

+

+ Own Id: OTP-15245 Aux Id: ERL-706

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