summaryrefslogtreecommitdiff
path: root/lib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel')
-rw-r--r--lib/kernel/doc/src/erpc.xml18
-rw-r--r--lib/kernel/doc/src/gen_sctp.xml6
-rw-r--r--lib/kernel/doc/src/inet.xml6
-rw-r--r--lib/kernel/doc/src/net_kernel.xml2
-rw-r--r--lib/kernel/doc/src/notes.xml299
-rw-r--r--lib/kernel/src/kernel.app.src2
-rw-r--r--lib/kernel/src/kernel.appup.src26
-rw-r--r--lib/kernel/vsn.mk2
8 files changed, 324 insertions, 37 deletions
diff --git a/lib/kernel/doc/src/erpc.xml b/lib/kernel/doc/src/erpc.xml
index 7b1791765c..a7b2c7fe1f 100644
--- a/lib/kernel/doc/src/erpc.xml
+++ b/lib/kernel/doc/src/erpc.xml
@@ -383,7 +383,7 @@
</func>
<func>
- <name name="check_response" arity="3" since="OTP @OTP-17784@"/>
+ <name name="check_response" arity="3" since="OTP 25.0"/>
<fsummary>Check if a message is a response corresponding to a
previously sent call request.</fsummary>
<desc>
@@ -704,7 +704,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="receive_response" arity="3" since="OTP @OTP-17784@"/>
+ <name name="receive_response" arity="3" since="OTP 25.0"/>
<fsummary>Receive a call response corresponding to a
previously sent call request.</fsummary>
<desc>
@@ -788,7 +788,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="reqids_add" arity="3" since="OTP @OTP-17784@"/>
+ <name name="reqids_add" arity="3" since="OTP 25.0"/>
<fsummary>Save a request identifier.</fsummary>
<desc>
<p>
@@ -801,7 +801,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="reqids_new" arity="0" since="OTP @OTP-17784@"/>
+ <name name="reqids_new" arity="0" since="OTP 25.0"/>
<fsummary>Create a new empty request identifier collection.</fsummary>
<desc>
<p>
@@ -831,7 +831,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="reqids_size" arity="1" since="OTP @OTP-17784@"/>
+ <name name="reqids_size" arity="1" since="OTP 25.0"/>
<fsummary>Get size of a request identifier collection.</fsummary>
<desc>
<p>
@@ -842,7 +842,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="reqids_to_list" arity="1" since="OTP @OTP-17784@"/>
+ <name name="reqids_to_list" arity="1" since="OTP 25.0"/>
<fsummary>Get a list a request identifier/label associations in a collection.</fsummary>
<desc>
<p>
@@ -944,7 +944,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="send_request" arity="4" clause_i="2" since="OTP @OTP-17784@"/>
+ <name name="send_request" arity="4" clause_i="2" since="OTP 25.0"/>
<fsummary>Send a request to evaluate a function call on a node.</fsummary>
<desc>
<p>
@@ -971,7 +971,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="send_request" arity="6" since="OTP @OTP-17784@"/>
+ <name name="send_request" arity="6" since="OTP 25.0"/>
<fsummary>Send a request to evaluate a function call on a node.</fsummary>
<desc>
<p>
@@ -1079,7 +1079,7 @@ my_call(Node, Module, Function, Args, Timeout) ->
</func>
<func>
- <name name="wait_response" arity="3" since="OTP @OTP-17784@"/>
+ <name name="wait_response" arity="3" since="OTP 25.0"/>
<fsummary>Wait or poll for a call response corresponding to a previously
sent call request.</fsummary>
<desc>
diff --git a/lib/kernel/doc/src/gen_sctp.xml b/lib/kernel/doc/src/gen_sctp.xml
index f8b5530069..f340a573e5 100644
--- a/lib/kernel/doc/src/gen_sctp.xml
+++ b/lib/kernel/doc/src/gen_sctp.xml
@@ -305,7 +305,7 @@ connect(Socket, Ip, Port>,
</func>
<func>
- <name name="connectx_init" arity="3" since="OTP @OTP-17951@"/>
+ <name name="connectx_init" arity="3" since="OTP 25.0"/>
<fsummary>Same as <c>connectx_init(Socket, SockAddrs, Opts, infinity)</c>..</fsummary>
<desc>
<p>Similar to
@@ -320,7 +320,7 @@ connect(Socket, Ip, Port>,
</func>
<func>
- <name name="connectx_init" arity="4" since="OTP @OTP-17951@"/>
+ <name name="connectx_init" arity="4" since="OTP 25.0"/>
<fsummary>Same as <c>connectx_init(Socket, Addrs, Port, Opts, infinity)</c>..</fsummary>
<desc>
<p>Same as <c>connectx_init(<anno>Socket</anno>, <anno>Addrs</anno>,
@@ -329,7 +329,7 @@ connect(Socket, Ip, Port>,
</func>
<func>
- <name name="connectx_init" arity="5" since="OTP @OTP-17951@"/>
+ <name name="connectx_init" arity="5" since="OTP 25.0"/>
<fsummary>Initiate a new association for socket <c>Socket</c>, with a
peer (SCTP server socket).</fsummary>
<desc>
diff --git a/lib/kernel/doc/src/inet.xml b/lib/kernel/doc/src/inet.xml
index 145a5a9751..cb709e73c4 100644
--- a/lib/kernel/doc/src/inet.xml
+++ b/lib/kernel/doc/src/inet.xml
@@ -783,7 +783,7 @@ get_tcpi_sacked(Sock) ->
</func>
<func>
- <name name="is_ip_address" arity="1" since="OTP @OTP-17923@"/>
+ <name name="is_ip_address" arity="1" since="OTP 25.0"/>
<fsummary>Tests if <c>IPAddress</c> is an IPv4 or IPv6 address tuple.</fsummary>
<desc>
<p>Tests if <c>IPAddress</c> is an
@@ -793,7 +793,7 @@ get_tcpi_sacked(Sock) ->
</func>
<func>
- <name name="is_ipv4_address" arity="1" since="OTP @OTP-17923@"/>
+ <name name="is_ipv4_address" arity="1" since="OTP 25.0"/>
<fsummary>Tests if <c>IPAddress</c> is an IPv4 address tuple.</fsummary>
<desc>
<p>Tests if <c>IPAddress</c> is an
@@ -803,7 +803,7 @@ get_tcpi_sacked(Sock) ->
</func>
<func>
- <name name="is_ipv6_address" arity="1" since="OTP @OTP-17923@"/>
+ <name name="is_ipv6_address" arity="1" since="OTP 25.0"/>
<fsummary>Tests if <c>IPAddress</c> is an IPv6 address tuple.</fsummary>
<desc>
<p>Tests if <c>IPAddress</c> is an
diff --git a/lib/kernel/doc/src/net_kernel.xml b/lib/kernel/doc/src/net_kernel.xml
index f56d95f094..f0d9d46b08 100644
--- a/lib/kernel/doc/src/net_kernel.xml
+++ b/lib/kernel/doc/src/net_kernel.xml
@@ -150,7 +150,7 @@ $ <input>erl -sname foobar</input></pre>
</func>
<func>
- <name name="get_state" arity="0" since="OTP @OTP-17558@"/>
+ <name name="get_state" arity="0" since="OTP 25.0"/>
<fsummary>Get various distribution state.</fsummary>
<desc>
<p>Get the current state of the distribution for the local node.</p>
diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml
index 23b040570b..69433c6921 100644
--- a/lib/kernel/doc/src/notes.xml
+++ b/lib/kernel/doc/src/notes.xml
@@ -31,6 +31,305 @@
</header>
<p>This document describes the changes made to the Kernel application.</p>
+<section><title>Kernel 8.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The DNS resolver implementation has been rewritten to
+ validate replies more thoroughly, and a bit optimized to
+ create less garbage.</p>
+ <p>
+ Own Id: OTP-17323</p>
+ </item>
+ <item>
+ <p>
+ The socket option 'reuseaddr' is *no longer* ignored on
+ Windows.</p>
+ <p>
+ Own Id: OTP-17447 Aux Id: GH-4819 </p>
+ </item>
+ <item>
+ <p>
+ Fix bug where using the atoms <c>string</c> or
+ <c>report</c> as the format when calling
+ <c>logger:log(Level, Format, Args)</c> (or any other
+ logging function) would cause a crash or incorrect
+ logging.</p>
+ <p>
+ Own Id: OTP-17551 Aux Id: GH-5071 PR-5075 </p>
+ </item>
+ <item>
+ <p> As of OTP 25, <c>global</c> will by default prevent
+ overlapping partitions due to network issues by actively
+ disconnecting from nodes that reports that they have lost
+ connections to other nodes. This will cause fully
+ connected partitions to form instead of leaving the
+ network in a state with overlapping partitions. </p> <p>
+ Prevention of overlapping partitions can be disabled
+ using the <seeapp
+ marker="kernel_app#prevent_overlapping_partitions"><c>prevent_overlapping_partitions</c></seeapp>
+ <c>kernel(6)</c> parameter, making <c>global</c> behave
+ like it used to do. This is, however, problematic for all
+ applications expecting a fully connected network to be
+ provided, such as for example <c>mnesia</c>, but also for
+ <c>global</c> itself. A network of overlapping partitions
+ might cause the internal state of <c>global</c> to become
+ inconsistent. Such an inconsistency can remain even after
+ such partitions have been brought together to form a
+ fully connected network again. The effect on other
+ applications that expects that a fully connected network
+ is maintained may vary, but they might misbehave in very
+ subtle hard to detect ways during such a partitioning.
+ Since you might get hard to detect issues without this
+ fix, you are <i>strongly</i> advised <i>not</i> to
+ disable this fix. Also note that this fix <i>has</i> to
+ be enabled on <i>all</i> nodes in the network in order to
+ work properly. </p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-17911 Aux Id: PR-5687, PR-5611, OTP-17843 </p>
+ </item>
+ <item>
+ <p> Starting the helper program for name resolving;
+ <c>inet_gethost</c>, has been improved to use an absolute
+ file system path to ensure that the right program is
+ started. </p><p> If the helper program can not be started
+ - the system now halts, to avoid running with a silently
+ broken name resolver. </p>
+ <p>
+ Own Id: OTP-17958 Aux Id: OTP-17978 </p>
+ </item>
+ <item>
+ <p>
+ The type specification for <c>inet_res:getbyname/2,3</c>
+ has been corrected to reflect that it can return peculiar
+ <c>#hostent{}</c> records.</p>
+ <p>
+ Own Id: OTP-17986 Aux Id: PR-5412 </p>
+ </item>
+ <item>
+ <p><c>code:module_status/1</c> would always report BEAM
+ files loaded from an archive as <c>modified</c>, and
+ <c>code:modified_modules/0</c> would always return the
+ name of all modules loaded from archives.</p>
+ <p>
+ Own Id: OTP-17990 Aux Id: GH-5801 </p>
+ </item>
+ <item>
+ <p>
+ In logger fix file handler shutdown delay by using erlang
+ timers instead of the timer modul's timers.</p>
+ <p>
+ Own Id: OTP-18001 Aux Id: GH-5780 PR-5829 </p>
+ </item>
+ <item>
+ <p>
+ Fix the metadata in log events generated by logger on
+ failure to not contain the original log event's metadata.</p>
+ <p>
+ Own Id: OTP-18003 Aux Id: PR-5771 </p>
+ </item>
+ <item>
+ <p>
+ Fix logger file backend to re-create the log folder if it
+ has been deleted.</p>
+ <p>
+ Own Id: OTP-18015 Aux Id: GH-5828 PR-5845 </p>
+ </item>
+ <item>
+ <p>
+ [socket] Encode of sockaddr has been improved.</p>
+ <p>
+ Own Id: OTP-18020</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ The net module now works on Windows.</p>
+ <p>
+ Own Id: OTP-16464</p>
+ </item>
+ <item>
+ <p>
+ An Erlang installation directory is now relocatable on
+ the file system given that the paths in the
+ installation's <c>RELEASES</c> file are paths that are
+ relative to the installations root directory. The
+ <c>`release_handler:create_RELEASES/4</c> function can
+ generate a <c>RELEASES</c> file with relative paths if
+ its <c>RootDir</c> parameter is set to the empty string.</p>
+ <p>
+ Own Id: OTP-17304</p>
+ </item>
+ <item>
+ <p>The following distribution flags are now mandatory:
+ <c>DFLAG_BIT_BINARIES</c>, <c>DFLAG_EXPORT_PTR_TAG</c>,
+ <c>DFLAG_MAP_TAGS</c>, <c>DFLAG_NEW_FLOATS</c>, and
+ <c>DFLAG_FUN_TAGS</c>. This mainly concerns libraries or
+ application that implement the distribution protocol
+ themselves.</p>
+ <p>
+ Own Id: OTP-17318 Aux Id: PR-4972 </p>
+ </item>
+ <item>
+ <p>
+ Fix <c>os:cmd</c> to work on Android OS.</p>
+ <p>
+ Own Id: OTP-17479 Aux Id: PR-4917 </p>
+ </item>
+ <item>
+ <p>
+ The configuration files <seecom
+ marker="erts:erl"><c>.erlang</c></seecom>, <seeguide
+ marker="system/reference_manual:distributed"><c>.erlang.cookie</c></seeguide>
+ and <seeerl
+ marker="stdlib:beam_lib#.erlang.crypt"><c>.erlang.crypt</c></seeerl>
+ can now be located in the XDG Config Home directory.</p>
+ <p>
+ See the documentation for each file and
+ <c>filename:basedir/2</c> for more details.</p>
+ <p>
+ Own Id: OTP-17554 Aux Id: GH-5016 PR-5408 OTP-17821 </p>
+ </item>
+ <item>
+ <p>
+ Dynamic node name improvements: <c>erlang:is_alive/0</c>
+ changed to return true for pending dynamic node name and
+ new function <c>net_kernel:get_state/0</c>.</p>
+ <p>
+ Own Id: OTP-17558 Aux Id: OTP-17538, PR-5111, GH-5402 </p>
+ </item>
+ <item>
+ <p>
+ The types for callback result types in <c>gen_statem</c>
+ has bee augmented with arity 2 types where it is possible
+ for a callback module to specify the type of the callback
+ data, so the callback module can get type validation of
+ it.</p>
+ <p>
+ Own Id: OTP-17589 Aux Id: PR-4926 </p>
+ </item>
+ <item>
+ <p>
+ The tagged tuple tests and fun-calls have been optimized
+ and are now a little bit cheaper than previously.</p>
+ <p>
+ These optimizations become possible after making sure
+ that all boxed terms have at least one word allocated
+ after the arity word. This has been accomplished by
+ letting all empty tuples refer to the same empty tuple
+ literal which also reduces memory usage for empty tuples.</p>
+ <p>
+ Own Id: OTP-17608</p>
+ </item>
+ <item>
+ <p>
+ A <seeapp
+ marker="kernel:kernel_app#net_ticker_spawn_options"><c>net_ticker_spawn_options</c></seeapp>
+ <c>kernel</c> configuration parameter with which one can
+ set spawn options for the distribution channel ticker
+ processes has been introduced.</p>
+ <p>
+ Own Id: OTP-17617 Aux Id: PR-5069 </p>
+ </item>
+ <item>
+ <p>
+ The most, or at least the most used, <seeerl
+ marker="kernel:rpc"><c>rpc</c></seeerl> operations now
+ require <seeerl marker="kernel:erpc"><c>erpc</c></seeerl>
+ support in order to communicate with other Erlang nodes.
+ <c>erpc</c> was introduced in OTP 23. That is, <c>rpc</c>
+ operations against Erlang nodes of releases prior to OTP
+ 23 will fail.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-17681 Aux Id: PR-5307 </p>
+ </item>
+ <item>
+ <p>
+ The new module <c>peer</c> supersedes the <c>slave</c>
+ module. The <c>slave</c> module is now deprecated and
+ will be removed in OTP 27.</p>
+ <p>
+ <c>peer</c> contains an extended and more robust API for
+ starting erlang nodes.</p>
+ <p>
+ Own Id: OTP-17720 Aux Id: PR-5162 </p>
+ </item>
+ <item>
+ <p>
+ In order to make it easier for the user to manage
+ multiple outstanding asynchronous <c>call</c> requests,
+ new functionality utilizing request identifier
+ collections have been introduced in <seetype
+ marker="kernel:erpc#request_id_collection"><c>erpc</c></seetype>,
+ <seetype
+ marker="stdlib:gen_server#request_id_collection"><c>gen_server</c></seetype>,
+ <seetype
+ marker="stdlib:gen_statem#request_id_collection"><c>gen_statem</c></seetype>,
+ and <seetype
+ marker="stdlib:gen_event#request_id_collection"><c>gen_event</c></seetype>.</p>
+ <p>
+ Own Id: OTP-17784 Aux Id: PR-5792 </p>
+ </item>
+ <item>
+ <p>Type specifications have been added to the
+ <c>gen_server</c>, and the documentation has been updated
+ to utilize this. </p><p>This surfaced a few type
+ violations that has been corrected in <c>global</c>,
+ <c>logger_olp</c> and <c>rpc</c>. </p>
+ <p>
+ Own Id: OTP-17915 Aux Id: PR-5751, GH-2375, GH-2690 </p>
+ </item>
+ <item>
+ <p>
+ IP address validation functions <c>is_ipv4_address/1</c>,
+ <c>is_ipv6_address/1</c> and <c>is_ip_address/1</c> have
+ been added to the module <c>inet</c> in Kernel.</p>
+ <p>
+ Own Id: OTP-17923 Aux Id: PR-5646 </p>
+ </item>
+ <item>
+ <p>
+ An API for multihomed SCTP connect has been added in the
+ guise of <c>gen_sctp:connectx_init/*</c></p>
+ <p>
+ Own Id: OTP-17951 Aux Id: PR-5656 </p>
+ </item>
+ <item>
+ <p>
+ [socket] Add encoding of the field hatype of the type
+ sockaddr_ll (family 'packet').</p>
+ <p>
+ Own Id: OTP-17968 Aux Id: OTP-16464 </p>
+ </item>
+ <item>
+ <p>
+ Added support for selectable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (ordinary and <c>+term</c>) to
+ <c>erlc</c> as well as with directives in the file.
+ Similar options can be used to <c>erl</c> for
+ enabling/disabling features allowed at runtime. The new
+ <c>maybe</c> expression (EEP-49) is fully supported as
+ the feature <c>maybe_expr</c>.</p>
+ <p>
+ Own Id: OTP-17988</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>Kernel 8.3.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
diff --git a/lib/kernel/src/kernel.app.src b/lib/kernel/src/kernel.app.src
index 9165f562c3..3c225fd1b2 100644
--- a/lib/kernel/src/kernel.app.src
+++ b/lib/kernel/src/kernel.app.src
@@ -158,6 +158,6 @@
{shell_docs_ansi,auto}
]},
{mod, {kernel, []}},
- {runtime_dependencies, ["erts-@OTP-17951:OTP-17968:OTP-16464@", "stdlib-@OTP-17720@", "sasl-3.0", "crypto-5.0"]}
+ {runtime_dependencies, ["erts-13.0", "stdlib-4.0", "sasl-3.0", "crypto-5.0"]}
]
}.
diff --git a/lib/kernel/src/kernel.appup.src b/lib/kernel/src/kernel.appup.src
index 4f041cda4a..9db2512b60 100644
--- a/lib/kernel/src/kernel.appup.src
+++ b/lib/kernel/src/kernel.appup.src
@@ -19,23 +19,16 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
-%% - OTP 22
%% - OTP 23
%% - OTP 24
+%% - OTP 25
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"%VSN%",
- [{<<"^6\\.4$">>,[restart_new_emulator]},
- {<<"^6\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^6\\.5$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^7\\.0$">>,[restart_new_emulator]},
+ [{<<"^7\\.0$">>,[restart_new_emulator]},
{<<"^7\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.1$">>,[restart_new_emulator]},
{<<"^7\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
@@ -57,15 +50,9 @@
{<<"^8\\.2$">>,[restart_new_emulator]},
{<<"^8\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3$">>,[restart_new_emulator]},
- {<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
- [{<<"^6\\.4$">>,[restart_new_emulator]},
- {<<"^6\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.4\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^6\\.5$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^6\\.5\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
- {<<"^7\\.0$">>,[restart_new_emulator]},
+ {<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^8\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
+ [{<<"^7\\.0$">>,[restart_new_emulator]},
{<<"^7\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.1$">>,[restart_new_emulator]},
{<<"^7\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
@@ -87,4 +74,5 @@
{<<"^8\\.2$">>,[restart_new_emulator]},
{<<"^8\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3$">>,[restart_new_emulator]},
- {<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
+ {<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
+ {<<"^8\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk
index 817f66720e..0d66e51f89 100644
--- a/lib/kernel/vsn.mk
+++ b/lib/kernel/vsn.mk
@@ -1 +1 @@
-KERNEL_VSN = 8.3.1
+KERNEL_VSN = 8.4