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

Differences between 1.3 and version 1.4
Log of other versions for file ai05s/ai05-0101-1.txt

--- ai05s/ai05-0101-1.txt	2008/10/24 00:37:23	1.3
+++ ai05s/ai05-0101-1.txt	2008/12/02 06:01:19	1.4
@@ -1,6 +1,10 @@
-!standard E.2.2(14/2)                                  08-10-23  AI05-0101-1/03
+!standard E.2.2(14/2)                                  08-11-13  AI05-0101-1/04
+!standard E.2.2(16/1)
 !standard E.2.3(14/2)
+!standard E.4(7)
 !class binding interpretation 08-05-28
+!status Amendment 201Z 08-11-26
+!status ARG Approved  5-0-2  08-11-02
 !status work item 08-05-28
 !status received 06-04-22
 !priority Low
@@ -23,9 +27,9 @@
 
 E.2.2(14/2) specifies restrictions applying to the types of non-controlling
 formals of the primitive operations of the limited private type associated
-with an RACW. Should the same restrictions be applied to a non-controlling
-result, to ensure that the returned value can be sent back to the
-calling partition? (Yes.)
+with an remote access-to-classwise (RACW) type. Should the same restrictions
+be applied to a non-controlling result, to ensure that the returned value
+can be sent back to the calling partition? (Yes.)
 
 E.2.3(14/2) has similar language for RCI subprograms and RAS types.
 Should this clause be augmented to forbid functions returning a type that
@@ -42,22 +46,22 @@
 formal parameter {and non-controlling result subtype} shall support
 external streaming (see 13.13.2); 
 
-Add a new bullet after E.2.2 (15):
+Add a new bullet after E.2.2 (16/1):
 
 * A controlling access result value for a primitive function with any controlling
   operands of the corresponding specific type shall either be explicitly converted
   to a remote access-to-class-wide type or be part of a dispatching call where the
-  value designates a controlling operand of the call. 
+  value designates a controlling operand of the call;
 
 Change E.2.3(14/2) as follows:
 
-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 {or result} of a type that does not support external streaming
-(see 13.13.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 {or result} of a type that does not support external streaming
+  (see 13.13.2);
 
 AARM Ramification: No anonymous access types support external streaming, so
-those are never allowed in RCI subprograms.
+they are never allowed as parameters or results of RCI subprograms.
 
 [Editor's note: I intend to delete the access parameter portion above as
 it is redundant and including it complicates the wording for little value.]
@@ -243,10 +247,61 @@
 
 end Test_Function_Access_Return;
 
---!corrigendum E.2.2(14/2)
+!corrigendum E.2.2(14/2)
 
+@drepl
+@xbullet<The primitive subprograms of the corresponding specific limited private
+type shall only have access parameters if they are controlling formal
+parameters; each non-controlling formal parameter shall support external
+streaming (see 13.13.2);>
+@dby
+@xbullet<The primitive subprograms of the corresponding specific type shall only
+have access parameters if they are controlling formal parameters. The 
+primitive functions of the corresponding specific type shall only have an
+access result if it is a controlling access result. Each non-controlling 
+formal parameter and non-controlling result subtype shall support
+external streaming (see 13.13.2);>
+
+!corrigendum E.2.2(16/1)
+
+@dinsa
+@xbullet<A value of a remote access-to-class-wide type shall be dereferenced (or
+implicitly converted to an anonymous access type) only as part of a dispatching
+call where the value designates a controlling operand of the call (see E.4,
+"Remote Subprogram Calls");>
+@dinst
+@xbullet<A controlling access result value for a primitive function with any controlling
+operands of the corresponding specific type shall either be explicitly converted
+to a remote access-to-class-wide type or be part of a dispatching call where the
+value designates a controlling operand of the call;>
+
+!corrignedum E.2.3(14/2)
+
+@drepl
+@xbullet<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 does not support external streaming (see 13.13.2);>
+@dby
+@xbullet<it shall not be, nor shall its visible part contain, a subprogram (or
+access-to-subprogram) declaration whose profile has a parameter or result
+of a type that does not support external streaming (see 13.13.2);>
+
+
+!corrigendum E.4(7)
+
+@drepl
+A remote call interface library unit (see E.2.3)
+defines the remote subprograms or remote access types used for
+remote subprogram calls.
+@dby
+Remote types library units (see E.2.2) and remote call interface library units
+(see E.2.3) define the remote subprograms or remote access types used for 
+remote subprogram calls.
+
+
 !ACATS Test
 
+New B-Tests are needed to check the newly added restrictions.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent