Erlang/OTP R14

Summary

Owners

Current status

Detailed Description

Erlang is a general-purpose concurrent programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing. For concurrency it follows the Actor model. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. The first version was developed by Joe Armstrong in 1986. It supports hot swapping, thus code can be changed without stopping a system. Erlang was originally a proprietary language within Ericsson, but was released as open source in 1998.

While threads are considered a complicated and error-prone topic in most languages, Erlang provides language-level features for creating and managing processes with the aim of simplifying concurrent programming. Though all concurrency is explicit in Erlang, processes communicate using message passing instead of shared variables, which removes the need for locks.

The status of Erlang and related packages in Fedora/EPEL is shown at Erlang SIG page.

Benefit to Fedora

Some notable improvements were made in this version. Among them are:

Create binary terms with user defined memory management

Receive statements 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. All gen_server users (read, those who use ejabberd and/or couchdb) will love this feature!

Users can override the auto-imported BIFs with their own realizations.

Fedora will be the first release-based distro with this new Erlang release, which encourages other Erlang developers and enthusiasts to give Fedora a try.

Also, with this feature, we will prove again that Fedora is a bleeding edge distribution.

Scope

Required steps are:

Rebuilding Erlang/OTP itself

Creating new list of exported functions and built-in functions (BIFs)

Rebuilding all dependent packages. at this step we must carefully check for possible usage of obsoleted functions, for added/removed runtime requirements and provide/send upstream patches when necessary.

In fact, the last step is not necessary for all Erlang-related packages, since Erlang's binary format is API/ABI-stable, but, just to be sure that every runtime dependency will be met, I propose full rebuild.

How To Test

Ensure that high-grade Erlang applications are working:

couchdb (spec-file has %check section with a complete set of self-tests)

Collect feedback from volunteers regarding their experience with this Erlang/OTP version

Contingency Plan

None necessary. Instead of falling back to previous version we should fix existing packages in order to help the Community. We should monitor upstream development process for potentially discovered issues and proactively apply patches.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, and JBoss are trademarks or registered trademarks of
Red Hat, Inc. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community
maintained site. Red Hat is not responsible for content.