<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"></p>
<h1>OTP 22 Release Candidate 1<br>
</h1>
<p>This is the first 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 i wellcome, even if it is only to say that it works for you,<br>
</p>
<br>
<p>Erlang/OTP 22 is a new major release with new features, improvements as well as incompatibilities.</p>
<h2>Potential Incompatibilities</h2>
<ul>
<li>gen_* behaviours, If logging of the last N messages through sys:log/2,3 is active for the server, this log is included in the terminate report.</li><li>New element, Opts, can now be included in a rel tuple in the reltool release specific configuration format: {rel, Name, Vsn, RelApps, Opts}.</li><li>All external pids/ports/refs created by erlang:list_to_pid and smilar functions now compare equal to any other pid/port/ref with same number from that node.</li><li>Old legacy erl_interface library is deprecated as of OTP 22, and will be removed in OTP 23. This does not apply to the ei library.</li><li>VxWorks is deprecated as of OTP 22 and will be removed in OTP 23.</li></ul>
<h2>Known problems</h2>
<p>Native code generation does not work for all modules due to new beam instructions not supported by HiPE the native compiler.<br>
Dialyzers automatic compilation to native code does still work.<br>
Building OTP with the configure option <span style="font-family:courier new,courier,monospace;">
enable-native-libs</span> will not work in this release candidate.</p>
<h2>Highlights</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 lenght/1 BIF used to calculate the length of the list in one go without yielding, even if the list was very long, Now 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 erlc.</li></ul>
<h3>Standard libraries:</h3>
<ul>
<li>Cover now uses the counters module instead of ets for updating counters. New function cover:local_only/0 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,
 e.g. 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 data-cke-saved-href="http://erlang.org/download/otp_src_22.0-rc1.readme" href="http://erlang.org/download/otp_src_22.0-rc1.readme" id="LPlnk602461" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_src_22.0-rc1.readme</a></p>
<p>Pre built versions for Windows can be fetched here:<br>
<a data-cke-saved-href="http://erlang.org/download/otp_win32_22.0-rc1.exe" href="http://erlang.org/download/otp_win32_22.0-rc1.exe" id="LPlnk131383" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_win32_22.0-rc1.exe</a><br>
<a data-cke-saved-href="http://erlang.org/download/otp_win64_22.0-rc1.exe" href="http://erlang.org/download/otp_win64_22.0-rc1.exe" id="LPlnk797919" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_win64_22.0-rc1.exe</a></p>
<p>Online documentation can be browsed here:<br>
<a data-cke-saved-href="http://erlang.org/documentation/doc-11.0-rc1/doc" href="http://erlang.org/documentation/doc-11.0-rc1/doc" id="LPlnk365362" class="OWAAutoLink" previewremoved="true">http://erlang.org/documentation/doc-11.0-rc1/doc</a><br>
</p>
<p>The Erlang/OTP source can also be found at GitHub on the official Erlang repository,<br>
</p>
<p><a data-cke-saved-href="https://github.com/erlang/otp" href="https://github.com/erlang/otp" id="LPlnk553875" class="OWAAutoLink" previewremoved="true">https://github.com/erlang/otp</a></p>
<div id="LPBorder_GT_15512656956470.930901558361527" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15512656956400.8120678864803184" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);" role="presentation" cellspacing="0">
<tbody>
<tr style="border-spacing: 0px;" valign="top">
<td id="ImageCell_15512656956430.33262383819444996" style="width: 250px; position: relative; display: table-cell; padding-right: 20px;" colspan="1">
<div id="LPImageContainer_15512656956430.6937063576776029" style="background-color: rgb(255, 255, 255); height: 250px; position: relative; margin: auto; display: table; width: 250px;">
<a id="LPImageAnchor_15512656956440.38431314108577086" style="display: table-cell; text-align: center;" href="https://github.com/erlang/otp" target="_blank"><img style="display: inline-block; max-width: 250px; max-height: 250px; height: 250px; width: 250px; border-width: 0px; vertical-align: bottom;" id="LPThumbnailImageID_15512656956440.9846770025343158" width="250" height="250" src="https://avatars3.githubusercontent.com/u/153393?s=400&v=4"></a></div>
</td>
<td id="TextCell_15512656956450.8970191249433577" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;" colspan="2">
<div id="LPRemovePreviewContainer_15512656956450.3406725597328941"></div>
<div id="LPTitle_15512656956450.7560313991464007" style="top: 0px; color: rgb(0, 169, 212); font-weight: 400; font-size: 21px; font-family: "wf_segoe-ui_light", "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15512656956460.8483272715406828" style="text-decoration: none;" href="https://github.com/erlang/otp" target="_blank">GitHub - erlang/otp: Erlang/OTP</a></div>
<div id="LPMetadata_15512656956460.05145977738501317" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
github.com</div>
<div id="LPDescription_15512656956460.643570153281094" style="display: block; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
Erlang/OTP. Erlang is a programming language and runtime system for building massively scalable soft real-time systems with requirements on high availability.. OTP is a set of Erlang libraries, which consists of the Erlang runtime system, a number of ready-to-use
 components mainly written in Erlang, and a set of design principles for Erlang programs. ...</div>
</td>
</tr>
</tbody>
</table>
</div>
<p><a data-cke-saved-href="https://github.com/erlang/otp/releases/tag/OTP-22.0-rc1" href="https://github.com/erlang/otp/releases/tag/OTP-22.0-rc1" id="LPlnk905952" class="OWAAutoLink" previewremoved="true">OTP-22.0-rc1</a></p>
<p><br>
</p>
<p>Thank you for all your contributions!</p>
<p><br>
</p>
<br>
<p></p>
</div>
</body>
</html>