Rationale for Ada 2005: 7. Epilogue
RUSTOPBACKNEXT
ENG |
2.1 Incompatibilities with original Ada 95
@ There are a small number of incompatibilities between the original Ada 95 and that resulting from various corrections. 1 – A limited type can become nonlimited. Applying the Access or Unchecked_Access attribute to the current instance of such a type is now illegal. (AI-225, 3.10(26.e)) This is fairly obscure. Remember that the current instance rule is about referring to a type within its own declaration such as
|
|
|
|
|
|
|
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 paper 5, section 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 paper 5, section 4. (AI-466, 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, 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)) 3 Unfinished topics A number of topics which seemed to be good ideas initially were abandoned for various reasons. Usually the reason was simply that a good solution could not be produced in the time available and the trouble with a bad solution is that it is hard to put it right later. In other cases it is now felt that the topic deserved further consideration in the light of better understanding; sometimes there was fairly general agreement that the current situation was not ideal and ought to be improved, nevertheless there was no agreement on what should be done. And in some cases the good idea seemed a bad idea after further discussion. @ So it might be that when Ada is next revised these further features might be reconsidered and so perhaps this section might be called forthcoming attractions. But on the other hand maybe other matters will need to be dealt with in the light of user experience with Ada 2005. @ The following subsections briefly outline the main topics – for a fuller discussion, consult the text of the Ada Issue concerned.Rationale for Ada 2005: 7. Epilogue
ENGRUSTOPBACKNEXT