<?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>

