<div dir="ltr"><div class="gmail-preview-content">
        <div class="gmail-comment-body gmail-markdown-body gmail-js-preview-body" style="min-height:539.75px"><h1>OTP 20 Release Candidate 1</h1>
<p>This is the first of two release candidates before the OTP 20 
release in June 2017. <br></p><p>The intention with this release is that you as users try it and
 give us feedback if something does not work as expected. Could be a 
bug, an unexpected incompatibility, a significant change of 
characteristics in negative direction, etc.</p><p>Erlang/OTP <span><span class="gmail-il">20.0</span></span> is a new major release with new features, quite a few 
(characteristics) improvements, as well as a few incompatibilities. <br><br></p>
<p>Here are some of the most important news:</p>
<h2>Potential Incompatibilities</h2>
<ul><li>
<p>ERTS:</p>
<ul><li>The non SMP Erlang VM is deprecated and not built by default</li><li>Remove deprecated <code>erlang:hash/2</code></li><li>erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.</li><li>The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs<br>
see <code>erlang:check_process_code/3</code>.</li><li>The NIF library reload is not supported anymore.</li></ul>
</li><li>
<p>Asn1: Deprecated module and functions removed (<code>asn1rt</code>, <code>asn1ct:encode/3</code> and <code>decode/3</code>)</p>
</li><li>
<p>Ssh: client only option in a call to start a daemon will now fail</p>
</li></ul>
<h2>Highlights</h2>
<h3>Erts:</h3>
<ul><li>Dirty schedulers enabled and supported on VM with SMP support.</li><li>support for “dirty” BIFs and “dirty” GC.</li><li>erlang:garbage_collect/2 for control of minor or major GC</li><li>Erlang literals are no longer copied when sending messages.</li><li>Improved performance for large ETS tables, >256 entries (except ordered_set)</li><li>erlang:system_info/1 atom_count and atom_limit</li><li>Reduced memory pressure by converting sub-binaries to heap-binaries during GC</li><li>enif_select, map an external event to message</li></ul>
<h3>Compiler:</h3>
<ul><li>Code generation for complicated guards is improved.</li><li>Warnings for repeated identical map keys. <code>#{'a'=>1, 'b'=>2, 'a'=>3}</code> will warn for the repeated key <code>a</code>.</li><li>By default there is now a warning when <code>export_all</code> is used. Can be disabled</li><li>Pattern matching for maps is optimized</li><li>New option <code>deterministic</code> to omit path to source + options info the BEAM file.</li><li>Atoms may now contain arbitrary unicode characters.</li><li><code>compile:file/2</code> has an option to include extra chunks in the BEAM file.</li></ul>
<h3>Misc other applications</h3>
<ul><li>Unnamed ets tables optimized</li><li>A new event manager to handle a subset of OS signals in Erlang</li><li>Optimized sets add_element, del_element and union</li><li>Added <code>rand:jump/0-1</code></li><li>When a <code>gen_server</code> crashes, the stacktrace for the client will be printed to facilitate debugging.</li><li><code>take/2</code> has been added to <code>dict</code>, <code>orddict</code>, and <code>gb_trees</code>.</li><li><code>take_any/2</code> has been added to <code>gb_trees</code></li><li>Significantly updated string module with unicode support</li><li><code>erl_tar</code> support for long path names and new file formats</li><li>Dtls: Documented API, experimental</li><li>SSH: improving security, removing and adding algorithms</li><li>New  <code>math:fmod/2</code></li></ul>
<p>For more details see<br>
<a href="http://erlang.org/download/otp_src_20.0-rc1.readme">http://erlang.org/download/otp_src_20.0-rc1.readme</a></p>
<p>Pre built versions for Windows can be fetched here:<br>
<a href="http://erlang.org/download/otp_win32_20.0-rc1.exe">http://erlang.org/download/otp_win32_20.0-rc1.exe</a><br>
<a href="http://erlang.org/download/otp_win64_20.0-rc1.exe">http://erlang.org/download/otp_win64_20.0-rc1.exe</a></p>
<p>On line documentation can be browsed here:<br>
<a href="http://www.erlang.org/documentation/doc-9.0-rc1/doc/">www.erlang.org/documentation/doc-9.0-rc1/doc/</a></p>
<p>Thanks to all contributors.</p><p>/The Erlang/OTP team at Ericsson<br></p></div>
      </div></div>