diff options
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/doc/src/erpc.xml | 18 | ||||
-rw-r--r-- | lib/kernel/doc/src/gen_sctp.xml | 6 | ||||
-rw-r--r-- | lib/kernel/doc/src/inet.xml | 6 | ||||
-rw-r--r-- | lib/kernel/doc/src/net_kernel.xml | 2 | ||||
-rw-r--r-- | lib/kernel/doc/src/notes.xml | 299 | ||||
-rw-r--r-- | lib/kernel/src/kernel.app.src | 2 | ||||
-rw-r--r-- | lib/kernel/src/kernel.appup.src | 26 | ||||
-rw-r--r-- | lib/kernel/vsn.mk | 2 |
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 |