Features/Erlang R15

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Almost complete/)
m (typo)
 
(One intermediate revision by one user not shown)
Line 12: Line 12:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/17 | Fedora 17 ]]  
 
* Targeted release: [[Releases/17 | Fedora 17 ]]  
* Last updated: 2012-02-06
+
* Last updated: 2012-03-31
* Percentage of completion: 80%
+
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 43: Line 43:
  
 
* Rebuilding Erlang/OTP itself.
 
* Rebuilding Erlang/OTP itself.
* Creating new list of exported functions and built-in functions (BIFs). ETA: 15-01-2012.
+
* Fix all broken packages. I expect some issues in ejabberd at least due to incompatible changes in erl_driver API.  
* Rebuild 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. ETA: 28-02-2011. I expect some issues at least due to incompatible changes in erl_driver API.
+
  
=== Rebuilding in progress ===
+
== How To Test ==
  
 +
* Ensure that high-grade Erlang applications are still working:
 
{| border="1"
 
{| border="1"
 
|-
 
|-
 
| '''Name''' || '''Status'''
 
| '''Name''' || '''Status'''
 
|-
 
|-
| {{package|couchdb}} || {{no}}
+
| {{package|couchdb}} || {{yes}}<sup>1</sup>
 
|-
 
|-
| {{package|ejabberd}} || {{no}}
+
| {{package|ejabberd}} || {{yes}}<sup>2</sup>
 
|-
 
|-
| {{package|erlang}} || {{yes}}
+
| {{package|mochiweb}} || {{yes}}
 
|-
 
|-
| {{package|erlang-eradius}} || {{no}}
+
| {{package|rabbitmq-server}} || {{yes}}
 
|-
 
|-
| {{package|erlang-erlsyslog}} || {{no}}
+
| {{package|yaws}} || {{yes}}
|-
+
| {{package|erlang-esdl}} || {{no}}
+
|-
+
| {{package|erlang-oauth}} || {{no}}
+
|-
+
| {{package|erlang-pgsql}} || {{no}}
+
|-
+
| {{package|erlang-erlsom|erlsom}} || {{no}}
+
|-
+
| {{package|erlang-esasl|esasl}} || {{no}}
+
|-
+
| {{package|erlang-etap|etap}} || {{no}}
+
|-
+
| {{package|erlang-ibrowse|ibrowse}} || {{no}}
+
|-
+
| {{package|erlang-mochiweb|mochiweb}} || {{no}}
+
|-
+
| {{package|rabbitmq-server}} || {{no}}
+
|-
+
| {{package|wings}} || {{no}}
+
 
|}
 
|}
  
== How To Test ==
+
<small>
 
+
<sup>1</sup> Spec-file has %check section with a complete set of self-tests<br/>
* Ensure that high-grade Erlang applications are still working:
+
<sup>2</sup> Compatibility issues with R15B fixed upstream<br/>
** {{package|couchdb}} (spec-file has %check section with a complete set of self-tests)
+
</small>
** {{package|ejabberd}}
+
** {{package|mochiweb}}
+
** {{package|rabbitmq-server}}
+
** {{package|yaws}}
+
  
 
* Collect feedback from volunteers regarding their experience with this Erlang/OTP version
 
* Collect feedback from volunteers regarding their experience with this Erlang/OTP version

Latest revision as of 10:24, 31 March 2012

Contents

[edit] Erlang/OTP R15

[edit] Summary

Update Erlang to the upstream R15 release. The R15A version was released in 21 November 2011, and the final version was announced in 14 December 2011.

[edit] Owners

  • email: lemenkov@gmail.com

[edit] Current status

  • Targeted release: Fedora 17
  • Last updated: 2012-03-31
  • Percentage of completion: 100%

[edit] 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 above text was taken from en:wikipedia:erlang

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

[edit] Benefit to Fedora

Several notable improvements were introduced in this version. Some highlights are:

  • Line number and filename information are now included in exception backtraces. This information will be pretty-printed in the shell and used in crash reports etc. In practice it will be much easier to find where something failed.
  • The driver interface has been changed to enable 64-bit aware drivers. Most importantly the return types for ErlDrvEntry callbacks 'call' and 'control' has been changed which require drivers to be changed.
  • CommonTest hooks are now in a final supported version.
  • There is a new GUI tool in the observer application which integrates pman, etop, appmon and tv into one tool. The tool does also contain functions for activating tracing in an easy way.
  • The Erlang distribution can now be run over the new SSL implementation.
  • Lots of other changes.

See full changelog for the detailed description of changes:

http://erlang.org/download/otp_src_R15D.readme

[edit] Scope

Required steps are:

  • Rebuilding Erlang/OTP itself.
  • Fix all broken packages. I expect some issues in ejabberd at least due to incompatible changes in erl_driver API.

[edit] How To Test

  • Ensure that high-grade Erlang applications are still working:
Name Status
Package-x-generic-16.pngcouchdb Yes1
Package-x-generic-16.pngejabberd Yes2
Package-x-generic-16.pngmochiweb Yes
Package-x-generic-16.pngrabbitmq-server Yes
Package-x-generic-16.pngyaws Yes

1 Spec-file has %check section with a complete set of self-tests
2 Compatibility issues with R15B fixed upstream

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

[edit] Contingency Plan

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

[edit] Documentation

[edit] Release Notes

New version of Erlang/OTP is available in Fedora 17.

[edit] Comments and Discussion