summaryrefslogtreecommitdiff
path: root/lib/kernel/doc/src/notes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/doc/src/notes.xml')
-rw-r--r--lib/kernel/doc/src/notes.xml328
1 files changed, 328 insertions, 0 deletions
diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml
index 56656d0909..d9661aa66f 100644
--- a/lib/kernel/doc/src/notes.xml
+++ b/lib/kernel/doc/src/notes.xml
@@ -31,6 +31,334 @@
</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>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>A new module <seealso
+ marker="kernel:erpc"><c>erpc</c></seealso> has been
+ introduced in the <c>kernel</c> application. The
+ <c>erpc</c> module implements an enhanced subset of the
+ operations provided by the <seealso
+ marker="kernel:rpc"><c>rpc</c></seealso> 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 <seealso
+ marker="erts:erlang#spawn_request/5"><c>spawn_request()</c></seealso>
+ 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 <seealso
+ marker="kernel:rpc#block_call/5"><c>rpc:block_call()</c></seealso>
+ 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
+ -dist_listen false -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 <seealso
+ marker="kernel:logger_formatter#chars_limit"><c>chars_limit</c></seealso>
+ and <seealso
+ marker="kernel:logger_formatter#depth"><c>depth</c></seealso>
+ 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>
+ 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 <seealso
+ marker="kernel:seq_trace#whatis">sequential
+ tracing</seealso> 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
+ <seealso marker="kernel:pg"><c>pg</c></seealso> 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 <seealso marker="kernel:pg2"><c>pg2</c></seealso>
+ 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
+ <seealso marker="kernel:pg"><c>pg</c></seealso> 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 <seealso
+ marker="kernel:disk_log"><c>disk_log</c></seealso>
+ 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>
+ Allow using custom IO devices in <c>logger_std_h</c>.</p>
+ <p>
+ Own Id: OTP-16563 Aux Id: PR-2523 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>Kernel 6.5.2</title>
<section><title>Fixed Bugs and Malfunctions</title>