CVS difference for ais/ai-00240.txt

Differences between 1.5 and version 1.6
Log of other versions for file ais/ai-00240.txt

--- ais/ai-00240.txt	2002/07/23 01:05:23	1.5
+++ ais/ai-00240.txt	2006/02/21 04:21:37	1.6
@@ -204,3 +204,134 @@
 
 ****************************************************************
 
+From: Robert A. Duff
+Sent: Tuesday, January 3, 2006 12:30 PM
+
+13.13.2 says:
+
+                         Wording Changes from Ada 95
+
+    61.r/1 {AI95-00366-01} Defined supports external streaming to put all of
+          the rules about "good" stream attributes in one place. This is used
+          for distribution and for defining pragma Pure.
+
+and E.2.3 says:
+
+                         Wording Changes from Ada 95
+
+    20.c/2 {AI95-00240-01} {AI95-00366-01} Changed the wording to use the
+          newly defined term type that supports external streaming, so that
+          various issues with access types in pure units and implicitly
+          declared attributes for type extensions are properly handled.
+
+but this is an incompatibility (at least in part), not just a Wording Change.
+So it should be listed as an incompatibility in the AARM.
+
+For example, ACATS test bxe2009 says (in package spec BXE2009):
+
+  procedure Has_Ok_Limited (P : Is_Limited_With_Attrs);              -- OK.
+
+This line is legal in Ada 95, but illegal in Ada 2005, because the type
+Is_Limited_With_Attrs has Read/Write attributes, but they are not visible at
+this place.
+
+E.2.3(14/2) requires the type to support external streaming.
+
+"Support external streaming" is defined in 13.13.2(53/2),
+in terms of streaming attrs being "available".
+
+"Available" is defined for such attributes in 13.13.2(39/2).
+
+I don't know if there is a corresponding incompatibility related to pragma
+Pure.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Tuesday, January 3, 2006  1:51 PM
+
+> So it should be listed as an incompatibility in the AARM.
+
+The change to "external streaming" from "available" was semantically
+neutral.
+
+> For example, ACATS test bxe2009 says (in package spec BXE2009):
+>
+>   procedure Has_Ok_Limited (P : Is_Limited_With_Attrs);
+>    -- OK.
+>
+> This line is legal in Ada 95, but illegal in Ada 2005, because the type
+> Is_Limited_With_Attrs has Read/Write attributes, but they are not
+> visible at
+> this place.
+
+No, this line is not legal Ada 95; AI-240 (which is a Binding
+Interpretation) changes E.2.3(14) to use "available" rather than the
+original wording. So the attributes have to be visible in order for this to
+work.
+
+We don't have a category to document changes to the original Ada 95 which
+are incompatible with that original definition but are considered
+corrections to it (thus the original definition is gone, and any compiler
+that follows it is wrong). You've pointed out a number of these, and I admit
+that it is confusing that they're not documented in some way.
+
+Any suggestions as to how to document these cases??
+
+> I don't know if there is a corresponding incompatibility related to pragma
+> Pure.
+
+Yes, and that's documented in 10.2.1(28.e/2).
+
+****************************************************************
+
+From: Robert A. Duff
+Sent: Tuesday, January 3, 2006  5:21 PM
+
+> No, this line is not legal Ada 95; AI-240 (which is a Binding
+> Interpretation) changes E.2.3(14) to use "available" rather than the
+> original wording. So the attributes have to be visible in order for this to
+> work.
+
+OK, thanks.
+
+But what about that ACATS test?  Its existence seems to indicate that nobody is
+obeying AI-240.
+
+> We don't have a category to document changes to the original Ada 95 which
+> are incompatible with that original definition but are considered
+> corrections to it (thus the original definition is gone, and any compiler
+> that follows it is wrong). You've pointed out a number of these, and I admit
+> that it is confusing that they're not documented in some way.
+>
+> Any suggestions as to how to document these cases??
+
+You could systematically go through all the binding interps,
+and add annotations to the AARM at the places where they caused
+wording changes.
+
+But that's probably too much work.  It's a lot easier to tell people that if
+they care about these issues, they have to search the AI's.
+
+****************************************************************
+
+From: Pascal Leroy
+Sent: Thursday, January 3, 2006  4:41 AM
+
+> But what about that ACATS test?  Its existence seems to
+> indicate that nobody is obeying AI-240.
+
+You mean "nobody among the many vendors who support Annex E", right?
+
+****************************************************************
+
+From: Robert A. Duff
+Sent: Thursday, January 3, 2006  12:32 PM
+
+ight.  ;-)
+
+We found this at AdaCore while implementing and testing Ada 2005 mode.
+We didn't realize this part of the stream changes are BI.
+
+****************************************************************
+

Questions? Ask the ACAA Technical Agent