notes_history.sgml
来自「OTP是开放电信平台的简称」· SGML 代码 · 共 443 行
SGML
443 行
<!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>KERNEL Release Notes <prepared>Kenneth Lundin <docno> <date>1997-11-17 <rev>F <file>notes.sgml </header> <p>This document describes the changes made to the Kernel application. <section> <title>Kernel 1.3.2</title> <section> <title>Fixed Bugs and malfunctions</title> <list> <item> <p><c>file:stop</c> does not hang any more. <p>Own Id:OTP-1404 <item> <p><c>net_kernel</c> could in some situations send two nodeup messages to the monitor processes (processes that have evaluated <c>net_kernel:monitor_nodes()</c>). <p>This problem could make <c>global</c> hang when several nodes connected. <p>Own Id:OTP-1418; OTP-1127, OTP-1412 <br>Aux Id:tir-d-088 <item> <p><c>net_kernel</c> did not send nodedown messages for allowed nodes. If net_kernel:allow(Nodes) was used, no nodedown messages at all were sent to monitor processes net_kernel. <p>nodedown messages are now sent for allowed nodes but are ignored for connection attempts from disallowed nodes. <p>Own Id:OTP-1419 <item> <p><c>application_controller</c> had sync problems in the takeover phase when an application was remote started. <p>Own Id:OTP-1426 <item> <p><c>application_controller</c> did sometimes report <c>{error,{not_started,App}}</c> even though the application in question has been started on another node. <p>Own Id:OTP-1454 <br>Aux Id:HA52440 <item> <p><c>application_controller</c> could hang due to a deadlock situation during startup in a distributed system. <p>Own Id:OTP-1472 </list> </section> <section> <title>Improvements and new features</title> <list> <item> <p>The support for dynamic loading of drivers in module <c>erl_ddll</c> is enhanced with reference counting of loaded drivers and automatic unloading of drivers when the "owner" process terminates. <p>Own Id:OTP-1460 <item> <p>The <c>os</c> module has got 2 new functions <c>getenv/1</c> to read environment variables from the hos operating system and <c>find_executable/1,2</c> to find executable programs using a search path. <p>Own Id:OTP-1461 <item> <p>A new function <c>application:which_application(Module)</c> which returns the application that <c>Module</c> belongs to. <p>Own Id:OTP-1008 </list> </section> </section> <section> <title>Kernel 1.3.1</title> <section> <title>Fixed Bugs and malfunctions</title> <list> <item> <p>Malformed string/list as argument to unix:cmd/1 caused entire ERTS to crash. <p>Own Id: OTP-1384 <item> <p>It was not possible to convert a non distributed system into a distributed system as stated in the net_kernel reference manual. Note that this is not the recommended way to start a distributed system. <p>Own Id: OTP-1393 <item> <p><c>net_adm:world/1</c> was broken on Windows NT, since it relied on <c>unix:cmd/1</c>. <p>Own Id: OTP-1397 <item> <p>The <c>disk_log_server</c> now clears it's state correctly when a disk_log process terminates. <p>Own Id: OTP-1402 </list> </section> </section> <section> <title>Kernel 1.3</title> <section> <title>Improvements and new features</title> <list> <item> <p><c>net_ticktime</c> is configurable through the <c>kernel</c> application. <c>net_ticktime</c> specifies the time within which a non responding node will be considered to be down. <item> <p><c>-boot_var</c> flag read by <c>init</c>. This flag is used to set a path variable in the boot script. If applications will be placed under another directory than $ROOT/lib in an embedded system this flag can be used. <item> <p>A new function for controlling execution of applications is added; <c>application:permit/2</c>. The function controls which applications are permitted to execute on the node. <item> <p>A new configuration parameter <c>permissions</c> specifies the default permission an application has when it is loaded. <item><p>New functions in <c>application</c>. <br> <c>application:load(App, Dist)</c> - set (and check!) distribution configuration for an application at load time.<br> <c>application:get_application/0,1</c> - get the application of a pid. <p>Own Id: OTP-1306 <item><p><c>.config</c> files are now allowed to contain comments. <p>Own Id: OTP-1134 <br>Aux Id: HA37561 <item><p>It is now possible to specify more than one configuration file to <c>erl</c>, by using the command line flag <c>-config</c>. <item> <p>The code server (module <c>code</c>) did sometimes store relative pathnames which could cause troubles in some cases. The code server is changed to always store absolute pathnames. <p>Own Id: OTP-1239 <br>Aux Id: erlang/66 <item> <p>An elucidation regarding strings in the <c>code</c> module. Since the <c>1.1</c> version of the kernel application the <c>code</c> module always returns directory (and file) names as strings. See the <c>code(3)</c> manual page. <p>It is preferable that directory names are provided as strings to all functions. The possibility to provide directory names as atoms may be removed in future releases. Module names should always be given as atoms and the possibility to provide module names as strings may be removed in future releases. <p>Own Id: OTP-1186 <item><p> <c>code:priv_dir/1</c> was very slow and is made much faster now. <p>Own Id: OTP-1339 <item><p>The module <c>disk_log</c> is moved from <c>stdlib</c> to <c>kernel</c>, and some new functionality is added. <c>disk_log</c> supports wrap and halt logs, the size of a log is configurable, it supports different file formats, and it supports replicated logs. <p>Own Id: OTP-1305 <item> <p>The <c>erl_boot_server</c> is dynamically configurable. <p>Own Id: OTP-1275 <item> <p>The functions <c>add_slave/1</c>, <c>delete_slave/1</c> and <c>which_slaves/0</c> are added to the <c>erl_boot_server</c>. <item><p> New option <c>raw</c> to <c>file:open</c> and also a new variant of the function which takes a list of options. The open with an optionlist is the recommended way to open a file from no on. <p>Own Id: OTP-1242 <item> <p>New format for the <c>Reason</c> field when <c>{error,Reason}</c> is returned from functions in the <c>file</c> module. There is also new documentation about this in the reference manual. <p>Own Id: OTP-1075 </item> <item><p> The configuration parameter <c>os</c> is removed from <c>kernel.app</c>. The function <c>os:type()</c> is used instead. <p>Own Id: OTP-1277 </list> </section> <section> <title>Fixed Bugs and malfunctions</title> <list> <item> <p><c>net_adm:world()</c> is corrected on Windows NT. <p>Own Id: OTP-1219 <item> <p><c>file:list_dir("c:")</c> returns "No such file..." on NT <p>Own Id:OTP-1237 <item> <p>Bad call to <c>c:c/1</c> did crash the Erlang shell. Solved by addition of a better test that a module name is correct. <p>Own Id: OTP-1256 <br>Aux Id: erlang/73 <item> <p>The <c>rpc:cast</c> function was synchronous when casted function call was performed at the current node. <p>Own Id: OTP-1292 </list> </section> <section> <title>Incompatibilities with Kernel 1.1.1</title> <list> <item> <p>New format for the <c>Reason</c> field when <c>{error,Reason}</c> is returned from functions in the <c>file</c> module. This is an interface change (the format of <c> Reason</c> but it will only break a minimal amount (if any) of old code since the previous format of <c>Reason</c> was more or less useless in match operations. There where also errors in the documentation and other inconsistencies with the old format. <p>The most likely places where old code needs to be adjusted is where the highlevel functions <c>consult</c>, <c>path_consult</c>, <c>eval</c> and <c>path_eval</c> in combination with a match for the result <c>{error,open}</c> is used. <p>Own Id: OTP-1075 </item> </list> </section> <section> <title>Known bugs and problems</title> <p>- </section> </section> <section> <title>Kernel 1.1.1</title> <section> <title>Improvements and new feature</title> <p>- </section> <section> <title>Fixed Bugs and malfunctions</title> <list> <item> <p><c>application:get_env/1</c> returned <c>undefined</c> for all parameters during startup of an application. <p>Own Id: OTP-1079 <item> <p>When synchronization of mandatory node fails using the <c>sync_nodes_mandatory</c> configuration parameter , the node should be takendown, but it wasn't. <p>Own Id: OTP-1083 <item> <p>Manual page for file corrected. <p>Own Id: OTP-1102 <item> <p>Attempt to start an application when already running causes error. Now <c>application:start/1,2</c> returns <c>{error,{already_started,Name}}</c> if the application is running. <p>Own Id: OTP-1111 <br>Aux Id: tir-f-087, tir-d-087 <item> <p>Restart (<c>init:restart/0</c>) of system did not work after a software upgrade. Started using the now old version. <p>Own Id: OTP-1113 <br>Aux Id: HA37170 <item> <p><c>init:stop/0</c> did not work after a restart (<c>init:restart/0</c>). <p>Own Id: OTP-1117 </list> </section> <section> <title>Incompatibilities with Kernel 1.1</title> <p>- </section> <section> <title>Known bugs and problems</title> <p>- </section> </section> <section> <title>Kernel 1.1</title> <section> <title>Improvements and new feature</title> <list> <item> <p>Application configuration paramaters can be given from the command line (overrides the configuration file):<code>erl -Appl Key Value</code> <item> <p>Load applications before start. All applications (included in the boot script) are loaded before the first application is started. <item> <p>Heart uses the hardware watchdog (Solaris), see heart(3). <item> <p>Added <c>error_logger:info_msg/1,2</c>. <item> <p>Support for distributed applications enhanced and documented. </list> </section> <section> <title>Fixed Bugs and malfunctions</title> <list> <item> <p><c>net_adm:ping(Node)</c> will never return <c>pong</c> if this node is not allowed (<c>net_kernel:allow/1</c>) to connect to <c>Node</c>. <item> <p><c>net_kernel:allow/1</c> handles hidden nodes. </list> </section> <section> <title>Incompatibilities with OTP P1G</title> <list> <item> <p>A configuration file must have suffix .config. (For example, to use the file sys.config, erl -config ./sys is used) <item> <p>Old boot scripts won't work - generate new with systools. <item> <p>Added the application behaviour. Change in .app file: previously, <c>{start, {M, F, A}}</c> was specified, now <c>{mod, {M, A}}</c> should be specified, and <c>M:start(Type, A)</c> is called. <item> <p><c>code:root_dir/0</c>, <c>code:lib_dir/0</c>, <c>code:compiler_dir/0</c> and <c>code:uc_dir/0</c> returns a string. <item> <p>The <c>error_handler</c> is silent, e.g. it will not write <c>** cannot autoload: Mod **</c> and <c>** undefined registered name: Name **</c> to stdout any longer. </list> </section> <section> <title>Known bugs and problems</title> <p>- </section> </section></chapter>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?