File 5452-Document-distributions-flags-that-will-become-mandat.patch of Package erlang

From 64e4af6d4c517bc93ab37fb3bf3531d6238ea7df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Mon, 21 Jun 2021 08:22:43 +0200
Subject: [PATCH 2/3] Document distributions flags that will become mandatory

---
 erts/doc/src/erl_dist_protocol.xml            | 31 ++++++++++++-------
 .../upcoming_incompatibilities.xml            | 31 +++++++++++++++++++
 2 files changed, 51 insertions(+), 11 deletions(-)

diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml
index 74823b9368..72a2fc17ba 100644
--- a/erts/doc/src/erl_dist_protocol.xml
+++ b/erts/doc/src/erl_dist_protocol.xml
@@ -988,7 +988,7 @@ DiB == gen_digest(ChA, ICA)?
         <tag><c>-define(DFLAG_EXTENDED_REFERENCES,16#4).</c></tag>
         <item>
           <p>The node implements extended (3 &times; 32 bits) references. This
-            is required today. If not present, the  connection is refused.</p>
+            flag is mandatory. If not present, the  connection is refused.</p>
         </item>
         <tag><c>-define(DFLAG_DIST_MONITOR,16#8).</c></tag>
         <item>
@@ -997,7 +997,8 @@ DiB == gen_digest(ChA, ICA)?
         <tag><c>-define(DFLAG_FUN_TAGS,16#10).</c></tag>
         <item>
           <p>The node uses separate tag for funs (lambdas) in the distribution
-            protocol.</p>
+          protocol.</p>
+          <note><p>This flag will become mandatory in OTP 25.</p></note>
         </item>
         <tag><c>-define(DFLAG_DIST_MONITOR_NAME,16#20).</c></tag>
         <item>
@@ -1009,28 +1010,34 @@ DiB == gen_digest(ChA, ICA)?
         </item>
         <tag><c>-define(DFLAG_NEW_FUN_TAGS,16#80).</c></tag>
         <item>
-	  <p>The node understands the <seeguide marker="erl_ext_dist#NEW_FUN_EXT">
-	    <c>NEW_FUN_EXT</c></seeguide> tag.</p>
+	  <p>The node understands the <seeguide
+	  marker="erl_ext_dist#NEW_FUN_EXT">
+	  <c>NEW_FUN_EXT</c></seeguide> tag. This flag is
+	  mandatory. If not present, the connection is refused.</p>
         </item>
         <tag><c>-define(DFLAG_EXTENDED_PIDS_PORTS,16#100).</c></tag>
         <item>
-          <p>The node can handle extended pids and ports. This is required
-            today. If not present, the connection is refused.</p>
+          <p>The node can handle extended pids and ports. This
+          flag is mandatory.  If not present, the connection is
+          refused.</p>
         </item>
         <tag><c>-define(DFLAG_EXPORT_PTR_TAG,16#200).</c></tag>
         <item>
 	  <p>The node understands the <seeguide marker="erl_ext_dist#EXPORT_EXT">
-	    <c>EXPORT_EXT</c></seeguide> tag.</p>
+	  <c>EXPORT_EXT</c></seeguide> tag.</p>
+          <note><p>This flag will become mandatory in OTP 25.</p></note>
         </item>
         <tag><c>-define(DFLAG_BIT_BINARIES,16#400).</c></tag>
         <item>
 	  <p>The node understands the <seeguide marker="erl_ext_dist#BIT_BINARY_EXT">
-	    <c>BIT_BINARY_EXT</c></seeguide> tag.</p>
+	  <c>BIT_BINARY_EXT</c></seeguide> tag.</p>
+          <note><p>This flag will become mandatory in OTP 25.</p></note>
         </item>
         <tag><c>-define(DFLAG_NEW_FLOATS,16#800).</c></tag>
         <item>
 	  <p>The node understands the <seeguide marker="erl_ext_dist#NEW_FLOAT_EXT">
-	    <c>NEW_FLOAT_EXT</c></seeguide> tag.</p>
+	  <c>NEW_FLOAT_EXT</c></seeguide> tag.</p>
+          <note><p>This flag will become mandatory in OTP 25.</p></note>
         </item>
         <tag><c>-define(DFLAG_UNICODE_IO,16#1000).</c></tag>
         <item>
@@ -1050,12 +1057,14 @@ DiB == gen_digest(ChA, ICA)?
 	    <seeguide marker="erl_ext_dist#ATOM_UTF8_EXT">
 	    <c>ATOM_UTF8_EXT</c></seeguide> and
 	    <seeguide marker="erl_ext_dist#SMALL_ATOM_UTF8_EXT">
-	    <c>SMALL ATOM_UTF8_EXT</c></seeguide>.</p>
+	      <c>SMALL ATOM_UTF8_EXT</c></seeguide>.  This flag is
+	      mandatory. If not present, the connection is refused.</p>
         </item>
         <tag><c>-define(DFLAG_MAP_TAG, 16#20000).</c></tag>
         <item>
           <p>The node understands the map tag
 	  <seeguide marker="erl_ext_dist#MAP_EXT"><c>MAP_EXT</c></seeguide>.</p>
+          <note><p>This flag will become mandatory in OTP 25.</p></note>
         </item>
         <tag><marker id="DFLAG_BIG_CREATION"/><c>-define(DFLAG_BIG_CREATION, 16#40000).</c></tag>
         <item>
@@ -1063,7 +1072,7 @@ DiB == gen_digest(ChA, ICA)?
 	  <seeguide marker="erl_ext_dist#NEW_PID_EXT"><c>NEW_PID_EXT</c></seeguide>,
 	  <seeguide marker="erl_ext_dist#NEW_PORT_EXT"><c>NEW_PORT_EXT</c></seeguide> and
 	  <seeguide marker="erl_ext_dist#NEWER_REFERENCE_EXT"><c>NEWER_REFERENCE_EXT</c></seeguide>.
-	  </p>
+          This flag is mandatory. If not present, the connection is refused.</p>
         </item>
         <tag><c>-define(DFLAG_SEND_SENDER, 16#80000).</c></tag>
         <item>
diff --git a/system/doc/general_info/upcoming_incompatibilities.xml b/system/doc/general_info/upcoming_incompatibilities.xml
index a633cbd4b2..7ee52b9c72 100644
--- a/system/doc/general_info/upcoming_incompatibilities.xml
+++ b/system/doc/general_info/upcoming_incompatibilities.xml
@@ -34,4 +34,35 @@
     <p>This document lists planned upcoming potential incompatibilities in
     Erlang/OTP.</p>
   </section>
+
+  <section>
+    <title>OTP 25</title>
+    <section>
+      <title>Distribution flags will become mandatory</title>
+      <p>In OTP 25, more <seeguide
+      marker="erts:erl_dist_protocol#dflags">distribution
+      flags</seeguide> will become mandatory. That is, Erlang nodes
+      will refuse to connect to nodes not implementing all of the
+      mandatory distribution flags. If you implement the Erlang
+      distribution protocol yourself, you will need to implement
+      support for all mandatory distribution flags in order to
+      communicate with Erlang nodes running OTP 25.</p>
+      <p>The following distribution flags will become mandatory in OTP
+      25:</p>
+      <taglist>
+        <tag><c>DFLAG_BIT_BINARIES</c></tag>
+        <item>Support for bitstrings.</item>
+        <tag><c>DFLAG_EXPORT_PTR_TAG</c></tag>
+        <item>Support for external funs (<c>fun Module:Name/Arity</c>).</item>
+        <tag><c>DFLAG_MAP_TAGS</c></tag>
+        <item>Support for maps.</item>
+        <tag><c>DFLAG_NEW_FLOATS</c></tag>
+        <item>Support for the new encoding of floats.</item>
+        <tag><c>DFLAG_FUN_TAGS</c></tag>
+        <item>Support for funs, but only in the new format
+        (<c>NEW_FUN_EXT</c>) because <c>DFLAG_NEW_FUN_TAGS</c> is also
+        mandatory.</item>
+      </taglist>
+    </section>
+  </section>
 </chapter>
-- 
2.26.2

openSUSE Build Service is sponsored by