Features/OCaml3.12

= Feature Name OCaml 3.12 =

Summary
OCaml 3.12 is a major new release of the OCaml language and compiler.

The 8 new major language features are described in this paper (PDF - skip to section 3), and as well as these new features there are new supporting camlp4 and libraries.

Owner

 * Name: Richard W.M. Jones
 * Email: rjones@redhat.com

NOTE
I (rjones) am on holiday all of February, and won't be available on email or IRC.

Current status

 * Targeted release: Fedora 15
 * Last updated: 2011-02-03
 * Percentage of completion: 100%

Detailed Description
OCaml 3.12 is a major revision of the OCaml programming language, the camlp4 macro language, libraries, and CDuce for XML processing.

New language features include:


 * modules are now first-class values
 * nested module open
 * open record notation
 * mark OO methods which must be overridden in subclasses
 * limited support for delimited overloading in the language

camlp4 and camlp5 macro languages have been revised and extended.

The changes are completely backwards compatible.

Benefit to Fedora
For Fedora this brings the OCaml support right up to date and alongside Debian. It also enables our developers to use a powerful and fast programming language.

Scope
What needs to be done is to update all of the packages listed on this page:

http://cocan.org/fedora#Package_status

Some of them will simply be a recompile, some of them have new upstream versions which are compatible with 3.12.

How To Test
No special hardware is needed.

Users can test the new features by compiling their own programs or playing in the REPL:

$ rlwrap ocaml

User Experience
End users won't notice the difference. Developers will have a more powerful and up to date OCaml to use.

Dependencies
None.

Contingency Plan
Stay with OCaml 3.11.

Documentation

 * https://forge.ocamlcore.org/docman/view.php/77/112/leroy-cug2010.pdf
 * http://lambda-the-ultimate.org/node/4050

Release Notes

 * Fedora 15 includes OCaml 3.12, a major new release of the OCaml language and compiler.

Comments and Discussion

 * See Talk:Features/OCaml3.12