blob: 251bb1a47d37a20c690fca04fcc71050dc130333 (
plain) (
tree)
|
|
<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
<year>2006</year><year>2010</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
The contents of this file are subject to the Erlang Public License,
Version 1.1, (the "License"); you may not use this file except in
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
</legalnotice>
<title>Highlights</title>
<prepared></prepared>
<docno></docno>
<date></date>
<rev>A</rev>
<file>highlights.xml</file>
</header>
<p>This document lists some highlights of Erlang 5.8/OTP R14A
(unpatched), compared to the previous version Erlang 5.7.1/OTP R13B,
with focus on things not already released as R13B patches.</p>
<p>Note: This document was compiled at the time when R14A was released
and does not list any features introduced in R14 patches.</p>
<section>
<title>Erlang Language and Run-time System</title>
<section>
<title>New NIF features</title>
<list type="bulleted">
<item><p>Send messages from a NIF, or from thread created by NIF, to
any local process (enif_send)</p></item>
<item><p>Store terms between NIF calls (enif_alloc_env,
enif_make_copy)</p></item>
<item><p>Create binary terms with user defined memory management
(enif_make_resource_binary)</p></item>
<item><p>Some incompatible changes made to the API. For more
information see the warning text in erl_nif(3).</p></item>
</list>
</section>
<section>
<title>Receive optimizations</title>
<p>Receive statements that can only read out a newly created
reference are now specially optimized so that it will execute
in constant time regardless of the number of messages in the
receive queue for the process. That optimization will benefit
calls to gen_server:call(). (See gen:do_call/4 for an example
of a receive statement that will be optimized.)</p>
</section>
<section>
<title>Improved eprof</title>
<p>eprof has been reimplemented with support in the Erlang
virtual machine and is now both faster (i.e. slows down the
code being measured less) and scales much better. In
measurements we saw speed-ups compared to the old eprof
ranging from 6 times (for sequential code that only uses one
scheduler/core) up to 84 times (for parallel code that uses 8
cores).</p>
<p>Note: The API for the eprof has been cleaned up and extended.
See the documentation.</p>
</section>
</section>
<section>
<title>New features in Existing Applications</title>
<section>
<title>Common_test</title>
<p>
It is now possible for the user to provide specific callback
modules that handle test configuration data, so that data on
arbitray form can be accessed (e.g. by reading files or by
communicating with a configuration server process). Two
default callback modules have been introduced in Common Test:
ct_config_plain and ct_config_xml. The former is used to
handle the traditional Common Test configuration files (with
terms on key-value tuple form) and the latter to handle
configuration data on XML representation.
</p>
<p>
The run_test script has been replaced by a program (with the
same name) which can be executed without explicit
installation. The start flags are the same as for the legacy
start script.
</p>
</section>
<section>
<title>STDLIB</title>
<p>
The module binary from EEP31 (and EEP9) is implemented.
</p>
</section>
</section>
</chapter>
|