<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 21 Release Candidate 2</h1>
<p>This is the second of two planned release candidates before the OTP 21 release.</p>
<p>As we move closer to OTP 21 we aim to improve the quality and stability of the release candidate.
<br>
</p>
<p>So this candidate is mostly the same as the first one, but with bug-fixes and improvements to the new features mentioned before.<br>
</p>
<p>The intention with this release is that you as users try it and give us feedback</p>
<p>Erlang/OTP 21 is a new major release with new features, improvements as well as incompatibilities.</p>
<h2>Potential Incompatibilities</h2>
<ul>
<li>All Corba applications are now moved from the OTP repository</li><li>A new Corba repository will be created https://github.com/erlang</li><li>New applications ftp and tftp, moved from inets</li><li>ssl no longer supports 3_DES cipher suites or RSA-key exchange cipher suites by default</li><li>erlang:monitor on a primitive node (erl_interface, jinterface, etc) will no longer fail with badarg exception. Instead a monitor will be created, but it will only supervise the connection to the node.</li></ul>
<h2> Highlights</h2>
<h3> Erts:</h3>
<ul>
<li>Enhanced IO scalability</li><li>Support for usage of distribution controller processes for alternative transports, routing etc</li><li>compact instructions on 64bit systems for code below 4GB 20% less memory for loaded code</li><li>Rewrite of the efile-driver with NIFs and "Dirty schedulers" resulting in faster file operations</li><li>non-smp VM removed</li><li>link and monitor optimized for scalability</li><li>os:getenv/putenv now work on thread-safe emulation. No longer in sync with libc getenv(3). Manual synchronization will be needed.</li></ul>
<h3>Compiler:</h3>
<ul>
<li>Misc compiler optimizations including contributions from the Elixir team resulting in 10% improvements in benchmarks</li><li>"Tuple calls" have been removed from the run-time system.</li><li>Code such as <code>f({ok, Val}) -> {ok, Val}</code> is now automatically rewritten to
<code>f({ok, Val} = Tuple) -> Tuple.</code> this reduces code size, execution time, and removed GC pressure.</li><li>More information in stacktrace from a number of operators</li><li><code>erlang:get_stacktrace/0</code> deprecated to be replaced with <code>try ... catch C:R:Stacktrace -> ...</code></li><li>Creation of small maps with literal keys optimized.</li></ul>
<h3>Security:</h3>
<ul>
<li>DTLS support in SSL</li><li>Enhanced support for distribution over TLS</li><li>"unsecure" ciphers removed from defaults in SSL and SSH.</li><li>A new option value defined to facilitate implementing exec servers. Old option kept for compatibility, but now gives errors on stderror.</li></ul>
<h3>Standard libraries:</h3>
<ul>
<li>New API for logging, logger</li><li>New uri_string module for parsing URIs according to "The standard"</li><li>New function lists:search(list,fun/1) -> {ok, Value} | false</li><li>Changed default behaviour of .erlang loading. escript, erlc, dialyzer and typer no longer load an .erlang at all.</li></ul>
<p>For more details see<br>
<a href="http://erlang.org/download/otp_src_21.0-rc2.readme" id="LPlnk351859" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_src_21.0-rc2.readme</a></p>
<p>Pre built versions for Windows can be fetched here:<br>
<a href="http://erlang.org/download/otp_win32_21.0-rc2.exe" id="LPlnk250746" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_win32_21.0-rc2.exe</a><br>
<a href="http://erlang.org/download/otp_win64_21.0-rc2.exe" id="LPlnk352154" class="OWAAutoLink" previewremoved="true">http://erlang.org/download/otp_win64_21.0-rc2.exe</a></p>
<p>Online documentation can be browsed here:<br>
<a href="http://erlang.org/documentation/doc-10.0-rc2/doc" id="LPlnk692665" class="OWAAutoLink" previewremoved="true">http://erlang.org/documentation/doc-10.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" id="LPlnk963092" class="OWAAutoLink" previewremoved="true">https://github.com/erlang/otp</a></p>
tag:<br>
<p><a href="https://github.com/erlang/otp/releases/tag/OTP-21.0-rc2" id="LPlnk104359" class="OWAAutoLink" previewremoved="true">OTP-21.0-rc2</a></p>
<p> </p>
<p>Thank you for all your contributions!</p>
<br>
<p><br>
</p>
<br>
<p></p>
</div>
</body>
</html>