Rationale for Ada 2005

John Barnes
Contents   Index   References   Search   Previous   Next 

9.2.2 Inconsistencies with original Ada 95

There are a small number of inconsistencies between the original Ada 95 and that resulting from various corrections.
1 — The function Exception_Identity applied to the value Null_Occurrence now returns Null_Id whereas it originally raised Constraint_Error in Ada 95. See 6.2 . (AI-241, 11.4.1(19.y))
2 — The procedure Raise_Exception applied to the value Null_Id now raises Constraint_Error whereas it originally did nothing (and thus returned). See 6.4. (AI-446, 11.4.1(19.aa))
3 — Rounding of static real expressions is now implementation-defined whereas it was originally defined as away from zero. The reason for the change is to match the behaviour of the hardware; this also means that static and non-static expressions are more likely to get the same answer which is comforting. (AI-268, 4.9(44.s))
4 — The lower bounds of strings returned by functions Exception_Name, Exception_Message, and Exception_Information (and wide versions) are now defined to be 1. (AI-378, AI-417, 11.4.1(19.z))
Similarly the bounds of the various functions Slice are now defined. (AI-238, A.4.4(106.e))
5 — There are some changes regarding stream attributes. (AI-108, 13.13.2(60.g) and AI-195, 13.13.2(60.h))
6 — There are changes regarding truncation of stream files. (AI-283, A.12.1(36.a))
7 — There is a potential inconsistency regarding the use of Internal_Tag outside of streaming. However, there was an implementation permission to do as is now required and so programs were not portable anyway. (AI-279, 3.9(33.b))
8 — The procedure Update in Interfaces.C.Strings no longer adds a nul character. (AI-242, B.3.1(60.a))

Contents   Index   References   Search   Previous   Next 
© 2005, 2006, 2007 John Barnes Informatics.
Sponsored in part by:
The Ada Resource Association and its member companies: ARA Members AdaCore Polyspace Technologies Praxis Critical Systems IBM Rational Sofcheck and   Ada-Europe:
Ada-Europe