Version 1.1 of ai05s/ai05-0065-1.txt
!standard E.2.2(8/2) 07-10-18 AI05-0065-1/01
!class binding interpretation 07-10-18
!status work item 07-10-18
!status received 07-08-08
!priority Low
!difficulty Easy
!qualifier Error
!subject Remote access types should be defined as externally streamable
!summary
All remote access types are allowed in a Remote_Types packages; they are
not required to have stream attributes specified by a visible
attribute_definition_clause.
!question
A Remote_Types packages requires [E.2.2(8/2)] that
the full view of each type declared in the visible part of the
library unit that has any available stream attributes shall
support external streaming (see 13.13.2).
This seems to imply that remote access types are not allowed unless
they meet the requirements of 13.13.2(52/2), which says that access types
must have Read and Write attributes specified by a visible
attribute_definition_clause.
But that's bizarre, because their purpose is to be communicable across partitions.
What is the intent?
!recommendation
(See Summary.)
!wording
Modify E.2.2(8/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);
!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.
--!corrigendum 7.6.1(17.1/1)
!ACATS Test
An ACATS test should ensure that remote access types are allowed (it seems likely that
one exists).
!appendix
From: Gary Dismukes
Sent: Wednesday, August 8, 2007 1:43 PM
The following restriction applies to Remote_Types packages:
E.2.2(8/2)
the full view of each type declared in the visible part of the
library unit that has any available stream attributes shall
support external streaming (see 13.13.2).
This seems to imply that remote access types are not allowed in the
visible part unless they meet the requirements of 13.13.2(52/2), which
says that access types must have Read and Write attributes specified
by a visible attribute_definition_clause.
But surely remote access types should always be treated as externally
streamable, since their purpose is to be communicable across partitions,
so it seems like there should be a rule added to define them as such in
either 13.13.2(52/2) or somewhere in E.2.2.
****************************************************************
Questions? Ask the ACAA Technical Agent