From Fedora Project Wiki
No edit summary
 
(40 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{admon/note | All sections of this template are required for review by FESCo.  If any sections are empty it will not be reviewed }}
<!-- All fields on this form are required to be accepted by FESCo.
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
= Feature Name <!-- The name of your feature --> =
= Feature Name <!-- The name of your feature --> =
Features/BetterAdaSupport
Features/AdaDeveloperTools
== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language. It has strong built-in language support for explicit concurrency, offering tasks, synchronous message passing (via guarded task entries), protected objects (a monitor-like construct with additional guards as in conditional critical regions) and nondeterminism (via select statements).
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language.
 
== Owner ==
== Owner ==
<!--This should link to your home wiki page so we know who you are-->
<!--This should link to your home wiki page so we know who you are-->
Line 18: Line 13:


== Current status ==
== Current status ==
* Targeted release: [[Releases/16 | Fedora 16 ]]  
* Targeted release: [[Releases/21 | Fedora 21 ]]  
* Last updated: (DATE)
* Last updated: 2013-11-09
* Percentage of completion: 25%
* Percentage of completion: 85%


<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->


== Detailed Description ==
== Detailed Description ==
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Ada is a modern programming language designed for large, long-lived applications – and embedded systems in particular – where reliability and efficiency are essential. It was originally developed in the early 1980s (this version is generally known as Ada 83) by a team led by Dr. Jean Ichbiah at CII-Honeywell-Bull in France. The language was revised and enhanced in an upward compatible fashion in the early 1990s, under the leadership of Mr. Tucker Taft from Intermetrics in the U.S. The resulting language, Ada 95, was the first internationally standardized (ISO) Object-Oriented Language. Under the auspices of ISO, a further (minor) revision was completed as an amendment to the standard; this version of the language is known as Ada 2005. Work is currently in progress on some additional features (including support for program anotations) and is expected to be completed in 2012.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 34: Line 29:
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
Required steps are:  
Required steps are:  
# XMLAda - full XML stack for
# '''Ada Packaging Guidelines''' - ''accepted''
# GprBuild - Gnat project build
# '''Support of Ada 2012 specification''' - ''done`` (since gcc-4.8)
# GtkAda - Ada bindings for GTK
# '''GprBuild''' - Gnat project build (Requres XMLAda) - ''approved''
# QtAda - Ada bindings for QT
# '''GtkAda''' - Ada bindings for GTK - ''approved''
# GPS - GNAT Programming Studio  
# '''Gela-asis''' - ASIS implementation for qtada - ''under review''
# AWS - Ada web server and tools for http:// and other protocols
# '''QtAda''' - Ada bindings for QT - ''ready for review''
# '''GPS''' - GNAT Programming Studio - ''stale review''
# '''AWS''' - Ada web server and tools for http:// and other protocols - ''approved''
# '''Matreshka''' - a set of Ada libraries to help to develop information systems. - ''approved''
# '''Florist''' -- Open-source implementation of IEEE Standard 1003.5b-1996 - ''approved''
# '''Gnatcoll''' -- Suite of reusable software components and utilities for Ada developers - ''approved''


== How To Test ==
== How To Test ==
Line 55: Line 55:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
#No special hardware is needed.
#For install compiler and project-file use: <pre> $ yum install fedora-gnat-project-common gprbuild </pre>
# Use any examples GPRs for build and test


== User Experience ==
== User Experience ==
Line 62: Line 65:
== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
None


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
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 ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
*
* [http://libre.adacore.com/home/ada_answers/ada_overview/ Ada overview]
* [http://www.ada-auth.org/standards/ada12.html Ada Reference Manual (2012)]


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
* Fedora 19 includes full stack of tools for Ada Development: Compiler (gcc-gnat), Project Builder (gprbuild), IDE (GPS) and some others
* Ada bindings for most popular tools such as: GTK, Qt, zeromq, Databases (PostgreSQL, MySQL and SQLite) etc


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/Ada_developer_tools]]
 


[[Category:FeaturePageIncomplete]]
[[Category:FeaturePageIncomplete]]

Latest revision as of 18:44, 8 November 2013

Feature Name

Features/AdaDeveloperTools

Summary

Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language.

Owner

  • Email: landgraf@fedoraproject.org

Current status

  • Targeted release: Fedora 21
  • Last updated: 2013-11-09
  • Percentage of completion: 85%


Detailed Description

Ada is a modern programming language designed for large, long-lived applications – and embedded systems in particular – where reliability and efficiency are essential. It was originally developed in the early 1980s (this version is generally known as Ada 83) by a team led by Dr. Jean Ichbiah at CII-Honeywell-Bull in France. The language was revised and enhanced in an upward compatible fashion in the early 1990s, under the leadership of Mr. Tucker Taft from Intermetrics in the U.S. The resulting language, Ada 95, was the first internationally standardized (ISO) Object-Oriented Language. Under the auspices of ISO, a further (minor) revision was completed as an amendment to the standard; this version of the language is known as Ada 2005. Work is currently in progress on some additional features (including support for program anotations) and is expected to be completed in 2012.

Benefit to Fedora

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

Scope

Required steps are:

  1. Ada Packaging Guidelines - accepted
  2. Support of Ada 2012 specification - done (since gcc-4.8)
  3. GprBuild - Gnat project build (Requres XMLAda) - approved
  4. GtkAda - Ada bindings for GTK - approved
  5. Gela-asis - ASIS implementation for qtada - under review
  6. QtAda - Ada bindings for QT - ready for review
  7. GPS - GNAT Programming Studio - stale review
  8. AWS - Ada web server and tools for http:// and other protocols - approved
  9. Matreshka - a set of Ada libraries to help to develop information systems. - approved
  10. Florist -- Open-source implementation of IEEE Standard 1003.5b-1996 - approved
  11. Gnatcoll -- Suite of reusable software components and utilities for Ada developers - approved

How To Test

  1. No special hardware is needed.
  2. For install compiler and project-file use:
     $ yum install fedora-gnat-project-common gprbuild 
  3. Use any examples GPRs for build and test

User Experience

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

Dependencies

None

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

Release Notes

  • Fedora 19 includes full stack of tools for Ada Development: Compiler (gcc-gnat), Project Builder (gprbuild), IDE (GPS) and some others
  • Ada bindings for most popular tools such as: GTK, Qt, zeromq, Databases (PostgreSQL, MySQL and SQLite) etc

Comments and Discussion