<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
  </head>
  <body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>On mån, 2019-04-08 at 12:54 -0700, Michael Truog wrote:</div><blockquote type="cite">
    <div class="moz-cite-prefix">On 3/26/19 8:47 AM, Kenneth Lundin
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAOzgw90_2t0t_h8=ZFK+YmJdpqBxmfBwMpwhn4fihfN+XDTZ8w@mail.gmail.com">
      
      <div dir="ltr">
        <div dir="ltr">
          <h1>OTP 22 Release Candidate 2</h1>
          <p>This is the second of three planned release candidates
            before the OTP 22 release.</p>
          <p>The intention with this release is to get feedback from our
            users. All feedback is welcome, even if it is only to say
            that it works for you, as it lets us know that the release
            candidate got some testing.</p>
          <p>Erlang/OTP 22 is a new major release with new features
            and improvements as well as incompatibilities.</p>
          <h2>Potential Incompatibilities</h2>
          <ul>
            <li>gen_* behaviours: If logging of the last N messages
              through <span style="font-family:courier
                new,courier,monospace">sys:log/2,3</span> is active for
              the server, this log is included in the terminate report.</li>
            <li>reltool: A new element, Opts, can now be included in a
              rel tuple in the reltool release specific configuration
              format: <span style="font-family:courier
                new,courier,monospace">{rel, Name, Vsn, RelApps, Opts}</span>.</li>
            <li>All external pids/ports/refs created by <span style="font-family:courier new,courier,monospace">erlang:list_to_pid</span>
              and similar functions now compare equal to any other
              pid/port/ref with same number from that node.</li>
            <li>The old legacy <span style="font-family:courier
                new,courier,monospace">erl_interface</span> library is
              deprecated as of OTP 22, and will be removed in OTP 23.
              This does not apply to the <span style="font-family:courier new,courier,monospace">ei</span>
              library.</li>
            <li>VxWorks is deprecated as of OTP 22 and will be removed
              in OTP 23.</li>
          </ul>
          <h2>Additional highlights in release candidate 2</h2>
          <ul>
            <li>A simple socket API is provided through the <span style="font-family:courier new,courier,monospace">socket</span>
              module. This is a low level API that does *not* replace <span style="font-family:courier new,courier,monospace">gen_[tcp|udp|sctp]</span>.
              It is intended to *eventually* replace the inet driver. It
              also provides a basic API that facilitates the
              implementation of other protocols than TCP, UDP and SCTP.
              Known issues are; No support for the Windows OS
              (currently), a small term leakage. This feature will be
              classed as experimental in OTP 22.</li>
            <li>ssl: Basic support for TLS 1.3 Server for experimental
              use.</li>
            <li>In OTP 22, HiPE (the native code compiler) is not fully
              functional. The reasons for this are new BEAM instructions
              for binary matching that the HiPE native code compiler
              does not support. If <span style="font-family:courier
                new,courier,monospace">erlc</span> is invoked with the <span style="font-family:courier new,courier,monospace">+native</span>
              option, and if any of the new binary matching instructions
              are used, the compiler will issue a warning and produce a
              BEAM file without native code.</li>
            <li>erts: Added the NIF function <span style="font-family:courier new,courier,monospace">enif_term_type</span>,
              which helps avoid long sequences of <span style="font-family:courier new,courier,monospace">enif_is_xyz</span>
              by returning the type of the given term. This is
              especially helpful for NIFs that serialize terms, such as
              JSON encoders, where it can improve both performance and
              readability.</li>
            <li>crypto: The new <span style="font-family:courier
                new,courier,monospace">hash_info/1</span> and <span style="font-family:courier new,courier,monospace">cipher_info/1</span>
              functions returns maps with information about the hash or
              cipher in the argument.</li>
          </ul>
          <h2>Highlights in release candidate 1</h2>
          <h3>Erts:</h3>
          <ul>
            <li>Support for Erlang Distribution protocol to split the
              payload of large signals into several fragments.</li>
            <li>ETS option write_concurrency now also effects and
              improves scalability of ordered_set tables.</li>
            <li>The <span style="font-family:monospace,monospace">length/1</span>
              BIF used to calculate the length of the list in one go
              without yielding, even if the list was very long. Now it
              yields when called with long lists.</li>
            <li>A new (still experimental) module <span style="font-family:courier new,courier,monospace">socket</span>
              is introduced. It is implemented as a NIF and the idea is
              that it shall be as "close as possible" to the OS level
              socket interface.</li>
          </ul>
          <h3>Compiler:</h3>
          <ul>
            <li>The compiler has been rewritten to internally use an
              intermediate representation based on Static Single
              Assignment (SSA). The new intermediate representation
              makes more optimizations possible.
              <ul>
                <li>The binary matching optimizations are now applicable
                  in many more circumstances than before.</li>
                <li>Type optimizations are now applied across local
                  function calls, and will remove a lot more redundant
                  type tests than before.</li>
              </ul>
            </li>
            <li>All compiler options that can be given in the source
              file can now be given in the option list on the command
              line for <span style="font-family:monospace,monospace">erlc</span>.</li>
          </ul>
          <h3>Standard libraries:</h3>
          <ul>
            <li>Cover now uses the counters module instead of <span style="font-family:monospace,monospace">ets</span> for
              updating counters. The new function <span style="font-family:monospace,monospace">cover:local_only/0
              </span>allows running Cover in a restricted but faster
              local-only mode. The increase in speed will vary depending
              on the type of code being cover-compiled, as an
              example the compiler test suite runs more than twice as
              fast with the new Cover.</li>
            <li>SSL now uses the new logger API, including log levels
              and verbose debug logging.</li>
          </ul>
          <p>For more details see<br>
            <a href="http://erlang.org/download/otp_src_22.0-rc2.readme" moz-do-not-send="true">http://erlang.org/download/otp_src_22.0-rc2.readme</a></p>
          <p>Pre built versions for Windows can be fetched here:<br>
            <a href="http://erlang.org/download/otp_win32_22.0-rc2.exe" moz-do-not-send="true">http://erlang.org/download/otp_win32_22.0-rc2.exe</a><br>
            <a href="http://erlang.org/download/otp_win64_22.0-rc2.exe" moz-do-not-send="true">http://erlang.org/download/otp_win64_22.0-rc2.exe</a></p>
          <p>Online documentation can be browsed here:<br>
            <a href="http://erlang.org/documentation/doc-11.0-rc2/doc" moz-do-not-send="true">http://erlang.org/documentation/doc-11.0-rc2/doc</a></p>
          <p>The Erlang/OTP source can also be found at GitHub on the
            official Erlang repository:</p>
          <p><a href="https://github.com/erlang/otp" moz-do-not-send="true">https://github.com/erlang/otp</a></p>
          <p><a href="https://github.com/erlang/otp/releases/tag/OTP-22.0-rc2" moz-do-not-send="true">OTP-22.0-rc2</a></p>
           
          Thank you for all your contributions!</div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
erlang-announce mailing list
<a href="mailto:erlang-announce@erlang.org">erlang-announce@erlang.org</a>
<a href="http://erlang.org/mailman/listinfo/erlang-announce">http://erlang.org/mailman/listinfo/erlang-announce</a>
</pre>
    </blockquote>
    <tt>Hi Kenneth,</tt><br>
    <tt></tt><br>
    <tt>It looks like the Erlang Binary Term Format change previously
      added in 19.0rc-1 was never documented (to cause the creation
      integer to be 32bits for pids, ports and refs) though the new
      format is being forced with a recent commit for 22.0rc-2
(<a href="https://github.com/erlang/otp/commit/78ea501bcc84bd8bd49da97e514c1c3b20682d86">https://github.com/erlang/otp/commit/78ea501bcc84bd8bd49da97e514c1c3b20682d86</a>). 
      The change wasn't announced in your email, nor the necessity of
      the switch to NEW_PID_EXT/NEW_PORT_EXT/NEWER_REFERENCE_EXT for all
      future Erlang integration.</tt><tt><br>
    </tt><br></blockquote><div><br></div><div>The missing documentation was clearly a mistake. Thanks for pointing that out, Michael.</div><div><br></div><div>The revised plan now is to</div><div>1. Revert the removal of encoding the old pid/port/ref tags for OTP 22.</div><div>2. Document NEW_PID_EXT/NEW_PORT_EXT/NEWER_REFERENCE_EXT which have existed since OTP 19.</div><div>3. Mark the old as deprecated and announce for upcoming removal of old encoding in OTP 23.</div><div> </div><div>/Sverker</div><div><br></div></body></html>