[Ericsson AB]

This document lists some highlights of Erlang 5.6/OTP R12B (unpatched), compared to the previous version Erlang 5.5/OTP R11B, with focus on things not already released as R11B patches.

Note: This document was compiled at the time when R12B was released and does not list any features introduced in R12B patches.

1 Erlang Language and Run-time System

2 New Applications

2.1 Test Server

Test Server is a portable test server for automated application testing. The server can run test suites on local or remote targets and log progress and results to HTML pages. The main purpose of Test Server is to act as engine inside customized test tools. A callback interface for such framework applications is provided.

2.2 Common Test

Common Test is a portable application for automated testing. It is suitable for black-box testing of target systems of any type (i.e. not necessarily implemented in Erlang), as well as for white-box testing of Erlang/OTP programs.

Black-box testing is performed via standard O&M interfaces (such as SNMP, HTTP, Corba, Telnet, etc) and, if required, via user specific interfaces. White-box testing of Erlang/OTP programs is easily accomplished by calling the target API functions directly from the test case functions.

Common Test executes test suite programs automatically, without operator interaction. Test progress and results is printed to logs on HTML format, easily browsed with a standard web browser. A number of libraries are provided that contain useful support functions to fill various testing needs and requirements.

2.3 Percept

Percept is a new application for profiling concurrency.

3 Discontinued Applications

The mnemosyne and mnesia_session applications have been removed.

4 Existing Applications

4.1 ASN1

Decoding using the option [per_bin,optimize] is now faster.

4.2 Dialyzer

Dialyzer detects significantly more errors than in previous versions.

Dialyzer now accepts and takes into account type information in record declarations and in contracts. (The exact contract syntax is considered experimental.) Various OTP applications (e.g. stdlib and kernel) are partially annotated with appropriate contracts specifying types information for their functions.

4.3 Inets

A new uniform Inets interface provides a flexible way to start/stop inets services and get information about running services. See inets(3). This also means that inflexibilities in the HTTP server has been removed and more default values has been added.

Profiles are now supported in the HTTP client, i.e. the options available in set_options/1 can be set locally for a certain profile and do not have to affect all HTTP-requests issued in the Erlang node. Calls to the HTTP client API functions not using the profile argument will use the default profile.

4.4 Megaco

Added support for the full v3-standard (including segmentation).

4.5 Parsetools

The size of the code generated by yecc has been reduced.

4.6 SSL

A new implementation of SSL is released as an alpha version in ssl-3.9; it is planned to replace the old implementation in a future release. The new implementation can be accessed by providing the option {ssl_imp,new} to the ssl:connect() and ssl:listen() functions.

The new implementation is Erlang based and all logic is in Erlang and only the payload encryption calculations are done in C via the crypto application.


When an exception occurs the Erlang shell now displays the class, the reason, and the stacktrace in a clearer way (rather than dumping the raw EXIT tuples as before). proc_lib:format/1 displays the exception of crash reports in the same clearer way.

The new module array provides a fast functional array implementation.

Copyright © 1991-2008 Ericsson AB