notes_history.sgml
来自「OTP是开放电信平台的简称」· SGML 代码 · 共 286 行
SGML
286 行
<!doctype chapter PUBLIC "-//Stork//DTD chapter//EN"><!-- ``The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved via the world wide web at http://www.erlang.org/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Initial Developer of the Original Code is Ericsson Utvecklings AB. Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings AB. All Rights Reserved.'' $Id$--><chapter> <header> <title>COMPILER Release Notes (Old)</title> <prepared>ETX/B/SFP Kenneth Lundin</prepared> <responsible></responsible> <docno></docno> <approved>ETX/B/SFP (Kenneth Lundin)</approved> <checked></checked> <date>1997-11-19</date> <rev>D</rev> <file>notes.sgml</file> </header> <p>These document describes the release notes for older versions of the <c>compiler</> application. <section> <title>Compiler 1.1.3</title> <p> <section> <title>Incompatibilities with Compiler 1.1.3</title> <p>Due to corrections listed below, all BEAM code must be recompiled. </section> <section> <title>Fixed bugs and malfunctions</title> <list> <item><p>- </item> </list> </section> <section> <title>Known bugs and problems</title> <list> <item><p> ??? <br>Own Id: OTP-1476 </list> </section> </section> <section> <title>Compiler 1.1.2</title> <p> <section> <title>Incompatibilities with Compiler 1.1.1</title> <p>Due to corrections listed below, all BEAM code must be recompiled (see also release notes for ERTS). </section> <section> <title>Fixed bugs and malfunctions</title> <list> <item><p> Wrong restart of send at busy or garbage collect (BEAM, fast compiled code). <p>Own Id:OTP-1420 </item> <item><p> Bad arithmetic in guard fails instead of matching the next clause (BEAM). <p>Own Id:OTP-1422 </item> </list> </section> <section> <title>Known bugs and problems</title> <list> <item><p> The BEAM compiler terminates with error <c>beam_asm_int: EXIT</> when a list match is performed as in <c>[H| T] = foo()</>, in case variable <c>T</> is subsequently used, while <c>H</> is not. The work-around is to write <c>T = tl(foo())</> instead. <br>Own Id: OTP-1476 </list> </section> </section> <section> <title>Compiler 1.1.1</title> <p> <section> <title>Incompatibilities with Compiler 1.1</title> <p>Due to corrections listed below, all BEAM code must be recompiled (see also release notes for ERTS). </section> <section> <title>Fixed bugs and malfunctions</title> <list> <item><p> Correction of register allocation error in creation of tuples in guards in BEAM. <p>Own Id:OTP-1390 </item> <item><p> Correction of compiler error for BEAM which caused <c>ig</c> to generate erroneous code (error in nested case statements). <p>Own Id:OTP-1392 <p>Aux Id:HA48119 </item> </list> </section> </section> <section> <title>Compiler 1.1</title> <p> <section> <title>Improvements and new features</title> <list> <item><p>To simplify maintenance and cross compilations the two compilerdirectories, compiler_jam and compiler_beam, has been merged into asingle compiler directory. Most modules names have been changed toavoid confusion and name collisions. The only user visible change isthat the compilation target (jam or beam) can be specified in the listof arguments. E.g.<code>compile:file(foo, [beam, verbose, report]).</code> </list> </section> <section> <title>Incompatibilities with Compiler 1.0</title> <p> - </section> <section> <title>Fixed bugs and malfunctions</title> <list> <item><p>Compiler crashed on "silly" record update like this:<code>-record(bar, {hello}).compilerCrash() -> R1 = #bar{}, R2 = R1#bar{}, % <--- This causes the compiler to crash with the not_ok.</code> <p>Own Id:OTP-1204,OTP-1208 <item><p>The compiler does not check that record fields in a match are unique. Example:<code>-module(compiler_6_SUITE).-record(foo, {bar}).f() -> #foo{bar = X,bar = Y} = x, Y.56> c(compiler_6_SUITE).*** unset variable:'Y' in line:7</code> <p><c>bar</c> is repeated twice in the above example and the compiler does not detect that as an error which causes the assignment of <c>Y</c> to be silently ignored ... <p>Own Id:OTP-1231 </list> </section> </section> <section> <title>Compiler 1.0.1</title> <p> <section> <title>Improvements and new features</title> <p> - </section> <section> <title>Incompatibilities with Compiler 1.0</title> <p> - </section> <section> <title>Fixed bugs and malfunctions</title> <list> <item> <p>The compiler no longer crashes on too long atoms (> 255). <p>Own Id: OTP-1012 </item> <item> <p>The compiler <c>erl_lint</c> did earlier assume that some language constructs aways resided on the same line in the source code which caused a white space to be significant when determing an error or not. This is corrected. <p>Example: <code>-module(test).-compile(export_all).-record(test, {a,b}).rectest(R) when record(R, test) -> ok. rectest2(R) when record(R, test) -> ok. (test@etxbc29)3> c(test)../test.erl:7: illegal guard expression </code> <p>Own Id: OTP-1077 </item> <item> <p>The compiler crashes on unsafe variable in nested case. This is corrected. <p>Own Id: OTP-1104 </item> </list> </section> </section> <section> <title>Compiler 1.0</title> <p> <section> <title>Improvements and new features</title> <p> <list> <item><p> A new include directive <c>-include_lib()</> is introduced. Example: <pre>-include_lib("mnesia/include/mnemosyne.hrl"). </pre><p> This instructs the compiler (preprocessor) to look for the directory where the application called <c>mnesia</> is installed and then looks in the subdirectory <c>include</> for the file <c>mnemosyne.hrl</>. The preprocessor first looks in the orinary preprocessor search path to allow explicit overloading of the include files. </item> <item><p> The new compiler options <c>{i, IncludeDir}</> and {d, Def} are introduced. </item> </list> </section> <section> <title>Incompatibilities with Compiler P1C</title> <p> There are two new reserved words <c>let</> and <c>query</>. <list> <item><p> <c>let</> will be used in the future when a language construction similar to let in Lisp will be implemented. </item> <item><p> <c>query</> is used when making queries to Mnesia tables with the Mnemosyne query language. </item> </list> </section> <section> <title>Fixed bugs and malfunctions</title> <p>- </section> </section></chapter>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?