diff options
author | Erlang/OTP <otp@erlang.org> | 2020-05-11 14:53:34 +0200 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2020-05-11 14:53:34 +0200 |
commit | de8aa03ed881a76fd5186634c47be9b0d5b9fce1 (patch) | |
tree | f68dfbf35641fc2fbcc4c2a344aa27308c26c0b9 /lib/kernel | |
parent | 9639877ea11d6a32ca6e46410b8a48db245b72d8 (diff) | |
download | erlang-de8aa03ed881a76fd5186634c47be9b0d5b9fce1.tar.gz |
Prepare release
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/doc/src/code.xml | 4 | ||||
-rw-r--r-- | lib/kernel/doc/src/erl_epmd.xml | 2 | ||||
-rw-r--r-- | lib/kernel/doc/src/erpc.xml | 40 | ||||
-rw-r--r-- | lib/kernel/doc/src/notes.xml | 383 | ||||
-rw-r--r-- | lib/kernel/doc/src/socket.xml | 4 | ||||
-rw-r--r-- | lib/kernel/src/kernel.app.src | 2 | ||||
-rw-r--r-- | lib/kernel/src/kernel.appup.src | 7 | ||||
-rw-r--r-- | lib/kernel/vsn.mk | 2 |
8 files changed, 415 insertions, 29 deletions
diff --git a/lib/kernel/doc/src/code.xml b/lib/kernel/doc/src/code.xml index 17ab341068..81186b6876 100644 --- a/lib/kernel/doc/src/code.xml +++ b/lib/kernel/doc/src/code.xml @@ -705,7 +705,7 @@ ok = code:finish_loading(Prepared), </desc> </func> <func> - <name name="all_available" arity="0" since="OTP @OTP-16494@"/> + <name name="all_available" arity="0" since="OTP 23.0"/> <fsummary>Get all available modules.</fsummary> <type name="loaded_filename"/> <type name="loaded_ret_atoms"/> @@ -769,7 +769,7 @@ rpc:call(Node, code, load_binary, [Module, Filename, Binary]), </desc> </func> <func> - <name name="get_doc" arity="1" since="OTP @OTP-16406@"/> + <name name="get_doc" arity="1" since="OTP 23.0"/> <fsummary>Gets the documentation for a module.</fsummary> <desc> <p>Searches the code path for EEP-48 style documentation and returns it diff --git a/lib/kernel/doc/src/erl_epmd.xml b/lib/kernel/doc/src/erl_epmd.xml index fbb316bbfc..03aa949516 100644 --- a/lib/kernel/doc/src/erl_epmd.xml +++ b/lib/kernel/doc/src/erl_epmd.xml @@ -73,7 +73,7 @@ </func> <func> - <name name="listen_port_please" arity="2" since="OTP @OTP-16250@"/> + <name name="listen_port_please" arity="2" since="OTP 23.0"/> <fsummary>Returns the port number for the local node.</fsummary> <desc> <p>Called by the distribution module to get which port the diff --git a/lib/kernel/doc/src/erpc.xml b/lib/kernel/doc/src/erpc.xml index d609bc3fd9..64032a7f94 100644 --- a/lib/kernel/doc/src/erpc.xml +++ b/lib/kernel/doc/src/erpc.xml @@ -28,7 +28,7 @@ <date>2020-02-20</date> <rev>A</rev> </header> - <module since="OTP @OTP-13450@">erpc</module> + <module since="OTP 23.0">erpc</module> <modulesummary>Enhanced Remote Procedure Call</modulesummary> <description> <p> @@ -75,8 +75,8 @@ <funcs> <func> - <name name="call" arity="2" since="OTP @OTP-13450@"/> - <name name="call" arity="3" since="OTP @OTP-13450@"/> + <name name="call" arity="2" since="OTP 23.0"/> + <name name="call" arity="3" since="OTP 23.0"/> <fsummary>Evaluate a function call on a node.</fsummary> <desc> <p> @@ -96,8 +96,8 @@ </func> <func> - <name name="call" arity="4" since="OTP @OTP-13450@"/> - <name name="call" arity="5" since="OTP @OTP-13450@"/> + <name name="call" arity="4" since="OTP 23.0"/> + <name name="call" arity="5" since="OTP 23.0"/> <fsummary>Evaluate a function call on a node.</fsummary> <desc> <p> @@ -249,7 +249,7 @@ </func> <func> - <name name="cast" arity="2" since="OTP @OTP-13450@"/> + <name name="cast" arity="2" since="OTP 23.0"/> <fsummary>Evaluate a function call on a node.</fsummary> <desc> <p> @@ -266,7 +266,7 @@ </func> <func> - <name name="cast" arity="4" since="OTP @OTP-13450@"/> + <name name="cast" arity="4" since="OTP 23.0"/> <fsummary>Evaluate a function call on a node ignoring the result.</fsummary> <desc> <p> @@ -298,7 +298,7 @@ </func> <func> - <name name="check_response" arity="2" since="OTP @OTP-13450@"/> + <name name="check_response" arity="2" since="OTP 23.0"/> <fsummary>Check if a message is a response corresponding to a previously sent call request.</fsummary> <desc> @@ -341,8 +341,8 @@ </func> <func> - <name name="multicall" arity="2" since="OTP @OTP-13450@"/> - <name name="multicall" arity="3" since="OTP @OTP-13450@"/> + <name name="multicall" arity="2" since="OTP 23.0"/> + <name name="multicall" arity="3" since="OTP 23.0"/> <fsummary>Evaluate a function call on a node.</fsummary> <desc> <p> @@ -362,8 +362,8 @@ </func> <func> - <name name="multicall" arity="4" since="OTP @OTP-13450@"/> - <name name="multicall" arity="5" since="OTP @OTP-13450@"/> + <name name="multicall" arity="4" since="OTP 23.0"/> + <name name="multicall" arity="5" since="OTP 23.0"/> <fsummary>Evaluate a function call on a number of nodes.</fsummary> <type name="caught_call_exception"/> <type name="stack_item"/> @@ -466,7 +466,7 @@ my_multicall(Nodes, Module, Function, Args) -> </func> <func> - <name name="multicast" arity="2" since="OTP @OTP-13450@"/> + <name name="multicast" arity="2" since="OTP 23.0"/> <fsummary>Evaluate a function call on a set nodes.</fsummary> <desc> <p> @@ -483,7 +483,7 @@ my_multicall(Nodes, Module, Function, Args) -> </func> <func> - <name name="multicast" arity="4" since="OTP @OTP-13450@"/> + <name name="multicast" arity="4" since="OTP 23.0"/> <fsummary>Evaluate a function call on a set of nodes ignoring the result.</fsummary> <desc> <p> @@ -517,8 +517,8 @@ my_multicall(Nodes, Module, Function, Args) -> </func> <func> - <name name="receive_response" arity="1" since="OTP @OTP-13450@"/> - <name name="receive_response" arity="2" since="OTP @OTP-13450@"/> + <name name="receive_response" arity="1" since="OTP 23.0"/> + <name name="receive_response" arity="2" since="OTP 23.0"/> <fsummary>Receive a call response corresponding to a previously sent call request.</fsummary> <desc> @@ -581,7 +581,7 @@ my_call(Node, Module, Function, Args, Timeout) -> </func> <func> - <name name="send_request" arity="2" since="OTP @OTP-13450@"/> + <name name="send_request" arity="2" since="OTP 23.0"/> <fsummary>Send a request to evaluate a function call on a node.</fsummary> <desc> <p> @@ -606,7 +606,7 @@ my_call(Node, Module, Function, Args, Timeout) -> </func> <func> - <name name="send_request" arity="4" since="OTP @OTP-13450@"/> + <name name="send_request" arity="4" since="OTP 23.0"/> <fsummary>Send a request to evaluate a function call on a node.</fsummary> <desc> <p> @@ -633,8 +633,8 @@ my_call(Node, Module, Function, Args, Timeout) -> </func> <func> - <name name="wait_response" arity="1" since="OTP @OTP-13450@"/> - <name name="wait_response" arity="2" since="OTP @OTP-13450@"/> + <name name="wait_response" arity="1" since="OTP 23.0"/> + <name name="wait_response" arity="2" since="OTP 23.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/notes.xml b/lib/kernel/doc/src/notes.xml index 624ccb6591..1e8e52cfb2 100644 --- a/lib/kernel/doc/src/notes.xml +++ b/lib/kernel/doc/src/notes.xml @@ -31,6 +31,389 @@ </header> <p>This document describes the changes made to the Kernel application.</p> +<section><title>Kernel 7.0</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fix race condition during shutdown when + <c>shell_history</c> is enabled. The race condition would + trigger crashes in <c>disk_log</c>.</p> + <p> + Own Id: OTP-16008 Aux Id: PR-2302 </p> + </item> + <item> + <p> + Fix the Erlang distribution to handle the scenario when a + node connects that can handle message fragmentation but + can not handle the atom cache. This bug only affects + users that have implemented a custom distribution + carrier. It has been present since OTP-21.</p> + <p> + The <c>DFLAG_FRAGMENT</c> distribution flag was added to + the set of flags that can be rejected by a distribution + implementation.</p> + <p> + Own Id: OTP-16284</p> + </item> + <item> + <p> + Fix bug where a binary was not allowed to be the format + string in calls to <c>logger:log</c>.</p> + <p> + Own Id: OTP-16395 Aux Id: PR-2444 </p> + </item> + <item> + <p> + Fix bug where <c>logger</c> would end up in an infinite + loop when trying to log the crash of a handler or + formatter.</p> + <p> + Own Id: OTP-16489 Aux Id: ERL-1134 </p> + </item> + <item> + <p> + <c>code:lib_dir/1</c> has been fixed to also return the + lib dir for <c>erts</c>.</p> + <p> + This is been marked as an incompatibility for any + application that depended on <c>{error,bad_name}</c> to + be returned for <c>erts</c>.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-16502</p> + </item> + <item> + <p> + The application <c>stop/1</c> callback was not called if + the application master of the application terminated.</p> + <p> + Own Id: OTP-16504 Aux Id: PR-2328 </p> + </item> + <item> + <p> + Fix bug in <c>application:loaded_applications/0</c> that + could cause it to fail with <c>badarg</c> if for example + a concurrent upgrade/downgrade is running.</p> + <p> + Own Id: OTP-16627 Aux Id: PR-2601 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p>A new module <seeerl + marker="kernel:erpc"><c>erpc</c></seeerl> has been + introduced in the <c>kernel</c> application. The + <c>erpc</c> module implements an enhanced subset of the + operations provided by the <seeerl + marker="kernel:rpc"><c>rpc</c></seeerl> module. Enhanced + in the sense that it makes it possible to distinguish + between returned value, raised exceptions, and other + errors. <c>erpc</c> also has better performance and + scalability than the original <c>rpc</c> implementation. + This by utilizing the newly introduced <seemfa + marker="erts:erlang#spawn_request/5"><c>spawn_request()</c></seemfa> + BIF. Also the <c>rpc</c> module benefits from these + improvements by utilizing <c>erpc</c> when it is + possible. </p><p> This change has been marked as a + potential incompatibility since <seemfa + marker="kernel:rpc#block_call/5"><c>rpc:block_call()</c></seemfa> + now only is guaranteed to block other <c>block_call()</c> + operations. The documentation previously claimed that it + would block all <c>rpc</c> operations. This has however + never been the case. It previously did not block + node-local <c>block_call()</c> operations.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-13450 Aux Id: OTP-15251 </p> + </item> + <item> + <p>A client node can receive its node name dynamically + from the node that it first connects to. This featured + can by used by</p> <list> <item><p>starting with <c>erl + -sname undefined</c></p></item> <item><p>erl_interface + functions <c>ei_connect_init</c> and friends</p></item> + <item><p><c>erl_call -R</c></p></item> </list> + <p> + Own Id: OTP-13812</p> + </item> + <item> + <p> + Improved the printout of single line logger events for + most of the OTP behaviours in STDLIB and Kernel. This + includes <c>proc_lib</c>, <c>gen_server</c>, + <c>gen_event</c>, <c>gen_statem</c>, <c>gen_fsm</c>, + <c>supervisor</c>, <c>supervisor_bridge</c> and + <c>application</c>.</p> + <p> + Improved the <seeerl + marker="kernel:logger_formatter#chars_limit"><c>chars_limit</c></seeerl> + and <seeerl + marker="kernel:logger_formatter#depth"><c>depth</c></seeerl> + handling in <c>proc_lib</c> and when formatting of + exceptions.</p> + <p> + Own Id: OTP-15299</p> + </item> + <item> + <p> + Remove usage and documentation of old requests of the + I/O-protocol.</p> + <p> + Own Id: OTP-15695</p> + </item> + <item> + <p>Directories can now be opened by <c>file:open/2</c> + when passing the <c>directory</c> option.</p> + <p> + Own Id: OTP-15835 Aux Id: PR-2212 </p> + </item> + <item> + <p> + The check of whether to log or not based on the log level + in <c>logger</c> has been optimized by using + <c>persistent_term</c> to store the log level.</p> + <p> + Own Id: OTP-15948 Aux Id: PR-2356 </p> + </item> + <item> + <p><c>file:read_file_info/2</c> can now be used on opened + files and directories.</p> + <p> + Own Id: OTP-15956 Aux Id: PR-2231 </p> + </item> + <item> + <p> + The <c>-config</c> option to <c>erl</c> now can take + multiple config files without repeating the + <c>-config</c> option. Example:</p> + <p> + erl -config sys local</p> + <p> + Own Id: OTP-16148 Aux Id: PR-2373 </p> + </item> + <item> + <p> + Improved node connection setup handshake protocol. Made + possible to agree on protocol version without dependence + on <c>epmd</c> or other prior knowledge of peer node + version. Also added exchange of node incarnation + ("creation") values and expanded the distribution + capability flag field from 32 to 64 bits.</p> + <p> + Own Id: OTP-16229</p> + </item> + <item> + <p>The possibility to run Erlang distribution without + relying on EPMD has been extended. To achieve this a + couple of new options to the inet distribution has been + added.</p> <taglist> <tag>-dist_listen false</tag> + <item>Setup the distribution channel, but do not listen + for incoming connection. This is useful when you want to + use the current node to interact with another node on the + same machine without it joining the entire + cluster.</item> <tag>-erl_epmd_port Port</tag> + <item>Configure a default port that the built-in EPMD + client should return. This allows the local node to know + the port to connect to for any other node in the + cluster.</item> </taglist> <p>The <c>erl_epmd</c> + callback API has also been extended to allow returning + <c>-1</c> as the creation which means that a random + creation will be created by the node.</p> + <p>In addition a new callback function called + <c>listen_port_please</c> has been added that allows the + callback to return which listen port the distribution + should use. This can be used instead of + <c>inet_dist_listen_min/max</c> if the listen port is to + be fetched from an external service.</p> + <p> + Own Id: OTP-16250</p> + </item> + <item> + <p> + A first EXPERIMENTAL module that is a <c>socket</c> + backend to <c>gen_tcp</c> and <c>inet</c> has been + implemented. Others will follow. Feedback will be + appreciated.</p> + <p> + Own Id: OTP-16260 Aux Id: OTP-15403 </p> + </item> + <item> + <p> + The new experimental <c>socket</c> module has been moved + to the Kernel application.</p> + <p> + Own Id: OTP-16312</p> + </item> + <item> + <p> + Replace usage of deprecated function in the <c>group</c> + module.</p> + <p> + Own Id: OTP-16345</p> + </item> + <item> + <p> + Minor updates due to the new spawn improvements made.</p> + <p> + Own Id: OTP-16368 Aux Id: OTP-15251 </p> + </item> + <item> + <p> + Update of <seeerl + marker="kernel:seq_trace#whatis">sequential + tracing</seeerl> to also support other information + transfers than message passing.</p> + <p> + Own Id: OTP-16370 Aux Id: OTP-15251, OTP-15232 </p> + </item> + <item> + <p><c>code:module_status/1</c> now accepts a list of + modules. <c>code:module_status/0</c>, which returns the + statuses for all loaded modules, has been added.</p> + <p> + Own Id: OTP-16402</p> + </item> + <item> + <p><c>filelib:wildcard/1,2</c> is now twice as fast when + a double star (<c>**</c>) is part of the pattern.</p> + <p> + Own Id: OTP-16419</p> + </item> + <item> + <p> A new implementation of distributed named process + groups has been introduced. It is available in the + <seeerl marker="kernel:pg"><c>pg</c></seeerl> module. + </p><p> Note that this <c>pg</c> module only has the name + in common with the experimental <c>pg</c> module that was + present in <c>stdlib</c> up until OTP 17. </p><p> Thanks + to Maxim Fedorov for the implementation. </p> + <p> + Own Id: OTP-16453 Aux Id: PR-2524 </p> + </item> + <item> + <p> The <seeerl marker="kernel:pg2"><c>pg2</c></seeerl> + module has been deprecated. It has also been scheduled + for removal in OTP 24. </p><p> You are advised to replace + the usage of <c>pg2</c> with the newly introduced <seeerl + marker="kernel:pg"><c>pg</c></seeerl> module. <c>pg</c> + has a similar API, but with a more scalable + implementation. </p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-16455</p> + </item> + <item> + <p>Refactored the internal handling of deprecated and + removed functions.</p> + <p> + Own Id: OTP-16469</p> + </item> + <item> + <p> + The internal hosts file resolver cache <c>inet_hosts</c> + has been rewritten to behave better when the hosts file + changes. For example the cache is updated per entry + instead of cleared and reloaded so lookups do not + temporarily fail during reloading, and; when multiple + processes simultaneously request reload these are now + folded into one instead of all done in sequence. Reported + and first solution suggestion by Maxim Fedorov.</p> + <p> + Own Id: OTP-16487 Aux Id: PR-2516 </p> + </item> + <item> + <p> + Add <c>code:all_available/0</c> that can be used to get + all available modules.</p> + <p> + Own Id: OTP-16494</p> + </item> + <item> + <p> + As of OTP 23, the distributed <seeerl + marker="kernel:disk_log"><c>disk_log</c></seeerl> feature + has been deprecated. It has also been scheduled for + removal in OTP 24.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-16495</p> + </item> + <item> + <p> + Add the function <c>code:fetch_docs/1</c> for fetching + embedded documentation for aa Erlang module.</p> + <p> + Own Id: OTP-16499</p> + </item> + <item> + <p> + Improve configure for the net nif, which should increase + portability.</p> + <p> + Own Id: OTP-16530 Aux Id: OTP-16464 </p> + </item> + <item> + <p> + socket: Socket counters and socket global counters are + now represented as maps (instead of property lists).</p> + <p> + Own Id: OTP-16535</p> + </item> + <item> + <p> + The experimental socket module has gotten restrictions + removed so now the 'seqpacket' socket type should work + for any communication domain (protocol family) where the + OS supports it, typically the Unix Domain.</p> + <p> + Own Id: OTP-16550 Aux Id: ERIERL-476 </p> + </item> + <item> + <p> + Allow using custom IO devices in <c>logger_std_h</c>.</p> + <p> + Own Id: OTP-16563 Aux Id: PR-2523 </p> + </item> + <item> + <p>Added <c>file:del_dir_r/1</c> which deletes a + directory together with all of its contents, similar to + <c>rm -rf</c> on Unix systems.</p> + <p> + Own Id: OTP-16570 Aux Id: PR-2565 </p> + </item> + <item> + <p> + socket: By default the socket options rcvtimeo and + sndtimeo are now disabled. To enable these, OTP now has + to be built with the configure option + --enable-esock-rcvsndtimeo</p> + <p> + Own Id: OTP-16620</p> + </item> + <item> + <p> + The experimental gen_tcp compatibility code utilizing the + socket module could loose buffered data when receiving a + specified number of bytes. This bug has been fixed. + Reported by Maksim Lapshin on bugs.erlang.org ERL-1234</p> + <p> + Own Id: OTP-16632 Aux Id: ERL-1234 </p> + </item> + </list> + </section> + +</section> + <section><title>Kernel 6.5.2</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/kernel/doc/src/socket.xml b/lib/kernel/doc/src/socket.xml index 6ff7376727..5a9fdf98f7 100644 --- a/lib/kernel/doc/src/socket.xml +++ b/lib/kernel/doc/src/socket.xml @@ -505,8 +505,8 @@ </func> <func> - <name name="open" arity="1" since="OTP @OTP-16398@"/> - <name name="open" arity="2" clause_i="1" since="OTP @OTP-16398@"/> + <name name="open" arity="1" since="OTP 23.0"/> + <name name="open" arity="2" clause_i="1" since="OTP 23.0"/> <fsummary>Create an endpoint for communication.</fsummary> <desc> <p>Create an endpoint (socket) for communication based on an diff --git a/lib/kernel/src/kernel.app.src b/lib/kernel/src/kernel.app.src index e58151f295..e9f6049d5f 100644 --- a/lib/kernel/src/kernel.app.src +++ b/lib/kernel/src/kernel.app.src @@ -155,6 +155,6 @@ {shell_docs_ansi,auto} ]}, {mod, {kernel, []}}, - {runtime_dependencies, ["erts-@OTP-15251@", "stdlib-@OTP-15251@", "sasl-3.0"]} + {runtime_dependencies, ["erts-11.0", "stdlib-3.13", "sasl-3.0"]} ] }. diff --git a/lib/kernel/src/kernel.appup.src b/lib/kernel/src/kernel.appup.src index f42dd8ca6e..09a55d6f0a 100644 --- a/lib/kernel/src/kernel.appup.src +++ b/lib/kernel/src/kernel.appup.src @@ -21,6 +21,7 @@ %% versions from the following OTP releases: %% - OTP 21 %% - OTP 22 +%% - OTP 23 %% %% We also allow upgrade from, and downgrade to all %% versions that have branched off from the above @@ -44,7 +45,8 @@ {<<"^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\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^6\\.5\\.2(?:\\.[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]}, @@ -62,4 +64,5 @@ {<<"^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\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]}, + {<<"^6\\.5\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}. diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk index e578f3dde4..013cc28c40 100644 --- a/lib/kernel/vsn.mk +++ b/lib/kernel/vsn.mk @@ -1 +1 @@ -KERNEL_VSN = 6.5.2 +KERNEL_VSN = 7.0 |