From bb19e24a485e9ef43bcca3fbe9757da83f70c3a0 Mon Sep 17 00:00:00 2001
From: Erlang/OTP <otp@erlang.org>
Date: Tue, 19 Jun 2018 08:24:54 +0200
Subject: Prepare release

---
 lib/compiler/doc/src/notes.xml | 220 +++++++++++++++++++++++++++++++++++++++++
 lib/compiler/vsn.mk            |   2 +-
 2 files changed, 221 insertions(+), 1 deletion(-)

(limited to 'lib/compiler')

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 @@
   <p>This document describes the changes made to the Compiler
     application.</p>
 
+<section><title>Compiler 7.2</title>
+
+    <section><title>Fixed Bugs and Malfunctions</title>
+      <list>
+        <item>
+	    <p>Fixed an error in an optimization pass that caused
+	    impossible tuple matching.</p>
+          <p>
+	    Own Id: OTP-14855 Aux Id: ERL-549 </p>
+        </item>
+        <item>
+	    <p>The exception thrown when a list comprehension was
+	    given a non-list term was not always correct.</p>
+          <p>
+	    Own Id: OTP-14992 Aux Id: ERL-572 </p>
+        </item>
+        <item>
+	    <p>The compiler could produce incorrect code in rare
+	    circumstances when the <c>[{inline,F/A}]</c> option was
+	    used.</p>
+          <p>
+	    Own Id: OTP-15115 Aux Id: PR-1831 </p>
+        </item>
+      </list>
+    </section>
+
+
+    <section><title>Improvements and New Features</title>
+      <list>
+        <item>
+	    <p>Changed the default behaviour of <c>.erlang</c>
+	    loading: <c>.erlang</c> is no longer loaded from the
+	    current directory. <c>c:erlangrc(PathList)</c> can be
+	    used to search and load an <c>.erlang</c> file from user
+	    specified directories.</p> <p><c>escript</c>,
+	    <c>erlc</c>, <c>dialyzer</c> and <c>typer</c> no longer
+	    load an <c>.erlang</c> at all.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-14439</p>
+        </item>
+        <item>
+	    <p>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: <c>Var = dict:new(),
+	    Var:size()</c>. This "feature" frequently caused
+	    confusion, especially when such call failed. The
+	    stacktrace would point out functions that don't exist in
+	    the source code.</p>
+	    <p>For legacy code that need to use parameterized modules
+	    or tuple calls for some other reason, there is a new
+	    compiler option called <c>tuple_calls</c>. When this
+	    option is given, the compiler will generate extra code
+	    that emulates the old behavior for calls where the module
+	    is a variable.</p>
+          <p>
+	    *** POTENTIAL INCOMPATIBILITY ***</p>
+          <p>
+	    Own Id: OTP-14497</p>
+        </item>
+        <item>
+	    <p>In code such as <c>example({ok, Val}) -&gt; {ok,
+	    Val}.</c> a tuple would be built. The compiler will now
+	    automatically rewrite the code to
+	    <c>example({ok,Val}=Tuple) -&gt; Tuple.</c> which will
+	    reduce code size, execution time, and remove GC
+	    pressure.</p>
+          <p>
+	    Own Id: OTP-14505</p>
+        </item>
+        <item>
+	    <p>The optimization of <c>case</c> expression where only
+	    one of the case arms can execute successfully has been
+	    improved.</p>
+          <p>
+	    Own Id: OTP-14525</p>
+        </item>
+        <item>
+	    <p>Some uses of binary matching has been slightly
+	    improved, eliminating unnecessary register shuffling.</p>
+          <p>
+	    Own Id: OTP-14594 Aux Id: ERL-444 </p>
+        </item>
+        <item>
+	    <p>There is a new <c>{compile_info,Info}</c> option for
+	    the compiler that allows BEAM-based languages such as
+	    Elixir and LFE to add their own compiler versions.</p>
+          <p>
+	    Own Id: OTP-14615 Aux Id: PR-1558 </p>
+        </item>
+        <item>
+	    <p>Loaded BEAM code in a 64-bit system requires less
+	    memory because of better packing of operands for
+	    instructions.</p>
+	    <p>These memory savings were achieved by major
+	    improvements to the <c>beam_makeops</c> scripts used when
+	    building the run time system and BEAM compiler. There is
+	    also new for documentation for <c>beam_makeops</c> 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</p>
+          <p>
+	    Own Id: OTP-14626</p>
+        </item>
+        <item>
+	    <p>Size calculations for binary constructions has been
+	    somewhat optimized, producing smaller code.</p>
+          <p>
+	    Own Id: OTP-14654</p>
+        </item>
+        <item>
+	    <p>When the value returned from a '<c>catch</c>'
+	    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
+	    '<c>try</c>/<c>catch</c>' both in the compiler and
+	    run-time system.</p>
+          <p>
+	    Own Id: OTP-14683</p>
+        </item>
+        <item>
+	    <p>There is a new syntax in '<c>try/catch</c>' for
+	    retrieving the stacktrace without calling
+	    '<c>erlang:get_stacktrace/0</c>'. See the reference
+	    manual for a description of the new syntax. The
+	    '<c>erlang:get_stacktrace/0</c>' BIF is now
+	    deprecated.</p>
+          <p>
+	    Own Id: OTP-14692</p>
+        </item>
+        <item>
+	    <p>The following is an internal change in the compiler,
+	    that is not noticeable for normal use of the compiler:
+	    The module <c>v3_life</c> has been removed. Its
+	    functionality has been simplified and integrated into
+	    <c>v3_codegen</c>.</p>
+          <p>
+	    Own Id: OTP-14712</p>
+        </item>
+        <item>
+	    <p>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.</p>
+          <p>
+	    Own Id: OTP-14774</p>
+        </item>
+        <item>
+	    <p>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.</p>
+          <p>
+	    Own Id: OTP-14808 Aux Id: ERL-514 </p>
+        </item>
+        <item>
+	    <p>There is a new option '<c>makedep_side_effect</c>' for
+	    the compiler and <c>-MMD</c> for '<c>erlc</c>' that
+	    generates dependencies and continues to compile as
+	    normal.</p>
+          <p>
+	    Own Id: OTP-14830</p>
+        </item>
+        <item>
+	    <p>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.</p>
+          <p>
+	    Own Id: OTP-14968 Aux Id: ERL-563 </p>
+        </item>
+        <item>
+	    <p>External funs with literal values for module, name,
+	    and arity (e.g. <c>erlang:abs/1</c>) are now treated as
+	    literals. That means more efficient code that produces
+	    less garbage on the heap.</p>
+          <p>
+	    Own Id: OTP-15003</p>
+        </item>
+        <item>
+	    <p>Two new guards BIFs operating on maps have been added:
+	    <c>map_get/2</c> and <c>is_map_key/2</c>. They do the
+	    same as <c>maps:get/2</c> and <c>maps:is_key/2</c>,
+	    respectively, except that they are allowed to be used in
+	    guards.</p>
+          <p>
+	    Own Id: OTP-15037 Aux Id: PR-1784, PR-1802 </p>
+        </item>
+        <item>
+	    <p>A call or apply of a literal external fun will be
+	    replaced with a direct call.</p>
+          <p>
+	    Own Id: OTP-15044 Aux Id: ERL-614 </p>
+        </item>
+        <item>
+	    <p>Part of EEP-44 has been implemented.</p>
+	    <p>There is a new predefined macro called
+	    <c>OTP_RELEASE</c> which is an integer indicating the OTP
+	    release number (its value is <c>21</c> in this
+	    release).</p>
+	    <p>There are new preprocessor directives
+	    <c>-if(Condition).</c> and <c>-elif(Condition).</c>. The
+	    <c>if/elif</c> supports the builtin function
+	    <c>defined(Symbol)</c>.</p>
+          <p>
+	    Own Id: OTP-15087 Aux Id: PR-1810 </p>
+        </item>
+      </list>
+    </section>
+
+</section>
+
 <section><title>Compiler 7.1.5</title>
 
     <section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/compiler/vsn.mk b/lib/compiler/vsn.mk
index ee75ee27fd..a26cb09dff 100644
--- a/lib/compiler/vsn.mk
+++ b/lib/compiler/vsn.mk
@@ -1 +1 @@
-COMPILER_VSN = 7.1.5
+COMPILER_VSN = 7.2
-- 
cgit v1.2.3