!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. ****************************************************************