aboutsummaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/doc/installation_guide/otp_version.xml71
-rw-r--r--system/doc/installation_guide/part.xml1
-rw-r--r--system/doc/installation_guide/xmlfiles.mk1
-rw-r--r--system/doc/reference_manual/code_loading.xml21
-rw-r--r--system/doc/reference_manual/typespec.xml16
-rw-r--r--system/doc/top/Makefile2
6 files changed, 99 insertions, 13 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..dcba2d1702
--- /dev/null
+++ b/system/doc/installation_guide/otp_version.xml
@@ -0,0 +1,71 @@
+<?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 OTP version number. In the normal case, the OTP version
+ number will be constructed as
+ <c>&lt;Major&gt;.&lt;Minor&gt;.&lt;Patch&gt;</c>. However more
+ dot separated parts may exist. If all parts less significant than
+ <c>Minor</c> equals <c>0</c>, they are omitted when printing the
+ version. Release candidates have an <c>-rc&lt;N&gt;</c> suffix. The
+ OTP version as a concept was introduced in OTP 17.</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>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.</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>
+ <p>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>
+</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..79fd875d68 100644
--- a/system/doc/top/Makefile
+++ b/system/doc/top/Makefile
@@ -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);' \
$< > $@