CVS difference for ai05s/ai05-0065-1.txt

Differences between 1.1 and version 1.2
Log of other versions for file ai05s/ai05-0065-1.txt

--- ai05s/ai05-0065-1.txt	2007/10/19 03:38:24	1.1
+++ ai05s/ai05-0065-1.txt	2007/12/13 04:39:37	1.2
@@ -1,5 +1,6 @@
-!standard E.2.2(8/2)                                        07-10-18    AI05-0065-1/01
+!standard 13.13.2(52/2)                                       07-12-03    AI05-0065-1/02
 !class binding interpretation 07-10-18
+!status ARG Approved  8-0-1  06-11-11
 !status work item 07-10-18
 !status received 07-08-08
 !priority Low
@@ -35,37 +36,57 @@
 
 !wording
 
-Modify E.2.2(8/2):
+Modify 13.13.2(52/2):
 
-* the full view of each {non-access} type declared in the visible part of the
-  library unit that has any available stream attributes shall support external
-  streaming (see 13.13.2).
-
-Modify E.2.3(14/2):
-
-* it shall not be, nor shall its visible part contain, a subprogram (or
-  access-to-subprogram) declaration whose profile has an access parameter or
-  a parameter of a type that {neither is a remote access type nor supports}[does
-  not support] external streaming (see 13.13.2);
+A type is said to support external streaming if Read and Write attributes are
+provided for sending values of such a type between active partitions, with Write
+marshalling the representation, and Read unmarshalling the representation. A
+limited type supports external streaming only if it has available Read and
+Write attributes. A type with a part that is of {a non-remote}[an] access type
+supports external streaming only if that access type or the type of some part
+that includes the access type component, has Read and Write attributes that
+have been specified via an attribute_definition_clause, and that
+attribute_definition_clause is visible. An anonymous access type does not
+support external streaming. All other types {(including remote access types,
+see E.2.2)} support external streaming.
 
 !discussion
 
-We can simply say "non-access" in E.2.2(8/2), because any access type declared in the
-visible part of the specification of a Remote_Types package is, by definition,
-a remote access type. (Types that don't meet the criteria are illegal.)
-
-We could have defined "remote access types" to be externally streamable, but that
-seems dicey. First, they're not necessarily streamable outside of partition
-communication; for instance, they may not work to disk files (there are no such
-requirements in Annex E, and it would seem unnecessarily to add them). That would
-mean that they would violate the intuitive meaning of "externally streamable".
-
-Second, they could only be defined as externally streamable by adding a
-"notwithstanding" rule to E.2.2 or by adding exceptions to 13.13.2(52/2) which
-necessarily would have to include a forward reference to an optional Annex. Neither
-seems very appealing.
+It is easier to define "remote access types" to be externally streamable than to
+add additional text to Annex E.
 
---!corrigendum 7.6.1(17.1/1)
+While such access types types are not necessarily streamable outside of partition
+communication (for instance, they may not work to disk files), that's not
+relevant for the formal definition of "externally streamable" (which is only
+about partition communication). This is mildly annoying, as it is different
+than the intuitive meaning of "externally streamable". But it isn't sufficient
+reason to add a bunch of additional text to Annex E.
+
+!corrigendum 13.13.2(52/2)
+
+@drepl
+A type is said to support external streaming if Read and Write attributes are
+provided for sending values of such a type between active partitions, with Write
+marshalling the representation, and Read unmarshalling the representation. A
+limited type supports external streaming only if it has available Read and
+Write attributes. A type with a part that is of an access type
+supports external streaming only if that access type or the type of some part
+that includes the access type component, has Read and Write attributes that
+have been specified via an @fa<attribute_definition_clause>, and that
+@fa<attribute_definition_clause> is visible. An anonymous access type does not
+support external streaming. All other types support external streaming.
+@dby
+A type is said to support external streaming if Read and Write attributes are
+provided for sending values of such a type between active partitions, with Write
+marshalling the representation, and Read unmarshalling the representation. A
+limited type supports external streaming only if it has available Read and
+Write attributes. A type with a part that is of a non-remote access type
+supports external streaming only if that access type or the type of some part
+that includes the access type component, has Read and Write attributes that
+have been specified via an @fa<attribute_definition_clause>, and that
+@fa<attribute_definition_clause> is visible. An anonymous access type does not
+support external streaming. All other types (including remote access types,
+see E.2.2) support external streaming.
 
 !ACATS Test
 

Questions? Ask the ACAA Technical Agent