aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/doc
diff options
context:
space:
mode:
authorHenrik <[email protected]>2018-05-29 10:47:25 +0200
committerHenrik <[email protected]>2018-05-29 10:47:25 +0200
commitb9faca269de1de51ae33577cc204befbea24243c (patch)
tree5b0dedddf524df00c0377927c767ac2a25c3794f /lib/compiler/doc
parentd3b4568f6d910eb4ce26b7a899c8c414ae252386 (diff)
downloadotp-b9faca269de1de51ae33577cc204befbea24243c.tar.gz
otp-b9faca269de1de51ae33577cc204befbea24243c.tar.bz2
otp-b9faca269de1de51ae33577cc204befbea24243c.zip
Revert "Prepare release"
This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08.
Diffstat (limited to 'lib/compiler/doc')
-rw-r--r--lib/compiler/doc/src/notes.xml213
1 files changed, 0 insertions, 213 deletions
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 @@
<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>
- </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>