diff options
Diffstat (limited to 'lib/compiler/doc')
-rw-r--r-- | lib/compiler/doc/src/notes.xml | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index d45dfef8f3..275c6268fa 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -32,6 +32,99 @@ <p>This document describes the changes made to the Compiler application.</p> +<section><title>Compiler 7.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p><c>record_info/2</c> is a pseudo-function that + requires literal arguments known at compile time. + Therefore, the following usage is illegal: <c>fun + record/info/2</c>. The compiler would crash when during + compilation of that kind of code. Corrected to issue a + compilation error.</p> + <p> + Own Id: OTP-15760 Aux Id: ERL-907 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + The compiler has been rewritten to internally use an + intermediate representation based on Static Single + Assignment (SSA). The new intermediate representation + makes more optimizations possible.</p> + <p> + Most noticeable is that the binary matching optimizations + are now applicable in many more circumstances than + before.</p> + <p> + Another noticeable change is that type optimizations are + now applied across local function calls, and will remove + a lot more redundant type tests than before.</p> + <p> + Own Id: OTP-14894 Aux Id: ERL-714 </p> + </item> + <item> + <p>Funs are no longer created when they are only used + locally, greatly improving the performance of named funs + and "fun-wrapped" macros.</p> + <p> + Own Id: OTP-15273 Aux Id: ERL-639 </p> + </item> + <item> + <p>All compiler options that can be given in the source + file can now also be given in the option list or from the + command line for <c>erlc</c>.</p> + <p>Specifically, the option + <c>{nowarn_deprecated_function,MFAs}</c> was only + recognized when given in the file with the attribute + <c>-compile()</c>. The option + <c>{nowarn_unused_function,FAs}</c> was incorrectly + documented to only work in a file, but it also worked + when given in the option list.</p> + <p> + Own Id: OTP-15456</p> + </item> + <item> + <p> Do not allow function specifications for functions + residing in other modules. </p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-15563 Aux Id: ERL-845, OTP-15562 </p> + </item> + <item> + <p>Internal documentation has now been added to the + <em>Erts</em> and <em>Compiler</em> applications.</p> + <p>The internal documents for <em>Erts</em> describe + miscellaneous interesting implementation details. Those + details can change at any time.</p> + <p>The internal documentation for <em>Compiler</em> + documents the API for the Core Erlang modules. While we + will not change those APIs without good reason, we don't + give the same guarantees about backward compatibility as + for the rest of the APIs in OTP.</p> + <p> + Own Id: OTP-15715</p> + </item> + <item> + <p> There are new compiler options <c>nowarn_removed</c> + and <c>{nowarn_removed,Items}</c> to suppress warnings + for functions and modules that have been removed from + OTP.</p> + <p> + Own Id: OTP-15749 Aux Id: ERL-904 </p> + </item> + </list> + </section> + +</section> + <section><title>Compiler 7.3.2</title> <section><title>Fixed Bugs and Malfunctions</title> |