aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/asn1/doc/src/notes.xml26
-rw-r--r--lib/asn1/vsn.mk2
-rw-r--r--lib/common_test/doc/src/ct_hooks.xml4
-rw-r--r--lib/common_test/doc/src/notes.xml74
-rw-r--r--lib/common_test/vsn.mk2
-rw-r--r--lib/compiler/doc/src/notes.xml85
-rw-r--r--lib/compiler/src/beam_validator.erl22
-rw-r--r--lib/compiler/test/beam_validator_SUITE.erl25
-rw-r--r--lib/compiler/vsn.mk2
-rw-r--r--lib/crypto/doc/src/notes.xml131
-rw-r--r--lib/crypto/vsn.mk2
-rw-r--r--lib/debugger/doc/src/notes.xml17
-rw-r--r--lib/debugger/vsn.mk2
-rw-r--r--lib/dialyzer/doc/src/notes.xml29
-rw-r--r--lib/dialyzer/vsn.mk2
-rw-r--r--lib/edoc/doc/src/notes.xml14
-rw-r--r--lib/edoc/vsn.mk2
-rw-r--r--lib/eldap/doc/src/notes.xml22
-rw-r--r--lib/eldap/vsn.mk2
-rw-r--r--lib/erl_docgen/doc/src/notes.xml19
-rw-r--r--lib/erl_docgen/vsn.mk2
-rw-r--r--lib/erl_interface/doc/src/ei.xml6
-rw-r--r--lib/erl_interface/doc/src/notes.xml76
-rw-r--r--lib/erl_interface/vsn.mk2
-rw-r--r--lib/hipe/doc/src/notes.xml46
-rw-r--r--lib/hipe/vsn.mk2
-rw-r--r--lib/inets/doc/src/notes.xml19
-rw-r--r--lib/inets/vsn.mk2
-rw-r--r--lib/jinterface/doc/src/notes.xml36
-rw-r--r--lib/jinterface/vsn.mk2
-rw-r--r--lib/kernel/doc/src/gen_tcp.xml6
-rw-r--r--lib/kernel/doc/src/notes.xml76
-rw-r--r--lib/kernel/src/kernel.appup.src28
-rw-r--r--lib/kernel/vsn.mk2
-rw-r--r--lib/megaco/doc/src/notes.xml25
-rw-r--r--lib/megaco/vsn.mk2
-rw-r--r--lib/mnesia/doc/src/notes.xml36
-rw-r--r--lib/mnesia/vsn.mk2
-rw-r--r--lib/observer/doc/src/notes.xml17
-rw-r--r--lib/observer/vsn.mk2
-rw-r--r--lib/odbc/doc/src/notes.xml18
-rw-r--r--lib/odbc/vsn.mk2
-rw-r--r--lib/os_mon/doc/src/notes.xml29
-rw-r--r--lib/os_mon/vsn.mk2
-rw-r--r--lib/public_key/doc/src/notes.xml52
-rw-r--r--lib/public_key/doc/src/public_key.xml4
-rw-r--r--lib/public_key/vsn.mk2
-rw-r--r--lib/reltool/doc/src/notes.xml35
-rw-r--r--lib/reltool/vsn.mk2
-rw-r--r--lib/runtime_tools/doc/src/notes.xml16
-rw-r--r--lib/runtime_tools/vsn.mk2
-rw-r--r--lib/sasl/doc/src/notes.xml17
-rw-r--r--lib/sasl/src/sasl.appup.src24
-rw-r--r--lib/sasl/vsn.mk2
-rw-r--r--lib/snmp/doc/src/notes.xml27
-rw-r--r--lib/ssh/doc/src/notes.xml15
-rw-r--r--lib/ssh/src/ssh_connection_handler.erl8
-rw-r--r--lib/ssh/src/ssh_dbg.erl73
-rw-r--r--lib/ssh/vsn.mk2
-rw-r--r--lib/ssl/doc/src/notes.xml67
-rw-r--r--lib/ssl/doc/src/ssl.xml61
-rw-r--r--lib/ssl/src/ssl.erl115
-rw-r--r--lib/ssl/test/ssl_basic_SUITE.erl6
-rw-r--r--lib/ssl/vsn.mk2
-rw-r--r--lib/stdlib/doc/src/notes.xml225
-rw-r--r--lib/stdlib/src/stdlib.app.src2
-rw-r--r--lib/stdlib/src/stdlib.appup.src26
-rw-r--r--lib/stdlib/vsn.mk2
-rw-r--r--lib/syntax_tools/doc/src/notes.xml28
-rw-r--r--lib/syntax_tools/vsn.mk2
-rw-r--r--lib/tools/doc/src/notes.xml43
-rw-r--r--lib/tools/vsn.mk2
-rw-r--r--lib/wx/doc/src/notes.xml17
-rw-r--r--lib/wx/vsn.mk2
-rw-r--r--lib/xmerl/doc/src/notes.xml15
-rw-r--r--lib/xmerl/vsn.mk2
76 files changed, 257 insertions, 1565 deletions
diff --git a/lib/asn1/doc/src/notes.xml b/lib/asn1/doc/src/notes.xml
index 284a2b4ce5..22ca7840de 100644
--- a/lib/asn1/doc/src/notes.xml
+++ b/lib/asn1/doc/src/notes.xml
@@ -32,32 +32,6 @@
<p>This document describes the changes made to the asn1 application.</p>
-<section><title>Asn1 5.0.9</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- <item>
- <p>Corrected problems with the following value
- definitions:</p> <list> <item>value of SEQUENCE OF CHOICE
- with extensions</item> <item>value of CHOICE with
- extensions</item> <item>DEFAULT used with OCTET
- STRING</item> </list>
- <p>
- Own Id: OTP-15697 Aux Id: PR-2159 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Asn1 5.0.8</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/asn1/vsn.mk b/lib/asn1/vsn.mk
index 018beda307..69f1af28e8 100644
--- a/lib/asn1/vsn.mk
+++ b/lib/asn1/vsn.mk
@@ -1 +1 @@
-ASN1_VSN = 5.0.9
+ASN1_VSN = 5.0.8
diff --git a/lib/common_test/doc/src/ct_hooks.xml b/lib/common_test/doc/src/ct_hooks.xml
index 7f0dda1298..ff9969ebc3 100644
--- a/lib/common_test/doc/src/ct_hooks.xml
+++ b/lib/common_test/doc/src/ct_hooks.xml
@@ -109,7 +109,7 @@
</func>
<func>
- <name since="OTP 22.0">Module:post_groups(SuiteName, GroupDefs) -&gt; NewGroupDefs</name>
+ <name since="OTP @OTP-14746@">Module:post_groups(SuiteName, GroupDefs) -&gt; NewGroupDefs</name>
<fsummary>Called after groups/0.</fsummary>
<type>
<v>SuiteName = atom()</v>
@@ -165,7 +165,7 @@
</func>
<func>
- <name since="OTP 22.0">Module:post_all(SuiteName, Return, GroupDefs) -&gt; NewReturn</name>
+ <name since="OTP @OTP-14746@">Module:post_all(SuiteName, Return, GroupDefs) -&gt; NewReturn</name>
<fsummary>Called after all/0.</fsummary>
<type>
<v>SuiteName = atom()</v>
diff --git a/lib/common_test/doc/src/notes.xml b/lib/common_test/doc/src/notes.xml
index bbb46fced3..a68cc3cca7 100644
--- a/lib/common_test/doc/src/notes.xml
+++ b/lib/common_test/doc/src/notes.xml
@@ -33,80 +33,6 @@
<file>notes.xml</file>
</header>
-<section><title>Common_Test 1.18</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- <item>
- <p>
- The test result when a hook function fails is in general
- the same as if the function that the hook is associated
- with fails. For example, if <c>post_init_per_testcase</c>
- fails the result is that the test case is skipped, as is
- the case when <c>init_per_testcase</c> fails.This,
- however, was earlier not true for timetrap timeouts or
- other error situations where the process running the hook
- function was killed. This is now corrected, so the error
- handling should be the same no matter how the hook
- function fails.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15717 Aux Id: ERIERL-334 </p>
- </item>
- <item>
- <p>
- In some rare cases, when two common_test nodes used the
- same log directory, a timing problem could occur which
- caused common_test to crash because it's log cache file
- was unexpectedly empty. This is now corrected.</p>
- <p>
- Own Id: OTP-15758 Aux Id: ERIERL-342 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Two new common_test hook functions are introduced:</p>
- <p>
- <c>post_groups/2</c>, which is called after
- <c>Suite:groups/0</c><br/> <c>post_all/3</c>, which is
- called after <c>Suite:all/0</c></p>
- <p>
- These functions allow modifying the return values from
- the <c>groups/0</c> and <c>all/0</c> functions,
- respectively.</p>
- <p>
- A new term, <c>{testcase,TestCase,RepeatProperties}</c>
- is now also allowed in the return from <c>all/0</c>. This
- can be used for repeating a single test case a specific
- number of times, or until it fails or succeeds once.</p>
- <p>
- Own Id: OTP-14746 Aux Id: ERIERL-143 </p>
- </item>
- <item>
- <p> Use <c>ssh</c> instead of <c>rsh</c> as the default
- remote shell. </p>
- <p>
- Own Id: OTP-15633 Aux Id: PR-1787 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Common_Test 1.17.1</title>
<section><title>Improvements and New Features</title>
diff --git a/lib/common_test/vsn.mk b/lib/common_test/vsn.mk
index ddc518f474..14a3622a00 100644
--- a/lib/common_test/vsn.mk
+++ b/lib/common_test/vsn.mk
@@ -1 +1 @@
-COMMON_TEST_VSN = 1.18
+COMMON_TEST_VSN = 1.17.1
diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml
index 05b7cbc940..d45dfef8f3 100644
--- a/lib/compiler/doc/src/notes.xml
+++ b/lib/compiler/doc/src/notes.xml
@@ -32,91 +32,6 @@
<p>This document describes the changes made to the Compiler
application.</p>
-<section><title>Compiler 7.4</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p><c>record_info/2</c> is a pseudo-function that
- requires literal arguments known at compile time.
- Therefore, the following usage is illegal: <c>fun
- record/info/2</c>. The compiler would crash when during
- compilation of that kind of code. Corrected to issue a
- compilation error.</p>
- <p>
- Own Id: OTP-15760 Aux Id: ERL-907 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- The compiler has been rewritten to internally use an
- intermediate representation based on Static Single
- Assignment (SSA). The new intermediate representation
- makes more optimizations possible.</p>
- <p>
- Most noticeable is that the binary matching optimizations
- are now applicable in many more circumstances than
- before.</p>
- <p>
- Another noticeable change is that type optimizations are
- now applied across local function calls, and will remove
- a lot more redundant type tests than before.</p>
- <p>
- Own Id: OTP-14894 Aux Id: ERL-714 </p>
- </item>
- <item>
- <p>Funs are no longer created when they are only used
- locally, greatly improving the performance of named funs
- and "fun-wrapped" macros.</p>
- <p>
- Own Id: OTP-15273 Aux Id: ERL-639 </p>
- </item>
- <item>
- <p>All compiler options that can be given in the source
- file can now also be given in the option list or from the
- command line for <c>erlc</c>.</p>
- <p>Specifically, the option
- <c>{nowarn_deprecated_function,MFAs}</c> was only
- recognized when given in the file with the attribute
- <c>-compile()</c>. The option
- <c>{nowarn_unused_function,FAs}</c> was incorrectly
- documented to only work in a file, but it also worked
- when given in the option list.</p>
- <p>
- Own Id: OTP-15456</p>
- </item>
- <item>
- <p>Internal documentation has now been added to the
- <em>Erts</em> and <em>Compiler</em> applications.</p>
- <p>The internal documents for <em>Erts</em> describe
- miscellaneous interesting implementation details. Those
- details can change at any time.</p>
- <p>The internal documentation for <em>Compiler</em>
- documents the API for the Core Erlang modules. While we
- will not change those APIs without good reason, we don't
- give the same guarantees about backward compatibility as
- for the rest of the APIs in OTP.</p>
- <p>
- Own Id: OTP-15715</p>
- </item>
- <item>
- <p> There are new compiler options <c>nowarn_removed</c>
- and <c>{nowarn_removed,Items}</c> to suppress warnings
- for functions and modules that have been removed from
- OTP.</p>
- <p>
- Own Id: OTP-15749 Aux Id: ERL-904 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Compiler 7.3.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/compiler/src/beam_validator.erl b/lib/compiler/src/beam_validator.erl
index efd2be94cb..09a5a6c104 100644
--- a/lib/compiler/src/beam_validator.erl
+++ b/lib/compiler/src/beam_validator.erl
@@ -1604,8 +1604,13 @@ infer_types_1(#value{op={bif,'=:='},args=[LHS,RHS]}) ->
end;
infer_types_1(#value{op={bif,element},args=[{integer,Index}=Key,Tuple]}) ->
fun(Val, S) ->
- Type = get_term_type(Val, S),
- update_type(fun meet/2,{tuple,[Index],#{ Key => Type }}, Tuple, S)
+ case is_value_alive(Tuple, S) of
+ true ->
+ Type = {tuple,[Index], #{ Key => get_term_type(Val, S) }},
+ update_type(fun meet/2, Type, Tuple, S);
+ false ->
+ S
+ end
end;
infer_types_1(#value{op={bif,is_atom},args=[Src]}) ->
infer_type_test_bif({atom,[]}, Src);
@@ -1629,7 +1634,10 @@ infer_types_1(#value{op={bif,is_tuple},args=[Src]}) ->
infer_type_test_bif({tuple,[0],#{}}, Src);
infer_types_1(#value{op={bif,tuple_size}, args=[Tuple]}) ->
fun({integer,Arity}, S) ->
- update_type(fun meet/2, {tuple,Arity,#{}}, Tuple, S);
+ case is_value_alive(Tuple, S) of
+ true -> update_type(fun meet/2, {tuple,Arity,#{}}, Tuple, S);
+ false -> S
+ end;
(_, S) -> S
end;
infer_types_1(_) ->
@@ -1637,7 +1645,10 @@ infer_types_1(_) ->
infer_type_test_bif(Type, Src) ->
fun({atom,true}, S) ->
- update_type(fun meet/2, Type, Src, S);
+ case is_value_alive(Src, S) of
+ true -> update_type(fun meet/2, Type, Src, S);
+ false -> S
+ end;
(_, S) ->
S
end.
@@ -2274,6 +2285,9 @@ get_raw_type(#value_ref{}=Ref, #vst{current=#st{vs=Vs}}) ->
get_raw_type(Src, #vst{}) ->
get_literal_type(Src).
+is_value_alive(#value_ref{}=Ref, #vst{current=#st{vs=Vs}}) ->
+ is_map_key(Ref, Vs).
+
get_literal_type(nil=T) -> T;
get_literal_type({atom,A}=T) when is_atom(A) -> T;
get_literal_type({float,F}=T) when is_float(F) -> T;
diff --git a/lib/compiler/test/beam_validator_SUITE.erl b/lib/compiler/test/beam_validator_SUITE.erl
index de5a3c2873..6b1438abdd 100644
--- a/lib/compiler/test/beam_validator_SUITE.erl
+++ b/lib/compiler/test/beam_validator_SUITE.erl
@@ -35,7 +35,7 @@
map_field_lists/1,cover_bin_opt/1,
val_dsetel/1,bad_tuples/1,bad_try_catch_nesting/1,
receive_stacked/1,aliased_types/1,type_conflict/1,
- infer_on_eq/1]).
+ infer_on_eq/1,infer_dead_value/1]).
-include_lib("common_test/include/ct.hrl").
@@ -65,7 +65,7 @@ groups() ->
map_field_lists,cover_bin_opt,val_dsetel,
bad_tuples,bad_try_catch_nesting,
receive_stacked,aliased_types,type_conflict,
- infer_on_eq]}].
+ infer_on_eq,infer_dead_value]}].
init_per_suite(Config) ->
test_lib:recompile(?MODULE),
@@ -679,6 +679,27 @@ infer_on_eq_4(T) ->
true = erlang:tuple_size(T) =:= 1,
{ok, erlang:element(1, T)}.
+%% ERIERL-348; types were inferred for dead values, causing validation to fail.
+
+infer_dead_value(Config) when is_list(Config) ->
+ a = idv_1({a, b, c, d, e, f, g}, {0, 0, 0, 0, 0, 0, 0}),
+ b = idv_1({a, b, c, d, 0, 0, 0}, {a, b, c, d, 0, 0, 0}),
+ c = idv_1({0, 0, 0, 0, 0, f, g}, {0, 0, 0, 0, 0, f, g}),
+ error = idv_1(gurka, gaffel),
+ ok.
+
+idv_1({_A, _B, _C, _D, _E, _F, _G},
+ {0, 0, 0, 0, 0, 0, 0}) ->
+ a;
+idv_1({A, B, C, D,_E, _F, _G}=_Tuple1,
+ {A, B, C, D, 0, 0, 0}=_Tuple2) ->
+ b;
+idv_1({_A, _B, _C, _D, _E, F, G},
+ {0, 0, 0, 0, 0, F, G}) ->
+ c;
+idv_1(_A, _B) ->
+ error.
+
%%%-------------------------------------------------------------------------
transform_remove(Remove, Module) ->
diff --git a/lib/compiler/vsn.mk b/lib/compiler/vsn.mk
index 494de072ff..a523627384 100644
--- a/lib/compiler/vsn.mk
+++ b/lib/compiler/vsn.mk
@@ -1 +1 @@
-COMPILER_VSN = 7.4
+COMPILER_VSN = 7.3.2
diff --git a/lib/crypto/doc/src/notes.xml b/lib/crypto/doc/src/notes.xml
index 1f549f3295..195c9d029d 100644
--- a/lib/crypto/doc/src/notes.xml
+++ b/lib/crypto/doc/src/notes.xml
@@ -31,137 +31,6 @@
</header>
<p>This document describes the changes made to the Crypto application.</p>
-<section><title>Crypto 4.5</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Fixed a bug in error return for <c>crypto:poly1305/2</c>.
- It returned the atom <c>notsup</c> instead of the
- exception <c>notsup</c>.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15677</p>
- </item>
- <item>
- <p>
- The cipher chacha20 was introduced in OpenSSL 1.1.0.
- However, it could in a very odd situation, fail for
- versions less than OpenSSL 1.1.0d. It is therefore
- disabled for those versions.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15678</p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p> A new <c>rand</c> module algorithm, <c>exro928ss</c>
- (Xoroshiro928**), has been implemented. It has got a
- really long period and good statistical quality for all
- output bits, while still being only about 50% slower than
- the default algorithm. </p><p> The same generator is also
- used as a long period counter in a new <c>crypto</c>
- plugin for the <c>rand</c> module, algorithm
- <c>crypto_aes</c>. This plugin uses AES-256 to scramble
- the counter which buries any detectable statistical
- artifacts. Scrambling is done in chunks which are cached
- to get good amortized speed (about half of the default
- algorithm). </p>
- <p>
- Own Id: OTP-14461 Aux Id: PR-1857 </p>
- </item>
- <item>
- <p>
- Crypto's single C-file is splitted into multiple files.
- The different coding styles in the different parts are
- unified into a single style.</p>
- <p>
- Own Id: OTP-14732 Aux Id: PR-2068, PR-2095 </p>
- </item>
- <item>
- <p>
- Build configuration of the <c>crypto</c> application has
- been moved from the <c>erts</c> application into the
- <c>crypto</c> application.</p>
- <p>
- Own Id: OTP-15129</p>
- </item>
- <item>
- <p>
- Adds two hash functions <c>blake2b</c> and <c>blake2s</c>
- (64 bit hash and 32 bit hash respectively). These are
- modern and standard hash functions used in blockchains
- and encrypted communication protocols. The hash functions
- are available in OpenSSL since version 1.1.1.</p>
- <p>
- Own Id: OTP-15564 Aux Id: PR-2129 </p>
- </item>
- <item>
- <p>
- A new API is implemented in crypto. See the CRYPTO user's
- guide, chapter <i>New and Old API</i> for more
- information.</p>
- <p>
- The old api with the <c>crypto:block_*</c> and
- <c>crypto:stream_*</c> interfaces is kept for
- compatibility, but implemented with the new api. Please
- note that since the error checking is more thorough,
- there <i>might</i> be arguments with for example faulty
- lengths that are no longer accepted.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15644 Aux Id: OTP-14732 , OTP-15451, PR-1857
- , PR-2068, PR-2095 </p>
- </item>
- <item>
- <p>
- The new hash_info/1 and cipher_info/1 functions returns
- maps with information about the hash or cipher in the
- argument.</p>
- <p>
- Own Id: OTP-15655 Aux Id: PR-2173, ERL-864, PR-2186 </p>
- </item>
- <item>
- <p>
- Obey additional OpenSSL configure flags when compiling
- the C-part of the CRYPTO application: <c>no-bf</c>,
- <c>no-blake2</c>, <c>no-chacha</c>, <c>no-cmac</c>,
- <c>no-dh</c>, <c>no-dsa</c>, <c>no-md4</c>,
- <c>no-poly1305</c>, <c>no-rc2</c>, <c>no-rc4</c> and
- <c>no-rmd160</c>.</p>
- <p>
- Own Id: OTP-15683</p>
- </item>
- <item>
- <p>
- A new function <c>crypto:supports/1</c> is introduced.
- The single argument takes an atom as argument:
- <c>hashs</c>, <c>public_keys</c>, <c>ciphers</c>,
- <c>macs</c>, <c>curves</c> or <c>rsa_opts</c>. The return
- value is a list of supported algorithms.</p>
- <p>
- The difference with the existing <c>crypto:supports/0</c>
- is, apart from the argument and the return value, that
- the old function reports what is supported by the old
- api, and the new function reports algorithms in the new
- api.</p>
- <p>
- Own Id: OTP-15771</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Crypto 4.4.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/crypto/vsn.mk b/lib/crypto/vsn.mk
index 72a51bfec9..0a3d9f45e4 100644
--- a/lib/crypto/vsn.mk
+++ b/lib/crypto/vsn.mk
@@ -1 +1 @@
-CRYPTO_VSN = 4.5
+CRYPTO_VSN = 4.4.2
diff --git a/lib/debugger/doc/src/notes.xml b/lib/debugger/doc/src/notes.xml
index 795b46d467..395b69973d 100644
--- a/lib/debugger/doc/src/notes.xml
+++ b/lib/debugger/doc/src/notes.xml
@@ -33,23 +33,6 @@
<p>This document describes the changes made to the Debugger
application.</p>
-<section><title>Debugger 4.2.7</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Debugger 4.2.6</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/debugger/vsn.mk b/lib/debugger/vsn.mk
index daecc7594c..a3cbb497f8 100644
--- a/lib/debugger/vsn.mk
+++ b/lib/debugger/vsn.mk
@@ -1 +1 @@
-DEBUGGER_VSN = 4.2.7
+DEBUGGER_VSN = 4.2.6
diff --git a/lib/dialyzer/doc/src/notes.xml b/lib/dialyzer/doc/src/notes.xml
index c39a3e20ba..bc422c43a0 100644
--- a/lib/dialyzer/doc/src/notes.xml
+++ b/lib/dialyzer/doc/src/notes.xml
@@ -32,35 +32,6 @@
<p>This document describes the changes made to the Dialyzer
application.</p>
-<section><title>Dialyzer 3.4</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p> Use bit syntax in warnings instead of Core Erlang
- syntax, for readability. </p>
- <p>
- Own Id: OTP-15752</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Dialyzer 3.3.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/dialyzer/vsn.mk b/lib/dialyzer/vsn.mk
index 3765b727c3..7221993963 100644
--- a/lib/dialyzer/vsn.mk
+++ b/lib/dialyzer/vsn.mk
@@ -1 +1 @@
-DIALYZER_VSN = 3.4
+DIALYZER_VSN = 3.3.2
diff --git a/lib/edoc/doc/src/notes.xml b/lib/edoc/doc/src/notes.xml
index 48bc5d9c74..145856bcaa 100644
--- a/lib/edoc/doc/src/notes.xml
+++ b/lib/edoc/doc/src/notes.xml
@@ -32,20 +32,6 @@
<p>This document describes the changes made to the EDoc
application.</p>
-<section><title>Edoc 0.11</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p> Correct links in the documentation. </p>
- <p>
- Own Id: OTP-15761</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Edoc 0.10</title>
<section><title>Improvements and New Features</title>
diff --git a/lib/edoc/vsn.mk b/lib/edoc/vsn.mk
index 3510fdfccf..b6e1422623 100644
--- a/lib/edoc/vsn.mk
+++ b/lib/edoc/vsn.mk
@@ -1 +1 @@
-EDOC_VSN = 0.11
+EDOC_VSN = 0.10
diff --git a/lib/eldap/doc/src/notes.xml b/lib/eldap/doc/src/notes.xml
index 6c23db52dc..bf9358c4d1 100644
--- a/lib/eldap/doc/src/notes.xml
+++ b/lib/eldap/doc/src/notes.xml
@@ -31,28 +31,6 @@
</header>
<p>This document describes the changes made to the Eldap application.</p>
-<section><title>Eldap 1.2.7</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Typo fix</p>
- <p>
- Own Id: OTP-15632</p>
- </item>
- <item>
- <p>
- Fix dialyzer warnings in eldap when not matching the
- return value of ssl:close/1.</p>
- <p>
- Own Id: OTP-15775</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Eldap 1.2.6</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/eldap/vsn.mk b/lib/eldap/vsn.mk
index 7f03fbd1b2..6d541e4689 100644
--- a/lib/eldap/vsn.mk
+++ b/lib/eldap/vsn.mk
@@ -1 +1 @@
-ELDAP_VSN = 1.2.7
+ELDAP_VSN = 1.2.6
diff --git a/lib/erl_docgen/doc/src/notes.xml b/lib/erl_docgen/doc/src/notes.xml
index f25361a202..54f0a36b27 100644
--- a/lib/erl_docgen/doc/src/notes.xml
+++ b/lib/erl_docgen/doc/src/notes.xml
@@ -31,24 +31,7 @@
</header>
<p>This document describes the changes made to the <em>erl_docgen</em> application.</p>
- <section><title>Erl_Docgen 0.9.1</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>Erl_Docgen 0.9</title>
+ <section><title>Erl_Docgen 0.9</title>
<section><title>Improvements and New Features</title>
<list>
diff --git a/lib/erl_docgen/vsn.mk b/lib/erl_docgen/vsn.mk
index fece2456c1..6321f229dd 100644
--- a/lib/erl_docgen/vsn.mk
+++ b/lib/erl_docgen/vsn.mk
@@ -1 +1 @@
-ERL_DOCGEN_VSN = 0.9.1
+ERL_DOCGEN_VSN = 0.9
diff --git a/lib/erl_interface/doc/src/ei.xml b/lib/erl_interface/doc/src/ei.xml
index 18f74d2655..254ae27cc8 100644
--- a/lib/erl_interface/doc/src/ei.xml
+++ b/lib/erl_interface/doc/src/ei.xml
@@ -183,7 +183,7 @@ typedef enum {
</func>
<func>
- <name since="OTP 22.0"><ret>int</ret><nametext>ei_decode_bitstring(const char *buf, int *index, void *p, size_t plen, size_t *bitsp)</nametext></name>
+ <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_decode_bitstring(const char *buf, int *index, void *p, size_t plen, size_t *bitsp)</nametext></name>
<fsummary>Decode a bitstring.</fsummary>
<desc>
<p>Decodes a bitstring from the binary format.</p>
@@ -490,8 +490,8 @@ typedef enum {
</func>
<func>
- <name since="OTP 22.0"><ret>int</ret><nametext>ei_encode_bitstring(char *buf, int *index, const void *p, size_t bits)</nametext></name>
- <name since="OTP 22.0"><ret>int</ret><nametext>ei_x_encode_bitstring(ei_x_buff* x, const void *p, size_t bits)</nametext></name>
+ <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_encode_bitstring(char *buf, int *index, const void *p, size_t bits)</nametext></name>
+ <name since="OTP @OTP-15712@"><ret>int</ret><nametext>ei_x_encode_bitstring(ei_x_buff* x, const void *p, size_t bits)</nametext></name>
<fsummary>Encode a bitstring.</fsummary>
<desc>
<p>Encodes a bitstring in the binary format. The data is at
diff --git a/lib/erl_interface/doc/src/notes.xml b/lib/erl_interface/doc/src/notes.xml
index f6c4c68cb1..fc6a1bb548 100644
--- a/lib/erl_interface/doc/src/notes.xml
+++ b/lib/erl_interface/doc/src/notes.xml
@@ -31,82 +31,6 @@
</header>
<p>This document describes the changes made to the Erl_interface application.</p>
-<section><title>Erl_Interface 3.12</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- The vxworks configure has been updated to respect the
- environment CFLAGS.</p>
- <p>
- Own Id: OTP-15773</p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Minor adjustments made to build system for parallel
- configure.</p>
- <p>
- Own Id: OTP-15340 Aux Id: OTP-14625 </p>
- </item>
- <item>
- <p>
- The limited support for VxWorks is deprecated as of OTP
- 22, and will be removed in OTP 23.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15621</p>
- </item>
- <item>
- <p>The old legacy <c>erl_interface</c> library (functions
- with prefix <c>erl_</c>) is deprecated as of OTP 22, and
- will be removed in OTP 23. This does not apply to the
- <c>ei</c> library. Reasonably new <c>gcc</c> compilers
- will issue deprecation warnings. In order to disable
- these warnings, define the macro
- <c>EI_NO_DEPR_WARN</c>.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15622</p>
- </item>
- <item>
- <p>Added support to receive, decode, encode and send both
- bit strings and export funs (<c>fun M:F/A</c>).</p>
- <p>New functions <c>ei_decode_bitstring</c> and
- <c>ei_encode_bitstring</c> have been added in order to
- decode and encode bit strings where number of bits is not
- necessary divisible by 8 (a whole number of bytes). The
- existing functions <c>ei_decode_fun</c> and
- <c>ei_encode_fun</c> can now also handle export funs.</p>
- <p>Before this change, bit strings and export funs sent
- to an erl_interface c-node were encoded using an
- undocumented fallback tuple format. For bit strings
- <c>{Binary,BitsInLastByte}</c> and for export funs
- <c>{M,F}</c>. Existing c-node implementations expecting
- these tuples must be changed to instead use
- <c>ei_decode_bitstring</c> and <c>ei_decode_fun</c>. As a
- temporary solution you can also build erl_interface with
- macro <c>EI_COMPAT=21</c> or call
- <c>ei_set_compat_rel(21)</c> to receive the old fallback
- tuples.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15712 Aux Id: OTP-15774 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Erl_Interface 3.11.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/erl_interface/vsn.mk b/lib/erl_interface/vsn.mk
index cc72ed639a..5e63f75ab5 100644
--- a/lib/erl_interface/vsn.mk
+++ b/lib/erl_interface/vsn.mk
@@ -1,2 +1,2 @@
-EI_VSN = 3.12
+EI_VSN = 3.11.2
ERL_INTERFACE_VSN = $(EI_VSN)
diff --git a/lib/hipe/doc/src/notes.xml b/lib/hipe/doc/src/notes.xml
index 4a95d75abe..9a803cb9df 100644
--- a/lib/hipe/doc/src/notes.xml
+++ b/lib/hipe/doc/src/notes.xml
@@ -31,52 +31,6 @@
</header>
<p>This document describes the changes made to HiPE.</p>
-<section><title>Hipe 3.19</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Add function <c>hipe:erllvm_is_supported</c> to check
- presence of suitable version of the LLVM tool chain as
- well as supported hardware architecture. The old
- <c>hipe:llvm_support_available</c> has been removed.</p>
- <p>
- Own Id: OTP-15385 Aux Id: PR-1986 </p>
- </item>
- <item>
- <p>
- Fix hipe LLVM for FreeBSD and other non-linux unix to use
- /tmp/ instead of /dev/shm/.</p>
- <p>
- Own Id: OTP-15386 Aux Id: PR-1963 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>In OTP 22, HiPE (the native code compiler) is not
- fully functional. The reasons for this are:</p>
- <p>There are new BEAM instructions for binary matching
- that the HiPE native code compiler does not support.</p>
- <p>The new optimizations in the Erlang compiler create
- new combination of instructions that HiPE currently does
- not handle correctly.</p>
- <p>If erlc is invoked with the <c>+native</c> option, and
- if any of the new binary matching instructions are used,
- the compiler will issue a warning and produce a BEAM file
- without native code.</p>
- <p>
- Own Id: OTP-15596</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Hipe 3.18.3</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/hipe/vsn.mk b/lib/hipe/vsn.mk
index a91d92ca14..39565d721f 100644
--- a/lib/hipe/vsn.mk
+++ b/lib/hipe/vsn.mk
@@ -1 +1 @@
-HIPE_VSN = 3.19
+HIPE_VSN = 3.18.3
diff --git a/lib/inets/doc/src/notes.xml b/lib/inets/doc/src/notes.xml
index 03bd1d8042..2710ea2f2f 100644
--- a/lib/inets/doc/src/notes.xml
+++ b/lib/inets/doc/src/notes.xml
@@ -33,24 +33,7 @@
<file>notes.xml</file>
</header>
- <section><title>Inets 7.0.8</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>Inets 7.0.7</title>
+ <section><title>Inets 7.0.7</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/inets/vsn.mk b/lib/inets/vsn.mk
index 5dbec9e7b3..fd248e793a 100644
--- a/lib/inets/vsn.mk
+++ b/lib/inets/vsn.mk
@@ -19,6 +19,6 @@
# %CopyrightEnd%
APPLICATION = inets
-INETS_VSN = 7.0.8
+INETS_VSN = 7.0.7
PRE_VSN =
APP_VSN = "$(APPLICATION)-$(INETS_VSN)$(PRE_VSN)"
diff --git a/lib/jinterface/doc/src/notes.xml b/lib/jinterface/doc/src/notes.xml
index e79ada47f1..e4bfddcd17 100644
--- a/lib/jinterface/doc/src/notes.xml
+++ b/lib/jinterface/doc/src/notes.xml
@@ -31,42 +31,6 @@
</header>
<p>This document describes the changes made to the Jinterface application.</p>
-<section><title>Jinterface 1.10</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>Added support to receive export funs (<c>fun
- M:F/A</c>).</p>
- <p>Before this change, export funs sent to a jinterface
- node were encoded using an undocumented fallback tuple
- format <c>{M,F}</c>. Existing jinterface implementations
- expecting these tuples must be changed to instead use the
- existing <c>OtpErlangExternalFun</c> class.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15774 Aux Id: OTP-15712 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Jinterface 1.9.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/jinterface/vsn.mk b/lib/jinterface/vsn.mk
index 95c7c95726..a8dc815145 100644
--- a/lib/jinterface/vsn.mk
+++ b/lib/jinterface/vsn.mk
@@ -1 +1 @@
-JINTERFACE_VSN = 1.10
+JINTERFACE_VSN = 1.9.1
diff --git a/lib/kernel/doc/src/gen_tcp.xml b/lib/kernel/doc/src/gen_tcp.xml
index fc16473393..f8b41d24e2 100644
--- a/lib/kernel/doc/src/gen_tcp.xml
+++ b/lib/kernel/doc/src/gen_tcp.xml
@@ -259,6 +259,12 @@ do_recv(Sock, Bs) ->
<p>The optional <c><anno>Timeout</anno></c> parameter specifies a
time-out in milliseconds. Defaults to <c>infinity</c>.</p>
<note>
+ <p>Keep in mind that if the underlying OS <c>connect()</c> call returns
+ a timeout, <c>gen_tcp:connect</c> will also return a timeout
+ (i.e. <c>{error, etimedout}</c>), even if a larger <c>Timeout</c> was
+ specified.</p>
+ </note>
+ <note>
<p>The default values for options specified to <c>connect</c> can
be affected by the Kernel configuration parameter
<c>inet_default_connect_options</c>. For details, see
diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml
index 63d8f3565c..61bd598145 100644
--- a/lib/kernel/doc/src/notes.xml
+++ b/lib/kernel/doc/src/notes.xml
@@ -31,82 +31,6 @@
</header>
<p>This document describes the changes made to the Kernel application.</p>
-<section><title>Kernel 6.4</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- A simple socket API is provided through the socket
- module. This is a low level API that does *not* replace
- gen_[tcp|udp|sctp]. It is intended to *eventually*
- replace the inet driver, but not the high level
- gen-modules (gen_tcp, gen_udp and gen_sctp). It also
- provides a basic API that facilitates the implementation
- of other protocols, than TCP, UDP and SCTP. </p>
- <p>
- Known issues are; No support for the Windows OS
- (currently).</p>
- <p>
- Own Id: OTP-14831</p>
- </item>
- <item>
- <p>
- Improved the documentation for the linger option.</p>
- <p>
- Own Id: OTP-15491 Aux Id:
- https://github.com/erlang/otp/pull/2019 </p>
- </item>
- <item>
- <p> Global no longer tries more than once when connecting
- to other nodes. </p>
- <p>
- Own Id: OTP-15607 Aux Id: ERIERL-280 </p>
- </item>
- <item>
- <p>
- The dist messages EXIT, EXIT2 and MONITOR_DOWN have been
- updated with new versions that send the reason term as
- part of the payload of the message instead of as part of
- the control message.</p>
- <p>
- The old versions are still present and can be used when
- communicating with nodes that don't support the new
- versions.</p>
- <p>
- Own Id: OTP-15611</p>
- </item>
- <item>
- <p>
- Kernel configuration parameter <c>start_distribution =
- boolean()</c> is added. If set to <c>false</c>, the
- system is started with all distribution functionality
- disabled. Defaults to <c>true</c>.</p>
- <p>
- Own Id: OTP-15668 Aux Id: PR-2088 </p>
- </item>
- <item>
- <p>
- In OTP-21.3, a warning was introduced for duplicated
- applications/keys in configuration. This warning would be
- displayed both when the configuration was given as a file
- on system start, and during runtime via
- <c>application:set_env/1,2</c>.</p>
- <p>
- The warning is now changed to a <c>badarg</c> exception
- in <c>application:set_env/1,2</c>. If the faulty
- configuration is given in a configuration file on system
- start, the startup will fail.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15692 Aux Id: PR-2170 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Kernel 6.3.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/kernel/src/kernel.appup.src b/lib/kernel/src/kernel.appup.src
index cd0397a98c..aca3247c8f 100644
--- a/lib/kernel/src/kernel.appup.src
+++ b/lib/kernel/src/kernel.appup.src
@@ -19,15 +19,23 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
+%% - OTP 20
%% - OTP 21
-%% - OTP 22
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"%VSN%",
- [{<<"^6\\.0$">>,[restart_new_emulator]},
+ [{<<"^5\\.3$">>,[restart_new_emulator]},
+ {<<"^5\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^5\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^6\\.0$">>,[restart_new_emulator]},
{<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1$">>,[restart_new_emulator]},
@@ -37,9 +45,16 @@
{<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.3$">>,[restart_new_emulator]},
- {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
- [{<<"^6\\.0$">>,[restart_new_emulator]},
+ {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
+ [{<<"^5\\.3$">>,[restart_new_emulator]},
+ {<<"^5\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^5\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^5\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^6\\.0$">>,[restart_new_emulator]},
{<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1$">>,[restart_new_emulator]},
@@ -49,5 +64,4 @@
{<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.3$">>,[restart_new_emulator]},
- {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
+ {<<"^6\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk
index 765e890157..b1ae513223 100644
--- a/lib/kernel/vsn.mk
+++ b/lib/kernel/vsn.mk
@@ -1 +1 @@
-KERNEL_VSN = 6.4
+KERNEL_VSN = 6.3.1
diff --git a/lib/megaco/doc/src/notes.xml b/lib/megaco/doc/src/notes.xml
index 6f33ae390c..b697c3f631 100644
--- a/lib/megaco/doc/src/notes.xml
+++ b/lib/megaco/doc/src/notes.xml
@@ -37,30 +37,7 @@
section is the version number of Megaco.</p>
- <section><title>Megaco 3.18.5</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Minor updates to build system necessary due to move of
- configuration of <c>crypto</c> application.</p>
- <p>
- Own Id: OTP-15262 Aux Id: OTP-15129 </p>
- </item>
- <item>
- <p>
- Minor adjustments made to build system for parallel
- configure.</p>
- <p>
- Own Id: OTP-15340 Aux Id: OTP-14625 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>Megaco 3.18.4</title>
+ <section><title>Megaco 3.18.4</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/megaco/vsn.mk b/lib/megaco/vsn.mk
index 843a3dccc5..f4c82c537a 100644
--- a/lib/megaco/vsn.mk
+++ b/lib/megaco/vsn.mk
@@ -19,6 +19,6 @@
# %CopyrightEnd%
APPLICATION = megaco
-MEGACO_VSN = 3.18.5
+MEGACO_VSN = 3.18.4
PRE_VSN =
APP_VSN = "$(APPLICATION)-$(MEGACO_VSN)$(PRE_VSN)"
diff --git a/lib/mnesia/doc/src/notes.xml b/lib/mnesia/doc/src/notes.xml
index 59c842ab10..01d1666b8d 100644
--- a/lib/mnesia/doc/src/notes.xml
+++ b/lib/mnesia/doc/src/notes.xml
@@ -39,41 +39,7 @@
thus constitutes one section in this document. The title of each
section is the version number of Mnesia.</p>
- <section><title>Mnesia 4.16</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Optimize mnesia:read/1 if data have been written in the
- same transaction.</p>
- <p>
- Own Id: OTP-15550 Aux Id: PR-12029 </p>
- </item>
- <item>
- <p>
- Fixed bugs in table index plugin handling.</p>
- <p>
- Own Id: OTP-15689 Aux Id: PR-1695 ERL-556 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Optimized dumping of tables with plugin backends.</p>
- <p>
- Own Id: OTP-15588 Aux Id: PR-2102 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>Mnesia 4.15.6</title>
+ <section><title>Mnesia 4.15.6</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/mnesia/vsn.mk b/lib/mnesia/vsn.mk
index aa5d9adb6d..781a4830a0 100644
--- a/lib/mnesia/vsn.mk
+++ b/lib/mnesia/vsn.mk
@@ -1 +1 @@
-MNESIA_VSN = 4.16
+MNESIA_VSN = 4.15.6
diff --git a/lib/observer/doc/src/notes.xml b/lib/observer/doc/src/notes.xml
index f05e58dc21..2d914f8c61 100644
--- a/lib/observer/doc/src/notes.xml
+++ b/lib/observer/doc/src/notes.xml
@@ -32,23 +32,6 @@
<p>This document describes the changes made to the Observer
application.</p>
-<section><title>Observer 2.9.1</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Observer 2.9</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/observer/vsn.mk b/lib/observer/vsn.mk
index c16c43f942..0e9c8b302c 100644
--- a/lib/observer/vsn.mk
+++ b/lib/observer/vsn.mk
@@ -1 +1 @@
-OBSERVER_VSN = 2.9.1
+OBSERVER_VSN = 2.9
diff --git a/lib/odbc/doc/src/notes.xml b/lib/odbc/doc/src/notes.xml
index 8d708162e4..696fcaa479 100644
--- a/lib/odbc/doc/src/notes.xml
+++ b/lib/odbc/doc/src/notes.xml
@@ -32,23 +32,7 @@
<p>This document describes the changes made to the odbc application.
</p>
- <section><title>ODBC 2.12.4</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Minor adjustments made to build system for parallel
- configure.</p>
- <p>
- Own Id: OTP-15340 Aux Id: OTP-14625 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>ODBC 2.12.3</title>
+ <section><title>ODBC 2.12.3</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/odbc/vsn.mk b/lib/odbc/vsn.mk
index df6db09f2f..ff023e666b 100644
--- a/lib/odbc/vsn.mk
+++ b/lib/odbc/vsn.mk
@@ -1 +1 @@
-ODBC_VSN = 2.12.4
+ODBC_VSN = 2.12.3
diff --git a/lib/os_mon/doc/src/notes.xml b/lib/os_mon/doc/src/notes.xml
index 1f169263e9..64e9f281e3 100644
--- a/lib/os_mon/doc/src/notes.xml
+++ b/lib/os_mon/doc/src/notes.xml
@@ -31,35 +31,6 @@
</header>
<p>This document describes the changes made to the OS_Mon application.</p>
-<section><title>Os_Mon 2.5</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Fix typespec of <c>cpu_sup:util()</c>.</p>
- <p>
- Own Id: OTP-15770 Aux Id: PR-2208 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- The application otp_mibs has been removed from OTP. Some
- of its components (mibs) have been moved to other apps
- (snmp), or removed completely (os_mon).</p>
- <p>
- Own Id: OTP-14984 Aux Id: OTP-15329 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Os_Mon 2.4.7</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/os_mon/vsn.mk b/lib/os_mon/vsn.mk
index 845443d329..9713f6bc6b 100644
--- a/lib/os_mon/vsn.mk
+++ b/lib/os_mon/vsn.mk
@@ -1 +1 @@
-OS_MON_VSN = 2.5
+OS_MON_VSN = 2.4.7
diff --git a/lib/public_key/doc/src/notes.xml b/lib/public_key/doc/src/notes.xml
index 3aad79ed71..f6bc0dc797 100644
--- a/lib/public_key/doc/src/notes.xml
+++ b/lib/public_key/doc/src/notes.xml
@@ -35,58 +35,6 @@
<file>notes.xml</file>
</header>
-<section><title>Public_Key 1.6.6</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- RSA options passed to crypto for encrypt and decrypt with
- public or private key.</p>
- <p>
- Own Id: OTP-15754 Aux Id: ERL-878 </p>
- </item>
- <item>
- <p>
- Fix dialyzer warnings caused by a faulty type
- specification for digest_type().</p>
- <p>
- This change updates digest_type() and the functions
- operating with this argument type to accept both 'sha1'
- and 'sha' as digest_type().</p>
- <p>
- Own Id: OTP-15776</p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Add possibility to read PEM files encrypted with old PEM
- encryption using AES-256</p>
- <p>
- Own Id: OTP-13726</p>
- </item>
- <item>
- <p>
- Relax decoding of certificates to so that "harmless"
- third party encoding errors may be accepted but not
- created by the public_key application. This adds
- acceptance of using an incorrect three character country
- code, the PKIX standard use two character country codes.
- It is also accepted that the country code is utf8 encoded
- but the specification says it should be ASCII.</p>
- <p>
- Own Id: OTP-15687 Aux Id: PR-2162 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Public_Key 1.6.5</title>
<section><title>Improvements and New Features</title>
diff --git a/lib/public_key/doc/src/public_key.xml b/lib/public_key/doc/src/public_key.xml
index 8db5620686..12bb0b21b0 100644
--- a/lib/public_key/doc/src/public_key.xml
+++ b/lib/public_key/doc/src/public_key.xml
@@ -286,7 +286,9 @@
entries as ASN.1 DER encoded entities.</fsummary>
<desc>
<p>Decodes PEM binary data and returns entries as ASN.1 DER encoded entities.</p>
- <p>Example <c>{ok, PemBin} = file:read_file("cert.pem").</c></p>
+ <p>Example <c>{ok, PemBin} = file:read_file("cert.pem").
+ PemEntries = public_key:pem_decode(PemBin).
+ </c></p>
</desc>
</func>
diff --git a/lib/public_key/vsn.mk b/lib/public_key/vsn.mk
index c68806d856..11c06fb158 100644
--- a/lib/public_key/vsn.mk
+++ b/lib/public_key/vsn.mk
@@ -1 +1 @@
-PUBLIC_KEY_VSN = 1.6.6
+PUBLIC_KEY_VSN = 1.6.5
diff --git a/lib/reltool/doc/src/notes.xml b/lib/reltool/doc/src/notes.xml
index 2d043017af..165ae6db6a 100644
--- a/lib/reltool/doc/src/notes.xml
+++ b/lib/reltool/doc/src/notes.xml
@@ -38,40 +38,7 @@
thus constitutes one section in this document. The title of each
section is the version number of Reltool.</p>
- <section><title>Reltool 0.8</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- A new element, <c>Opts</c>, can now be included in a
- <c>rel</c> tuple in the reltool release specific
- configuration format: {rel, Name, Vsn, RelApps, Opts}.</p>
- <p>
- This supports the use of <c>{rel, Name, Vsn, RelApps,
- [{load_dot_erlang, false}]}</c> to prevent the boot
- script from running the <c>.erlang</c> file.</p>
- <p>
- The incompatibilities are as follows:</p>
- <p>
- * The return from <c>reltool:get_config/1</c> and
- <c>reltool:get_config/3</c> includes the new <c>rel</c>
- tuple for all rels where the <c>load_dot_erlang</c>
- option is set to <c>false</c>.<br/> * The return from
- <c>reltool:get_config/3</c> includes the new <c>rel</c>
- tuple for ALL rels if the <c>InclDefs</c> parameter is
- set to <c>true</c>.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15571</p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>Reltool 0.7.8</title>
+ <section><title>Reltool 0.7.8</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/reltool/vsn.mk b/lib/reltool/vsn.mk
index c5aacfba38..a649a3e0c0 100644
--- a/lib/reltool/vsn.mk
+++ b/lib/reltool/vsn.mk
@@ -1 +1 @@
-RELTOOL_VSN = 0.8
+RELTOOL_VSN = 0.7.8
diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml
index 1b94c3e6d9..58a2a66c4b 100644
--- a/lib/runtime_tools/doc/src/notes.xml
+++ b/lib/runtime_tools/doc/src/notes.xml
@@ -32,22 +32,6 @@
<p>This document describes the changes made to the Runtime_Tools
application.</p>
-<section><title>Runtime_Tools 1.13.3</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Minor updates to build system necessary due to move of
- configuration of <c>crypto</c> application.</p>
- <p>
- Own Id: OTP-15262 Aux Id: OTP-15129 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Runtime_Tools 1.13.2</title>
<section><title>Improvements and New Features</title>
diff --git a/lib/runtime_tools/vsn.mk b/lib/runtime_tools/vsn.mk
index 3f38574be4..fa2f338ec2 100644
--- a/lib/runtime_tools/vsn.mk
+++ b/lib/runtime_tools/vsn.mk
@@ -1 +1 @@
-RUNTIME_TOOLS_VSN = 1.13.3
+RUNTIME_TOOLS_VSN = 1.13.2
diff --git a/lib/sasl/doc/src/notes.xml b/lib/sasl/doc/src/notes.xml
index 13546a6a62..982c874117 100644
--- a/lib/sasl/doc/src/notes.xml
+++ b/lib/sasl/doc/src/notes.xml
@@ -31,23 +31,6 @@
</header>
<p>This document describes the changes made to the SASL application.</p>
-<section><title>SASL 3.4</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- Change the first module called by erts to be names
- erl_init instead of otp_ring0. systools in sasl have been
- updated to reflect this change.</p>
- <p>
- Own Id: OTP-15336 Aux Id: PR-1825 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>SASL 3.3</title>
<section><title>Improvements and New Features</title>
diff --git a/lib/sasl/src/sasl.appup.src b/lib/sasl/src/sasl.appup.src
index 22a9027b7c..26127eae84 100644
--- a/lib/sasl/src/sasl.appup.src
+++ b/lib/sasl/src/sasl.appup.src
@@ -19,21 +19,27 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
+%% - OTP 20
%% - OTP 21
-%% - OTP 22
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"%VSN%",
- [{<<"^3\\.2$">>,[restart_new_emulator]},
+ [{<<"^3\\.0\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.1$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.2$">>,[restart_new_emulator]},
{<<"^3\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.3$">>,[restart_new_emulator]},
- {<<"^3\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
- [{<<"^3\\.2$">>,[restart_new_emulator]},
+ {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
+ [{<<"^3\\.0\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.1$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.2$">>,[restart_new_emulator]},
{<<"^3\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^3\\.3$">>,[restart_new_emulator]},
- {<<"^3\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
+ {<<"^3\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
diff --git a/lib/sasl/vsn.mk b/lib/sasl/vsn.mk
index 8838b514da..c1f80752a7 100644
--- a/lib/sasl/vsn.mk
+++ b/lib/sasl/vsn.mk
@@ -1 +1 @@
-SASL_VSN = 3.4
+SASL_VSN = 3.3
diff --git a/lib/snmp/doc/src/notes.xml b/lib/snmp/doc/src/notes.xml
index 780e0cae76..a6c3d57148 100644
--- a/lib/snmp/doc/src/notes.xml
+++ b/lib/snmp/doc/src/notes.xml
@@ -34,32 +34,7 @@
</header>
- <section><title>SNMP 5.3</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- The application otp_mibs has been removed from OTP. Some
- of its components (mibs) have been moved to other apps
- (snmp), or removed completely (os_mon).</p>
- <p>
- Own Id: OTP-14984 Aux Id: OTP-15329 </p>
- </item>
- <item>
- <p>
- [snmp|agent] Add a get-mechanism callback module (and a
- corresponding behaviour). The agent calls this module to
- handle each get (get, get-next and get-bulk) request.</p>
- <p>
- Own Id: OTP-15691 Aux Id: ERIERL-324 </p>
- </item>
- </list>
- </section>
-
-</section>
-
-<section><title>SNMP 5.2.12</title>
+ <section><title>SNMP 5.2.12</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml
index 046d6df89f..bad5815f40 100644
--- a/lib/ssh/doc/src/notes.xml
+++ b/lib/ssh/doc/src/notes.xml
@@ -30,21 +30,6 @@
<file>notes.xml</file>
</header>
-<section><title>Ssh 4.7.6</title>
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- SSH uses the new crypto API.</p>
- <p>
- Own Id: OTP-15673</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Ssh 4.7.5</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl
index 7c87591cf2..8f32966a12 100644
--- a/lib/ssh/src/ssh_connection_handler.erl
+++ b/lib/ssh/src/ssh_connection_handler.erl
@@ -594,7 +594,7 @@ handle_event(_, socket_control, {hello,_}=StateName, D) ->
{stop, {shutdown,{unexpected_getopts_return, Other}}}
end;
-handle_event(_, {info_line,_Line}, {hello,Role}=StateName, D) ->
+handle_event(_, {info_line,Line}, {hello,Role}=StateName, D) ->
case Role of
client ->
%% The server may send info lines to the client before the version_exchange
@@ -605,9 +605,9 @@ handle_event(_, {info_line,_Line}, {hello,Role}=StateName, D) ->
%% But the client may NOT send them to the server. Openssh answers with cleartext,
%% and so do we
send_bytes("Protocol mismatch.", D),
- ?call_disconnectfun_and_log_cond("Protocol mismatch.",
- "Protocol mismatch in version exchange. Client sent info lines.",
- StateName, D),
+ Msg = io_lib:format("Protocol mismatch in version exchange. Client sent info lines.~n~s",
+ [ssh_dbg:hex_dump(Line, 64)]),
+ ?call_disconnectfun_and_log_cond("Protocol mismatch.", Msg, StateName, D),
{stop, {shutdown,"Protocol mismatch in version exchange. Client sent info lines."}}
end;
diff --git a/lib/ssh/src/ssh_dbg.erl b/lib/ssh/src/ssh_dbg.erl
index 4fe15b24d3..43ac4c0ccf 100644
--- a/lib/ssh/src/ssh_dbg.erl
+++ b/lib/ssh/src/ssh_dbg.erl
@@ -60,6 +60,7 @@
cbuf_stop_clear/0,
cbuf_in/1,
cbuf_list/0,
+ hex_dump/1, hex_dump/2,
fmt_cbuf_items/0, fmt_cbuf_item/1
]).
@@ -439,3 +440,75 @@ fmt_value(#circ_buf_entry{module = M,
io_lib:format("~p:~p ~p/~p ~p~n~s",[M,L,F,A,Pid,fmt_value(V)]);
fmt_value(Value) ->
io_lib:format("~p",[Value]).
+
+%%%================================================================
+
+-record(h, {max_bytes = 65536,
+ bytes_per_line = 16,
+ address_len = 4
+ }).
+
+
+hex_dump(Data) -> hex_dump1(Data, hd_opts([])).
+
+hex_dump(X, Max) when is_integer(Max) ->
+ hex_dump(X, [{max_bytes,Max}]);
+hex_dump(X, OptList) when is_list(OptList) ->
+ hex_dump1(X, hd_opts(OptList)).
+
+hex_dump1(B, Opts) when is_binary(B) -> hex_dump1(binary_to_list(B), Opts);
+hex_dump1(L, Opts) when is_list(L), length(L) > Opts#h.max_bytes ->
+ io_lib:format("~s---- skip ~w bytes----~n", [hex_dump1(lists:sublist(L,Opts#h.max_bytes), Opts),
+ length(L) - Opts#h.max_bytes
+ ]);
+hex_dump1(L, Opts0) when is_list(L) ->
+ Opts = Opts0#h{address_len = num_hex_digits(Opts0#h.max_bytes)},
+ Result = hex_dump(L, [{0,[],[]}], Opts),
+ [io_lib:format("~*.s | ~*s | ~s~n"
+ "~*.c-+-~*c-+-~*c~n",
+ [Opts#h.address_len, lists:sublist("Address",Opts#h.address_len),
+ -3*Opts#h.bytes_per_line, lists:sublist("Hexdump",3*Opts#h.bytes_per_line),
+ "ASCII",
+ Opts#h.address_len, $-,
+ 3*Opts#h.bytes_per_line, $-,
+ Opts#h.bytes_per_line, $-
+ ]) |
+ [io_lib:format("~*.16.0b | ~s~*c | ~s~n",[Opts#h.address_len, N*Opts#h.bytes_per_line,
+ lists:reverse(Hexs),
+ 3*(Opts#h.bytes_per_line-length(Hexs)), $ ,
+ lists:reverse(Chars)])
+ || {N,Hexs,Chars} <- lists:reverse(Result)
+ ]
+ ].
+
+
+hd_opts(L) -> lists:foldl(fun hd_opt/2, #h{}, L).
+
+hd_opt({max_bytes,M}, O) -> O#h{max_bytes=M};
+hd_opt({bytes_per_line,M}, O) -> O#h{bytes_per_line=M}.
+
+
+num_hex_digits(N) when N<16 -> 1;
+num_hex_digits(N) -> trunc(math:ceil(math:log2(N)/4)).
+
+
+hex_dump([L|Cs], Result0, Opts) when is_list(L) ->
+ Result = hex_dump(L,Result0, Opts),
+ hex_dump(Cs, Result, Opts);
+
+hex_dump(Cs, [{N0,_,Chars}|_]=Lines, Opts) when length(Chars) == Opts#h.bytes_per_line ->
+ hex_dump(Cs, [{N0+1,[],[]}|Lines], Opts);
+
+hex_dump([C|Cs], [{N,Hexs,Chars}|Lines], Opts) ->
+ Asc = if
+ 16#20 =< C,C =< 16#7E -> C;
+ true -> $.
+ end,
+ Hex = io_lib:format("~2.16.0b ", [C]),
+ hex_dump(Cs, [{N, [Hex|Hexs], [Asc|Chars]} | Lines], Opts);
+
+hex_dump([], Result, _) ->
+ Result.
+
+
+
diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk
index 837da27ab0..2947f82556 100644
--- a/lib/ssh/vsn.mk
+++ b/lib/ssh/vsn.mk
@@ -1,4 +1,4 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
-SSH_VSN = 4.7.6
+SSH_VSN = 4.7.5
APP_VSN = "ssh-$(SSH_VSN)"
diff --git a/lib/ssl/doc/src/notes.xml b/lib/ssl/doc/src/notes.xml
index 10455684f1..f0231da2ad 100644
--- a/lib/ssl/doc/src/notes.xml
+++ b/lib/ssl/doc/src/notes.xml
@@ -27,73 +27,6 @@
</header>
<p>This document describes the changes made to the SSL application.</p>
-<section><title>SSL 9.3</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- The distribution handshake with TLS distribution
- (<c>inet_tls_dist</c>) does now utilize the socket option
- <c>{nodelay, true}</c>, which decreases the distribution
- setup time significantly.</p>
- <p>
- Own Id: OTP-14792</p>
- </item>
- <item>
- <p>
- Correct shutdown reason to avoid an incorrect crash
- report</p>
- <p>
- Own Id: OTP-15710 Aux Id: ERL-893 </p>
- </item>
- <item>
- <p>
- Enhance documentation and type specifications.</p>
- <p>
- Own Id: OTP-15746 Aux Id: ERIERL-333 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>
- TLS-1.0, TLS-1.1 and DTLS-1.0 are now considered legacy
- and not supported by default</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-14865</p>
- </item>
- <item>
- <p>
- Use new logger API in ssl. Introduce log levels and
- verbose debug logging for SSL.</p>
- <p>
- Own Id: OTP-15055</p>
- </item>
- <item>
- <p>
- Basic support for TLS 1.3 Server for experimental use.
- The client is not yet functional, for more information
- see the Standards Compliance chapter of the User's Guide.</p>
- <p>
- Own Id: OTP-15591</p>
- </item>
- <item>
- <p>
- Add support for PSK CCM ciphers from RFC 6655</p>
- <p>
- Own Id: OTP-15626</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>SSL 9.2.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/ssl/doc/src/ssl.xml b/lib/ssl/doc/src/ssl.xml
index 422bd6a19d..d626748af6 100644
--- a/lib/ssl/doc/src/ssl.xml
+++ b/lib/ssl/doc/src/ssl.xml
@@ -128,7 +128,7 @@
<name name="hostname"/>
</datatype>
- <datatype>
+ <datatype>
<name name="ip_address"/>
</datatype>
@@ -137,26 +137,14 @@
</datatype>
<datatype>
- <name name="protocol_version_tuple"/>
- </datatype>
-
- <datatype>
<name name="tls_version"/>
</datatype>
<datatype>
- <name name="tls_version_tuple"/>
- </datatype>
-
- <datatype>
<name name="dtls_version"/>
</datatype>
<datatype>
- <name name="dtls_version_tuple"/>
- </datatype>
-
- <datatype>
<name name="tls_legacy_version"/>
</datatype>
@@ -264,46 +252,6 @@
<name name="reason"/>
</datatype>
- <datatype>
- <name name="http_packet"/>
- </datatype>
-
- <datatype>
- <name name="http_request"/>
- </datatype>
-
- <datatype>
- <name name="http_response"/>
- </datatype>
-
- <datatype>
- <name name="http_header"/>
- </datatype>
-
- <datatype>
- <name name="http_error"/>
- </datatype>
-
- <datatype>
- <name name="http_method"/>
- </datatype>
-
- <datatype>
- <name name="http_uri"/>
- </datatype>
-
- <datatype>
- <name name="http_version"/>
- </datatype>
-
- <datatype>
- <name name="http_field"/>
- </datatype>
-
- <datatype>
- <name name="http_string"/>
- </datatype>
-
<datatype_title>TLS/DTLS OPTION DESCRIPTIONS - COMMON for SERVER and CLIENT</datatype_title>
<datatype>
@@ -1507,6 +1455,11 @@ fun(srp, Username :: string(), UserState :: term()) ->
<name since="" name="recv" arity="2" />
<name since="" name="recv" arity="3" />
<fsummary>Receives data on a socket.</fsummary>
+ <type_desc variable="HttpPacket">See the description of
+ <c>HttpPacket</c> in
+ <seealso marker="erts:erlang#decode_packet/3"><c>erlang:decode_packet/3</c></seealso>
+ in ERTS.
+ </type_desc>
<desc>
<p>Receives a packet from a socket in passive
mode. A closed socket is indicated by return value
@@ -1612,7 +1565,7 @@ fun(srp, Username :: string(), UserState :: term()) ->
</func>
<func>
- <name since="OTP 21.0" name="suite_to_str" arity="1" />
+ <name since="OTP 21.0" name="suite_to_str" arity="1" clause_i="1" />
<fsummary>Returns the string representation of a cipher suite.</fsummary>
<desc>
<p>Returns the string representation of a cipher suite.</p>
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index a3138e8c30..e3bb4df1ac 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -80,7 +80,6 @@
cipher_filters/0,
sign_algo/0,
protocol_version/0,
- protocol_version_tuple/0,
protocol_extensions/0,
session_id/0,
error_alert/0,
@@ -105,11 +104,8 @@
-type ip_address() :: inet:ip_address().
-type session_id() :: binary(). % exported
-type protocol_version() :: tls_version() | dtls_version(). % exported
--type protocol_version_tuple() :: tls_version_tuple() | dtls_version_tuple(). % exported
-type tls_version() :: 'tlsv1.2' | 'tlsv1.3' | tls_legacy_version().
--type tls_version_tuple() :: {3,0} | {3,1} | {3,2} | {3,3} | {3,4}.
-type dtls_version() :: 'dtlsv1.2' | dtls_legacy_version().
--type dtls_version_tuple() :: {254,254} | {254,253}.
-type tls_legacy_version() :: tlsv1 | 'tlsv1.1' | sslv3.
-type dtls_legacy_version() :: 'dtlsv1'.
-type verify_type() :: verify_none | verify_peer.
@@ -122,7 +118,6 @@
aes_128_ccm_8 |
aes_256_ccm_8 |
chacha20_poly1305 |
- null |
legacy_cipher(). % exported
-type legacy_cipher() :: rc4_128 |
des_cbc |
@@ -130,8 +125,7 @@
-type hash() :: sha |
sha2() |
- legacy_hash() |
- null. % exported
+ legacy_hash(). % exported
-type sha2() :: sha224 |
sha256 |
@@ -162,7 +156,7 @@
srp_rsa| srp_dss |
psk | dhe_psk | rsa_psk |
dh_anon | ecdh_anon | srp_anon |
- any | null. %% TLS 1.3 , exported
+ any. %% TLS 1.3 , exported
-type erl_cipher_suite() :: #{key_exchange := kex_algo(),
cipher := cipher(),
mac := hash() | aead,
@@ -244,73 +238,6 @@
bad_certificate_hash_value |
unknown_psk_identity |
no_application_protocol.
--type http_packet() :: http_request() |
- http_response() |
- http_header() |
- http_eoh |
- http_error().
--type http_request() :: {http_request, http_method(), http_uri(), http_version()}.
--type http_response() :: {http_response, http_version(), integer(), http_string()}.
--type http_header() :: {http_header, integer(), http_field(), Reserved :: term(),
- Value :: http_string()}.
--type http_error() :: {http_error, http_string()}.
--type http_method() :: 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE'.
--type http_uri() :: any().
--type http_version() :: {Major :: integer(), Minor :: integer()}.
--type http_field() :: 'Cache-Control' |
- 'Connection' |
- 'Date' |
- 'Pragma' |
- 'Transfer-Encoding' |
- 'Upgrade' |
- 'Via' |
- 'Accept' |
- 'Accept-Charset' |
- 'Accept-Encoding' |
- 'Accept-Language' |
- 'Authorization' |
- 'From' |
- 'Host' |
- 'If-Modified-Since' |
- 'If-Match' |
- 'If-None-Match' |
- 'If-Range' |
- 'If-Unmodified-Since' |
- 'Max-Forwards' |
- 'Proxy-Authorization' |
- 'Range' |
- 'Referer' |
- 'User-Agent' |
- 'Age' |
- 'Location' |
- 'Proxy-Authenticate' |
- 'Public' |
- 'Retry-After' |
- 'Server' |
- 'Vary' |
- 'Warning' |
- 'Www-Authenticate' |
- 'Allow' |
- 'Content-Base' |
- 'Content-Encoding' |
- 'Content-Language' |
- 'Content-Length' |
- 'Content-Location' |
- 'Content-Md5' |
- 'Content-Range' |
- 'Content-Type' |
- 'Etag' |
- 'Expires' |
- 'Last-Modified' |
- 'Accept-Ranges' |
- 'Set-Cookie' |
- 'Set-Cookie2' |
- 'X-Forwarded-For' |
- 'Cookie' |
- 'Keep-Alive' |
- 'Proxy-Connection' |
- http_string().
--type http_string() :: string() | binary().
%% -------------------------------------------------------------------------------------------------------
-type common_option() :: {protocol, protocol()} |
@@ -841,7 +768,8 @@ send(#sslsocket{pid = {ListenSocket, #config{transport_info = Info}}}, Data) ->
-spec recv(SslSocket, Length) -> {ok, Data} | {error, reason()} when
SslSocket :: sslsocket(),
Length :: integer(),
- Data :: binary() | list() | http_packet().
+ Data :: binary() | list() | HttpPacket,
+ HttpPacket :: any().
recv(Socket, Length) ->
recv(Socket, Length, infinity).
@@ -849,8 +777,9 @@ recv(Socket, Length) ->
-spec recv(SslSocket, Length, Timeout) -> {ok, Data} | {error, reason()} when
SslSocket :: sslsocket(),
Length :: integer(),
- Data :: binary() | list() | http_packet(),
- Timeout :: timeout().
+ Data :: binary() | list() | HttpPacket,
+ Timeout :: timeout(),
+ HttpPacket :: any().
recv(#sslsocket{pid = [Pid|_]}, Length, Timeout) when is_pid(Pid),
(is_integer(Timeout) andalso Timeout >= 0) or (Timeout == infinity)->
@@ -1083,27 +1012,23 @@ eccs() ->
%%--------------------------------------------------------------------
-spec eccs(Version) -> NamedCurves when
- Version :: protocol_version() | protocol_version_tuple(),
+ Version :: protocol_version(),
NamedCurves :: [named_curve()].
%% Description: returns the curves supported for a given version of
%% ssl/tls.
%%--------------------------------------------------------------------
-eccs({3,0}) ->
+eccs(sslv3) ->
[];
-eccs({3,_}) ->
- Curves = tls_v1:ecc_curves(all),
- eccs_filter_supported(Curves);
-eccs({254,_} = Version) ->
- eccs(dtls_v1:corresponding_tls_version(Version));
+eccs('dtlsv1') ->
+ eccs('tlsv1.1');
+eccs('dtlsv1.2') ->
+ eccs('tlsv1.2');
eccs(Version) when Version == 'tlsv1.2';
Version == 'tlsv1.1';
- Version == tlsv1;
- Version == sslv3 ->
- eccs(tls_record:protocol_version(Version));
-eccs(Version) when Version == 'dtlsv1.2';
- Version == 'dtlsv1'->
- eccs(dtls_v1:corresponding_tls_version(dtls_record:protocol_version(Version))).
+ Version == tlsv1 ->
+ Curves = tls_v1:ecc_curves(all),
+ eccs_filter_supported(Curves).
eccs_filter_supported(Curves) ->
CryptoCurves = crypto:ec_curves(),
@@ -1387,7 +1312,13 @@ tls_version({254, _} = Version) ->
%%--------------------------------------------------------------------
-spec suite_to_str(CipherSuite) -> string() when
- CipherSuite :: erl_cipher_suite().
+ CipherSuite :: erl_cipher_suite();
+ (CipherSuite) -> string() when
+ %% For internal use!
+ CipherSuite :: #{key_exchange := null,
+ cipher := null,
+ mac := null,
+ prf := null}.
%%
%% Description: Return the string representation of a cipher suite.
%%--------------------------------------------------------------------
diff --git a/lib/ssl/test/ssl_basic_SUITE.erl b/lib/ssl/test/ssl_basic_SUITE.erl
index 56e6117cc4..20d9f28512 100644
--- a/lib/ssl/test/ssl_basic_SUITE.erl
+++ b/lib/ssl/test/ssl_basic_SUITE.erl
@@ -1832,14 +1832,12 @@ eccs() ->
eccs(Config) when is_list(Config) ->
[_|_] = All = ssl:eccs(),
- [] = SSL3 = ssl:eccs({3,0}),
- [_|_] = Tls = ssl:eccs({3,1}),
- [_|_] = Tls1 = ssl:eccs({3,2}),
- [_|_] = Tls2 = ssl:eccs({3,3}),
[] = SSL3 = ssl:eccs(sslv3),
[_|_] = Tls = ssl:eccs(tlsv1),
[_|_] = Tls1 = ssl:eccs('tlsv1.1'),
[_|_] = Tls2 = ssl:eccs('tlsv1.2'),
+ [_|_] = Tls1 = ssl:eccs('dtlsv1'),
+ [_|_] = Tls2 = ssl:eccs('dtlsv1.2'),
%% ordering is currently unverified by the test
true = lists:sort(All) =:= lists:usort(SSL3 ++ Tls ++ Tls1 ++ Tls2),
ok.
diff --git a/lib/ssl/vsn.mk b/lib/ssl/vsn.mk
index 3c66ffd852..98070f794c 100644
--- a/lib/ssl/vsn.mk
+++ b/lib/ssl/vsn.mk
@@ -1 +1 @@
-SSL_VSN = 9.3
+SSL_VSN = 9.2.2
diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml
index 90e9827ec8..65650a25c7 100644
--- a/lib/stdlib/doc/src/notes.xml
+++ b/lib/stdlib/doc/src/notes.xml
@@ -31,231 +31,6 @@
</header>
<p>This document describes the changes made to the STDLIB application.</p>
-<section><title>STDLIB 3.9</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p> Fix a bug in <c>string:lexemes/2</c>. </p> <p> The
- bug was found when optimizing the handling of deep lists
- of Unicode characters in the <c>string</c> module. </p>
- <p>
- Own Id: OTP-15649</p>
- </item>
- <item>
- <p>A bug has been fixed in the <c>maps</c> implementation
- that could cause a crash or memory usage to grow until
- the machine ran out of memory. This could happen when
- inserting a new key-value pair with a key <c>K1</c>
- containing a binary <c>B1</c> into a map <c>M</c> having
- a key <c>K2</c> with a binary <c>B2</c> if the following
- conditions were met:</p> <list> <item><c>B1 =/=
- B2</c></item> <item><c>size(B1) >= 4294967296</c></item>
- <item><c>size(B2) >= 4294967296</c></item>
- <item><c>size(M) >= 32</c></item> <item><c>(size(B1) rem
- 4294967296) == (size(B2) rem 4294967296)</c></item>
- <item>the first <c>(size(B1) rem 4294967296)</c> bytes
- are the same both in <c>B1</c> and <c>B2</c></item>
- <item>substituting <c>B1</c> in <c>K1</c> with <c>B2</c>
- would create a term with the same value as
- <c>K2</c></item> </list> <p>The root cause of the problem
- is that the <c>maps</c> implementation only hashed the
- first <c>(X rem 4294967296)</c> bytes of binaries so that
- different binaries could get the same hash value
- independently of the hash seed.</p>
- <p>
- Own Id: OTP-15707</p>
- </item>
- <item>
- <p> Since the introduction of the stack trace variable,
- the Erlang Pretty Printer has left out the exception
- class <c>throw</c> even when the stack trace variable
- cannot be left out, which is not correct Erlang code. The
- fix is to always include the exception class
- <c>throw</c>. </p>
- <p>
- Own Id: OTP-15751</p>
- </item>
- <item>
- <p><c>record_info/2</c> is a pseudo-function that
- requires literal arguments known at compile time.
- Therefore, the following usage is illegal: <c>fun
- record/info/2</c>. The compiler would crash when during
- compilation of that kind of code. Corrected to issue a
- compilation error.</p>
- <p>
- Own Id: OTP-15760 Aux Id: ERL-907 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p> A new <c>rand</c> module algorithm, <c>exro928ss</c>
- (Xoroshiro928**), has been implemented. It has got a
- really long period and good statistical quality for all
- output bits, while still being only about 50% slower than
- the default algorithm. </p><p> The same generator is also
- used as a long period counter in a new <c>crypto</c>
- plugin for the <c>rand</c> module, algorithm
- <c>crypto_aes</c>. This plugin uses AES-256 to scramble
- the counter which buries any detectable statistical
- artifacts. Scrambling is done in chunks which are cached
- to get good amortized speed (about half of the default
- algorithm). </p>
- <p>
- Own Id: OTP-14461 Aux Id: PR-1857 </p>
- </item>
- <item>
- <p>
- Types related to server naming and starting have been
- exported from <c>gen_statem</c>. These are:
- <c>server_name/0</c>, <c>server_ref/0</c>,
- <c>start_opt/0</c>, <c>start_ret/0</c> and
- <c>enter_loop_opt/0</c>.</p>
- <p>
- Own Id: OTP-14724 Aux Id: PR-2056 </p>
- </item>
- <item>
- <p>
- The default algorithm for the <c>rand</c> module has been
- changed to <c>exsss</c> (Xorshift116**) which is a
- combination of the Xorshift116 (<c>exsp</c>) state update
- and a new scrambler "StarStar" from the 2018 paper
- "Scrambled Linear Pseudorandom Number Generators" by
- David Blackman and Sebastiano Vigna. This combination
- should not have the caveat of weak low bits that the
- previous default algorithm(s) have had, with the cost of
- about 10% lower speed. See GitHub pull request #1969.</p>
- <p>
- Own Id: OTP-14731 Aux Id: PR-1969 </p>
- </item>
- <item>
- <p>
- The generic state machine behaviour <c>gen_statem</c> has
- gotten code cleanup and documentation improvements from
- GitHub Pull Request #1855, even though the PR itself was
- rejected.</p>
- <p>
- Own Id: OTP-14737 Aux Id: PR-1855 </p>
- </item>
- <item>
- <p>
- Update Unicode specification to version 11.0.</p>
- <p>
- Own Id: OTP-15111</p>
- </item>
- <item>
- <p>
- ETS option <c>write_concurrency</c> now also affects and
- improves the scalability of <c>ordered_set</c> tables.
- The implementation is based on a data structure called
- contention adapting search tree, where the lock
- granularity adapts to the actual amount of concurrency
- exploited by the applications in runtime.</p>
- <p>
- Own Id: OTP-15128</p>
- </item>
- <item>
- <p>
- Optimized <c>maps:new/0</c> with trivial Erlang
- implementation, making use of literal terms (the empty
- map) not needing dynamic heap allocation.</p>
- <p>
- Own Id: OTP-15200 Aux Id: PR-1878 </p>
- </item>
- <item>
- <p>The <c>gen_*</c> behaviours have been changed so that
- if logging of the last N messages through
- <c>sys:log/2,3</c> is active for the server, this log is
- included in the terminate report.</p> <p>To accomplish
- this the format of "System Events" as defined in the man
- page for <c>sys</c> has been clarified and cleaned up, a
- new function <c>sys:get_log/1</c> has been added, and
- <c>sys:get_debug/3</c> has been deprecated. Due to these
- changes, code that relies on the internal badly
- documented format of "System Events", need to be
- corrected.</p>
- <p>
- *** POTENTIAL INCOMPATIBILITY ***</p>
- <p>
- Own Id: OTP-15381</p>
- </item>
- <item>
- <p>
- The <c>gen_statem</c> behaviour engine loop has been
- optimized for better performance in particular when the
- callback module returns some actions, that is better
- performance for more realistic applications than the Echo
- Benchmark.</p>
- <p>
- Own Id: OTP-15452</p>
- </item>
- <item>
- <p>
- The <c>persistent_term</c> functions <c>put/2</c> and
- <c>erase/1</c> are now yeliding.</p>
- <p>
- Own Id: OTP-15615</p>
- </item>
- <item>
- <p>Previously, all ETS tables used centralized counter
- variables to keep track of the number of items stored and
- the amount of memory consumed. These counters can cause
- scalability problems (especially on big NUMA systems).
- This change adds an implementation of a decentralized
- counter and modifies the implementation of ETS so that
- ETS tables of type <c>ordered_set</c> with
- <c>write_concurrency</c> enabled use the decentralized
- counter. Experiments indicate that this change
- substantially improves the scalability of ETS
- <c>ordered_set</c> tables with <c>write_concurrency</c>
- enabled in scenarios with frequent <c>ets:insert/2</c>
- and <c>ets:delete/2</c> calls.</p>
- <p>
- Own Id: OTP-15623 Aux Id: PR-2190 </p>
- </item>
- <item>
- <p> Use <c>ssh</c> instead of <c>rsh</c> as the default
- remote shell. </p>
- <p>
- Own Id: OTP-15633 Aux Id: PR-1787 </p>
- </item>
- <item>
- <p>Added <c>beam_lib:strip/2</c> and friends, which
- accept a list of chunks that should be preserved when
- stripping.</p>
- <p>
- Own Id: OTP-15680 Aux Id: PR-2114 </p>
- </item>
- <item>
- <p> There are new compiler options <c>nowarn_removed</c>
- and <c>{nowarn_removed,Items}</c> to suppress warnings
- for functions and modules that have been removed from
- OTP.</p>
- <p>
- Own Id: OTP-15749 Aux Id: ERL-904 </p>
- </item>
- <item>
- <p> Let the Erlang Pretty Printer put atomic parts on the
- same line. </p>
- <p>
- Own Id: OTP-15755</p>
- </item>
- <item>
- <p> Add option <c>quote_singleton_atom_types</c> to the
- Erlang Pretty Printer's functions. Setting the option to
- <c>true</c> adds quotes to all singleton atom types. </p>
- <p>
- Own Id: OTP-15756</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>STDLIB 3.8.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/stdlib/src/stdlib.app.src b/lib/stdlib/src/stdlib.app.src
index ecb514e9f3..9cd425db9a 100644
--- a/lib/stdlib/src/stdlib.app.src
+++ b/lib/stdlib/src/stdlib.app.src
@@ -108,7 +108,7 @@
dets]},
{applications, [kernel]},
{env, []},
- {runtime_dependencies, ["sasl-3.0","kernel-6.0","erts-10.4","crypto-3.3",
+ {runtime_dependencies, ["sasl-3.0","kernel-6.0","erts-@OTP-15128@","crypto-3.3",
"compiler-5.0"]}
]}.
diff --git a/lib/stdlib/src/stdlib.appup.src b/lib/stdlib/src/stdlib.appup.src
index ff92c1267f..08612ed17f 100644
--- a/lib/stdlib/src/stdlib.appup.src
+++ b/lib/stdlib/src/stdlib.appup.src
@@ -19,15 +19,22 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
+%% - OTP 20
%% - OTP 21
-%% - OTP 22
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"%VSN%",
- [{<<"^3\\.5$">>,[restart_new_emulator]},
+ [{<<"^3\\.4$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.5$">>,[restart_new_emulator]},
{<<"^3\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.6$">>,[restart_new_emulator]},
@@ -36,9 +43,15 @@
{<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.7\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.8$">>,[restart_new_emulator]},
- {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.8\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
- [{<<"^3\\.5$">>,[restart_new_emulator]},
+ {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
+ [{<<"^3\\.4$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.4\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
+ {<<"^3\\.5$">>,[restart_new_emulator]},
{<<"^3\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.6$">>,[restart_new_emulator]},
@@ -47,5 +60,4 @@
{<<"^3\\.7\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.7\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.8$">>,[restart_new_emulator]},
- {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^3\\.8\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
+ {<<"^3\\.8\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
diff --git a/lib/stdlib/vsn.mk b/lib/stdlib/vsn.mk
index 07224afdc9..6471dc70e0 100644
--- a/lib/stdlib/vsn.mk
+++ b/lib/stdlib/vsn.mk
@@ -1 +1 @@
-STDLIB_VSN = 3.9
+STDLIB_VSN = 3.8.1
diff --git a/lib/syntax_tools/doc/src/notes.xml b/lib/syntax_tools/doc/src/notes.xml
index a2dd78f280..772f5e6e04 100644
--- a/lib/syntax_tools/doc/src/notes.xml
+++ b/lib/syntax_tools/doc/src/notes.xml
@@ -32,34 +32,6 @@
<p>This document describes the changes made to the Syntax_Tools
application.</p>
-<section><title>Syntax_Tools 2.2</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p> Correct links in the documentation. </p>
- <p>
- Own Id: OTP-15761</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Syntax_Tools 2.1.7</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/syntax_tools/vsn.mk b/lib/syntax_tools/vsn.mk
index 0ace11772d..538c71dc24 100644
--- a/lib/syntax_tools/vsn.mk
+++ b/lib/syntax_tools/vsn.mk
@@ -1 +1 @@
-SYNTAX_TOOLS_VSN = 2.2
+SYNTAX_TOOLS_VSN = 2.1.7
diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml
index fd41e2cbeb..2191ebe2df 100644
--- a/lib/tools/doc/src/notes.xml
+++ b/lib/tools/doc/src/notes.xml
@@ -31,49 +31,6 @@
</header>
<p>This document describes the changes made to the Tools application.</p>
-<section><title>Tools 3.2</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- Add <c>cprof</c> and <c>tags</c> modules to .app file so
- that they are included in releases.</p>
- <p>
- Own Id: OTP-15534 Aux Id: PR-2078 </p>
- </item>
- <item>
- <p>
- Improved documentation parsing in emacs erldoc
- functionality.</p>
- <p>
- Own Id: OTP-15699 Aux Id: PR-2184 </p>
- </item>
- </list>
- </section>
-
-
- <section><title>Improvements and New Features</title>
- <list>
- <item>
- <p>The <c>cover</c> tool now uses the <c>counters</c>
- module instead of <c>ets</c> for updating the counters
- for how many times a line has been executed. By default,
- Cover will work with distributed nodes, but a new
- function <c>cover:local_only/0</c> allows running the
- Cover in a restricted but faster local-only mode.</p>
- <p>The increase in speed will vary depending on the type
- of code being cover-compiled, but as an example, the
- compiler test suite runs more than twice as fast with the
- new Cover.</p>
- <p>
- Own Id: OTP-15575</p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Tools 3.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/tools/vsn.mk b/lib/tools/vsn.mk
index 191a458c62..5700885549 100644
--- a/lib/tools/vsn.mk
+++ b/lib/tools/vsn.mk
@@ -1 +1 @@
-TOOLS_VSN = 3.2
+TOOLS_VSN = 3.1
diff --git a/lib/wx/doc/src/notes.xml b/lib/wx/doc/src/notes.xml
index 0c3374091d..33d02e22ba 100644
--- a/lib/wx/doc/src/notes.xml
+++ b/lib/wx/doc/src/notes.xml
@@ -32,23 +32,6 @@
<p>This document describes the changes made to the wxErlang
application.</p>
-<section><title>Wx 1.8.8</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- All incorrect (that is, all) uses of "can not" has been
- corrected to "cannot" in source code comments,
- documentation, examples, and so on.</p>
- <p>
- Own Id: OTP-14282 Aux Id: PR-1891 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Wx 1.8.7</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/wx/vsn.mk b/lib/wx/vsn.mk
index 91d15de3a9..dac219fa98 100644
--- a/lib/wx/vsn.mk
+++ b/lib/wx/vsn.mk
@@ -1 +1 @@
-WX_VSN = 1.8.8
+WX_VSN = 1.8.7
diff --git a/lib/xmerl/doc/src/notes.xml b/lib/xmerl/doc/src/notes.xml
index 37973d0dba..d6b6dfdfb5 100644
--- a/lib/xmerl/doc/src/notes.xml
+++ b/lib/xmerl/doc/src/notes.xml
@@ -32,21 +32,6 @@
<p>This document describes the changes made to the Xmerl application.</p>
-<section><title>Xmerl 1.3.21</title>
-
- <section><title>Fixed Bugs and Malfunctions</title>
- <list>
- <item>
- <p>
- A typo in an error printout has been fixed.</p>
- <p>
- Own Id: OTP-14703 Aux Id: PR-1964 </p>
- </item>
- </list>
- </section>
-
-</section>
-
<section><title>Xmerl 1.3.20</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/xmerl/vsn.mk b/lib/xmerl/vsn.mk
index 08696606e6..31ffa6e749 100644
--- a/lib/xmerl/vsn.mk
+++ b/lib/xmerl/vsn.mk
@@ -1 +1 @@
-XMERL_VSN = 1.3.21
+XMERL_VSN = 1.3.20