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

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

--- ai05s/ai05-0101-1.txt	2009/03/21 02:26:03	1.5
+++ ai05s/ai05-0101-1.txt	2009/05/31 03:47:37	1.6
@@ -1,4 +1,4 @@
-!standard E.2.2(14/2)                                  08-11-13  AI05-0101-1/04
+!standard E.2.2(14/2)                                  09-05-30  AI05-0101-1/05
 !standard E.2.2(16/1)
 !standard E.2.3(14/2)
 !standard E.4(7)
@@ -27,13 +27,14 @@
 
 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 remote access-to-classwise (RACW) type. Should the same restrictions
+with a remote access-to-classwide (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
-does not support external streaming? (Yes.)
+E.2.3(14/2) has similar language for remote call interface (RCI) subprograms
+and remote access-to-subprogram (RAS) types. Should this clause be augmented
+to forbid functions returning a type that does not support external
+streaming? (Yes.)
 
 !wording
 
@@ -63,8 +64,9 @@
 AARM Ramification: No anonymous access types support external streaming, so
 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.]
+[Editor's note: The access parameter portion of the wording above was
+intentionally deleted as it is redundant and including it complicates the
+wording for little value.]
 
 Change E.4(7) as follows:
 
@@ -105,7 +107,7 @@
 If controlling anonymous access parameters of dispatching subprograms can be
 designated by a value of a remote access-to-class-wide type, it seems logical
 that a controlling access result of a dispatching function should be treated
-the same way; as a result type that can be designated by a value of a remote
+the same way: as a result type that can be designated by a value of a remote
 access-to-class-wide type. Indeed, there does not seem to be any other semantic
 meaning that could be applied to such an access result returned from a remote 
 function call. It surely must be a value of a remote access-to-class-wide type.
@@ -115,7 +117,7 @@
 access-to-class-wide type as a controlling access result, then special wording
 will need to be added to the RM to allow this, similar to the wording used to
 allow streaming of remote access-to-class-wide types for subprogram parameters.
-The wording should should add restrictions that ensure such a result is either
+The wording should add restrictions that ensure such a result is either
 explicitly converted to a remote access-to-class-wide type by the caller, or
 used as a controlling operand of another dispatching call to a remote subprogram.
 
@@ -131,11 +133,11 @@
 to an anonymous access type) only as part of a dispatching call where the value
 designates a controlling operand of the call”. 
 
-These rules makes it impossible for a local function to obtain a value of a 
+These rules make it impossible for a local function to obtain a value of a 
 remote access-to-class-wide type and return it to the caller, because it would
-have to be implictly converted from an access-to-class-wide type to an anonymous
+have to be implicitly converted from an access-to-class-wide type to an anonymous
 access-to-specific type of the controlling result, which is not allowed. For the
-same reason, these rules makes it impossible for a remote function to obtain a
+same reason, these rules make it impossible for a remote function to obtain a
 value of a remote access-to-class-wide type from another partition and return 
 that value to the caller.
 
@@ -145,7 +147,8 @@
 remote subprogram calls, but remote types library units also define remote 
 subprogram calls and remote access types for issuing remote subprogram calls.
 
-An example, showing the usage of functions that return remote access types;
+Here is an example, showing the usage of functions that return remote access
+types:
 
 package P is
    pragma Remote_Types;
@@ -159,8 +162,19 @@
    type T is tagged limited null record;
 end P;
 
-with Distributed_P;
+with P;
+package Distributed_P is
+
+   pragma Remote_Call_Interface;
+
+   type T_Access is access all P.T'Class;
 
+   procedure Set_Foo (Item : T_Access);
+
+   function Get_Foo return T_Access;
+end Distributed_P;
+
+with Distributed_P;
 package body P is
 
    Foo : aliased T;
@@ -180,19 +194,6 @@
    end Remote_Call;
 
 end Foo_Pkg;
-
-with P;
-
-package Distributed_P is
-
-   pragma Remote_Call_Interface;
-
-   type T_Access is access all P.T'Class;
-
-   procedure Set_Foo (Item : T_Access);
-
-   function Get_Foo return T_Access;
-end Distributed_P;
 
 package body Distributed_P is
 

Questions? Ask the ACAA Technical Agent