diff options
Diffstat (limited to 'system')
-rw-r--r-- | system/doc/installation_guide/otp_version.xml | 96 | ||||
-rw-r--r-- | system/doc/installation_guide/part.xml | 1 | ||||
-rw-r--r-- | system/doc/installation_guide/xmlfiles.mk | 1 | ||||
-rw-r--r-- | system/doc/reference_manual/code_loading.xml | 21 | ||||
-rw-r--r-- | system/doc/reference_manual/typespec.xml | 16 | ||||
-rw-r--r-- | system/doc/top/Makefile | 4 | ||||
-rw-r--r-- | system/doc/top/templates/index.html.src | 10 |
7 files changed, 133 insertions, 16 deletions
diff --git a/system/doc/installation_guide/otp_version.xml b/system/doc/installation_guide/otp_version.xml new file mode 100644 index 0000000000..0ce5144160 --- /dev/null +++ b/system/doc/installation_guide/otp_version.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE chapter SYSTEM "chapter.dtd"> + +<chapter> + <header> + <copyright> + <year>2014</year> + <holder>Ericsson AB. All Rights Reserved.</holder> + </copyright> + <legalnotice> + 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 online 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. + + </legalnotice> + + <title>OTP version</title> + <prepared></prepared> + <responsible></responsible> + <docno></docno> + <approved></approved> + <checked></checked> + <date>2014-02-19</date> + <rev></rev> + <file>otp_version.xml</file> + </header> + <p>As of OTP release 17, the OTP release number corresponds to + the major part of the OTP version. The OTP version as a concept was + introduced in OTP 17. In the normal case, the OTP version will be + constructed as + <c><Major>.<Minor>.<Patch></c> where <c><Major></c> + is the most significant part. However, more dot separated parts than + this may exist. The dot separated parts consists of integers. If all + parts less significant than <c><Minor></c> equals <c>0</c>, they + are omitted. The three normal parts + <c><Major>.<Minor>.<Patch></c> will be changed as + follows:</p> + <taglist> + <tag><c><Major></c></tag><item>Increased when major changes, + including incompatibilities, have been made.</item> + <tag><c><Minor></c></tag><item>Increased when new functionality + has been added.</item> + <tag><c><Patch></c></tag><item>Increased when pure bug fixes + have been made.</item> + </taglist> + <p>When a part in the version number is increased, all less significant + parts are set to <c>0</c>. Release candidates have an <c>-rc<N></c> + suffix. The suffix <c>-rc0</c> will be used during development up to + the first release candidate.</p> + + <p>OTP of a specific version is a set of applications of + specific versions. The application versions identified by + an OTP version corresponds to application versions that + have been tested together by the Erlang/OTP team at Ericsson AB. + An OTP system can however be put together with applications from + different OTP versions. Such a combination of application versions + has not been tested by the Erlang/OTP team. It is therefore + <em>always preferred to use OTP applications from one single OTP + version</em>.</p> + + <p>Application versions will be managed the same way as the OTP version. + Application versions part of a release candidate will however not have an + <c>-rc<N></c> suffix as the OTP version. Also note that a major + increment in an application version does not necessarily imply a major + increment of the OTP version. This depends on whether the + major change in the application is considered as a major change for + OTP as a whole or not.</p> + + <p>In an OTP source code tree as well as in an installed OTP + development system, the OTP version can be read from the text + file <c>OTP_VERSION</c> in the OTP installation root directory + (<seealso marker="kernel:code#root_dir/0"><c>code:root_dir()</c></seealso>).</p> + <p>If the version read from the <c>OTP_VERSION</c> file in a + development system has a <c>**</c> suffix, the system has been + patched using the <c>$ERL_TOP/otp_build patch_app</c> tool. In + this case, the system consists of application versions from + multiple OTP versions. The version preceding the <c>**</c> + suffix corresponds to the OTP version of the base system that + has been patched. Note that if a development system is updated by + other means than <c>$ERL_TOP/otp_build patch_app</c>, the + <c>OTP_VERSION</c> file may identify wrong OTP version.</p> + + <p>On a target system (see the + <seealso marker="doc/system_principles:create_target">system principles</seealso> + documentation) no <c>OTP_VERSION</c> file will exist. This since + one easily can create a target system where it is hard to even + determine the base OTP version.</p> +</chapter> + diff --git a/system/doc/installation_guide/part.xml b/system/doc/installation_guide/part.xml index 19808fd165..150df39512 100644 --- a/system/doc/installation_guide/part.xml +++ b/system/doc/installation_guide/part.xml @@ -31,6 +31,7 @@ <description> <p>How to install Erlang/OTP on UNIX or Windows.</p> </description> + <xi:include href="otp_version.xml"/> <xi:include href="install-binary.xml"/> <xi:include href="verification.xml"/> <xi:include href="INSTALL.xml"/> diff --git a/system/doc/installation_guide/xmlfiles.mk b/system/doc/installation_guide/xmlfiles.mk index 3995c607af..245491ab94 100644 --- a/system/doc/installation_guide/xmlfiles.mk +++ b/system/doc/installation_guide/xmlfiles.mk @@ -17,6 +17,7 @@ # %CopyrightEnd% # INST_GUIDE_CHAPTER_FILES = \ + otp_version.xml \ install-binary.xml \ verification.xml \ INSTALL.xml \ diff --git a/system/doc/reference_manual/code_loading.xml b/system/doc/reference_manual/code_loading.xml index 23871dfa83..b5b5704df5 100644 --- a/system/doc/reference_manual/code_loading.xml +++ b/system/doc/reference_manual/code_loading.xml @@ -4,7 +4,7 @@ <chapter> <header> <copyright> - <year>2003</year><year>2013</year> + <year>2003</year><year>2014</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -121,9 +121,22 @@ loop() -> <title>Running a function when a module is loaded</title> <warning> - <p>We recommend that the feature described in this section is to - be used only for loading NIF libraries. For other usages this - feature should be considered experimental.</p> + <p>The <c>on_load</c> feature should be considered experimental + as there are a number of known weak points in current semantics + which therefore might also change in future releases:</p> + <list> + <item><p>Doing external call in on_load to the module itself + leads to deadlock.</p></item> + <item><p>At module upgrade, other processes calling the module + get suspended waiting for on_load to finish. This can be very bad + for applications with demands on realtime characteristics.</p></item> + <item><p>At module upgrade, no rollback is done if the on_load function fails. + The system will be left in a bad limbo state without any working + and reachable instance of the module.</p></item> + </list> + <p>The problems with module upgrade described above could be fixed in future + releases by changing the behaviour to not make the module reachable until + after the on_load function has successfully returned.</p> </warning> <p>The <c>-on_load()</c> directive names a function that should diff --git a/system/doc/reference_manual/typespec.xml b/system/doc/reference_manual/typespec.xml index 635476737d..71aec732cf 100644 --- a/system/doc/reference_manual/typespec.xml +++ b/system/doc/reference_manual/typespec.xml @@ -4,7 +4,7 @@ <chapter> <header> <copyright> - <year>2003</year><year>2013</year> + <year>2003</year><year>2014</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -118,15 +118,15 @@ | fun((TList) -> Type) Integer :: integer() - | Erlang_Integer %% ..., -1, 0, 1, ... 42 ... - | Erlang_Integer..Erlang_Integer %% specifies an integer range + | Erlang_Integer %% ..., -1, 0, 1, ... 42 ... + | Erlang_Integer..Erlang_Integer %% specifies an integer range - List :: list(Type) %% Proper list ([]-terminated) - | improper_list(Type1, Type2) %% Type1=contents, Type2=termination - | maybe_improper_list(Type1, Type2) %% Type1 and Type2 as above - | nonempty_list(Type) %% Proper non-empty list + List :: list(Type) %% Proper list ([]-terminated) + | maybe_improper_list(Type1, Type2) %% Type1=contents, Type2=termination + | nonempty_improper_list(Type1, Type2) %% Type1 and Type2 as above + | nonempty_list(Type) %% Proper non-empty list - Tuple :: tuple() %% stands for a tuple of any size + Tuple :: tuple() %% stands for a tuple of any size | {} | {TList} diff --git a/system/doc/top/Makefile b/system/doc/top/Makefile index 20ef9fe781..319f08f010 100644 --- a/system/doc/top/Makefile +++ b/system/doc/top/Makefile @@ -114,7 +114,7 @@ $(INDEX_SCRIPT): $(INDEX_SRC) $(ERLC) -o$(EBIN) +warn_unused_vars $< # We don't list toc_*.html as targets because we don't know -$(HTMLDIR)/index.html + $(HTMLDIR)/applications.html: $(INDEX_SCRIPT) +$(HTMLDIR)/index.html + $(HTMLDIR)/applications.html: $(INDEX_SCRIPT) $(TEMPLATES) echo "Generating index $@" # Check if we are building the index from source or an installed release if test "$$RELEASE_ROOT" = "" ; then \ @@ -198,7 +198,7 @@ $(GLOSSARY): $(GLOSSARY_SCRIPT) #-------------------------------------------------------------------------- -PR.template: PR.template.src $(ERL_TOP)/erts/vsn.mk +PR.template: PR.template.src $(ERL_TOP)/make/$(TARGET)/otp.mk sed -e 's;%VSN%;$(VSN);' \ -e 's;%SYSTEM_VSN%;$(SYSTEM_VSN);' \ $< > $@ diff --git a/system/doc/top/templates/index.html.src b/system/doc/top/templates/index.html.src index a176bc9a14..7acdadbf8a 100644 --- a/system/doc/top/templates/index.html.src +++ b/system/doc/top/templates/index.html.src @@ -2,7 +2,7 @@ <!-- %CopyrightBegin% -Copyright Ericsson AB 2009-2013. All Rights Reserved. +Copyright Ericsson AB 2009-2014. All Rights Reserved. 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 @@ -104,10 +104,16 @@ In addition to the documentation here Erlang is described in several recent book </p> <ul> <li> +<a href="http://shop.oreilly.com/product/0636920025818.do">"Introducing Erlang"</a> from O'Reilly. +</li> +<li> +<a href="http://www.nostarch.com/erlang">"Learn You Some Erlang for Great Good!"</a> from nostarch. +</li> +<li> <a href="http://oreilly.com/catalog/9780596518189">"Erlang Programming"</a> from O'Reilly. </li> <li> -<a href="http://www.pragprog.com/titles/jaerlang">"Programming Erlang"</a> from Pragmatic. +<a href="http://www.pragprog.com/book/jaerlang2/programming-erlang">"Programming Erlang"</a> from Pragmatic. </li> <li> <a href="http://www.manning.com/logan">"Erlang and OTP in Action"</a> from Manning. |