Rationale for Ada 2005
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))
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))
© 2005, 2006 John Barnes Informatics.
Sponsored in part by: