Features/D2 programming

''= Feature: D Programming =

Summary
Update D compiler (LDC) to D2, about D standard runtime library:
 * update Tango to D2 (optional)
 * add phobos

Owner

 * Name: Jonathan Mercier
 * Wiki page:
 * Email: [mailto:bioinfornatics@fedoraproject.org bioinfornatics AT fedoraproject DOT org]

Current status

 * Targeted release: Fedora 16
 * Last updated: 2011-08-31
 * Percentage of completion: 100%

Detailed Description
D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. The D language is statically typed and compiles directly to machine code. It's multiparadigm, supporting many programming styles: imperative, object oriented, and metaprogramming. It's a member of the C syntax family, and its appearance is very similar to that of C++. LDC is a compiler for the D programming Language. It is based on the latest DMD frontend and uses LLVM as backend. LLVM provides a fast and modern backend for high quality code generation. Druntime is the minimum library required to support the D programming language. It includes the system code required to support the garbage collector, associative arrays, exception handling, array vector operations, startup/shutdown, etc.
 * There are currently four implementations:
 * 1) Digital Mars dmd for Windows 1.0 2.0, x86 Linux 1.0 2.0, Mac OS X 1.0 2.0, and x86 FreeBSD 1.0
 * 2) LLVM D Compiler ldc for D version 1 and version 2
 * 3) Gnu D compiler gdc.
 * 4) D.NET compiler alpha for .NET for D version 2.
 * LLVM D Compiler
 * The Library

Phobos: Each module in Phobos conforms as much as possible to the following design goals. These are goals rather than requirements because D is not a religion, it's a programming language, and it recognizes that sometimes the goals are contradictory and counterproductive in certain situations, and programmers have jobs that need to get done.

Tango is a cross-platform open-source software library, written in the D programming language for D programmers. It is structured as a cohesive and comprehensive library for general purpose usage, and is supported by a growing number of recognized D enthusiasts. Availability of solid and extensive documentation represents a prime factor in library accessibility, and thus this project is as much about documentation production as it is about top-notch functionality.

Benefit to Fedora
Fedora will take some benefit to increase its community of developers with the inclusion of this feature. And an easy way for people who want to try this language.

Fedora will begin the first linux distribution with a D2 environnement.

Scope
Required steps are:
 * 1) LDC package
 * 2) druntime package
 * 3) phobos package
 * 4) optiona: tango package

How To Test

 * Ensure that unnitest works
 * Collect feedback from volunteers regarding their experience with D programming

Contingency Plan
None necessary. 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.

Documentation

 * D:
 * LDC:
 * Tango:
 * Phobos

Release Notes
The D2 programming language will be available in Fedora 16. D is a modern language with high performance near C/C++ with an easy syntax. C/C++ and Java developers can easily migrate to D.

Comments and Discussion

 * See Talk:Features/D2 Programming