CVS difference for 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