CVS difference for ai12s/ai12-0031-1.txt
--- ai12s/ai12-0031-1.txt 2013/12/18 00:53:46 1.5
+++ ai12s/ai12-0031-1.txt 2013/12/18 03:56:00 1.6
@@ -1,5 +1,7 @@
-!standard E.2.3(19/3) 13-11-15 AI12-0031-1/03
+!standard E.2.3(19/3) 13-12-17 AI12-0031-1/04
!class binding interpretation 12-11-17
+!status Corrigendum 2014 13-12-17
+!status ARG Approved 8-0-3 13-11-16
!status work item 12-06-06
!status received 12-05-17
!priority Low
@@ -7,8 +9,11 @@
!subject All_Calls_Remote and indirect calls
!summary
-All_Calls_Remote applies to direct non-local calls, indirect, and dispatching
-remote calls.
+The All_Calls_Remote aspect applies to all indirect or dispatching remote
+subprogram calls to the RCI unit as well as to direct calls from outside the
+declarative region of the RCI unit. Indirect and dispatching remote calls are
+always considered as being from outside of the declarative region and are routed
+through the PCS.
!question
@@ -20,26 +25,25 @@
!recommendation
-The wording is changed so that the All_Calls_Remote aspect applies to all
-indirect or dispatching remote subprogram calls to the RCI unit as well as to
-direct calls from outside the declarative region of the RCI unit. Indirect and
-dispatching calls are always considered as being from outside of the declarative
-region and are routed through the PCS.
+(See summary.)
Modify AARM E.2.3(16.a/3):
Aspect Description for All_Calls_Remote: All {indirect or dispatching remote
- procedure calls and all direct} remote procedure calls {from outside the
- declarative region of the RCI unit} should use the Partition Communication
- Subsystem[, even if they are local].
-
-Modify E.2.3(19/3):
- If aspect All_Calls_Remote is True for a given RCI library unit, then the
- implementation shall route any {indirect or dispatching remote subprogram
- call to the RCI unit or any direct} call to a subprogram of the RCI unit from
- outside the declarative region of the unit through the Partition
- Communication Subsystem (PCS); see E.5. {Direct calls} [Calls] to such
- subprograms from within the declarative region of the unit are defined to be
- local and shall not go through the PCS.
+ subprogram calls and all direct} remote {subprogram}[procedure] calls {from
+ outside the declarative region of the RCI unit} should use the Partition
+ Communication Subsystem[, even if they are local].
+
+Replace E.2.3(19/3) with:
+ If aspect All_Calls_Remote is True for a given RCI library unit, then the
+ implementation shall route any of the following calls through the Partition
+ Communication Subsystem (PCS); see E.5:
+ * A direct call to a subprogram of the RCI unit from outside the declarative
+ region of the unit;
+ * An indirect call through a remote access-to-subprogram value that
+ designates a subprogram of the RCI unit;
+ * A dispatching call with a controlling operand designated by a remote
+ access-to-class-wide value whose tag identifies a type declared in the
+ RCI unit.
Modify AARM E.2.3(19.a/3):
When this aspect is False (or not used), it is presumed that most
@@ -51,25 +55,22 @@
PCS is involved in all such calls (for debugging, redundancy, etc.).
Modify AARM E.2.3(19.b):
- Reason: There is no point to force local {direct} calls [(or calls from
- children)] to go through the PCS, since on the target system, these calls are
- always local, and all the units are in the same active partition. {
- Indirect and dispatching calls however go through the PCS because the extra
- complications in determining whether the denoted subprogram is local to the
- All_Calls_Remote RCI unit was deemed to be too excessive. }
+ Reason: There is no point to force local {direct} calls ({including}[or] calls
+ from children) to go through the PCS, since on the target system[,] these calls
+ are always local, and all the units are in the same active partition.
!discussion
The goal of the All_Calls_Remote aspect is to force calls from outside the
declarative region of the RCI unit to go through the PCS. Calls that are local
-to the PCS should always be local and never go through the PCS.
+to the RCI unit should always be local and never go through the PCS. This
+includes indirect and dispatching calls that don't involve remote access types.
-This ideal is can be implemented easily enough for direct calls, but there are
+This ideal can be implemented easily enough for direct calls, but there are
excessive complications for the case of indirect or dispatching calls. In
particular, it would be difficult for the implementation to determine if a
-remote access-to-subprogram value or a remote access-to-class-wide type value
-denoted a subprogram that was local to the RCI unit, and thus whether the call
-should go through the PCS.
+call was local to the RCI unit, and thus whether the call should go through
+the PCS.
To avoid these complications, we say that all indirect or dispatching remote
subprogram calls to an All_Calls_Remote RCI unit are assumed to be from outside
@@ -81,9 +82,32 @@
There_Is_A_Possibility_That_The_Call_You_Make_To_This_Package_Could_Be_Remote,
etc.
+!corrigendum E.2.3(19/3)
+
+@drepl
+If aspect All_Calls_Remote is True for a given RCI library unit, then the implementation shall
+route any call to a subprogram of the RCI unit from outside the declarative region of the
+unit through the Partition Communication Subsystem (PCS); see E.5. Calls to such subprograms from
+within the declarative region of the unit are defined to be local and shall not go through
+the PCS.
+@dby
+If aspect All_Calls_Remote is True for a given RCI library unit, then the
+implementation shall route any of the following calls through the Partition
+Communication Subsystem (PCS); see E.5:
+
+@xbullet<A direct call to a subprogram of the RCI unit from outside the declarative
+region of the unit;>
+
+@xbullet<An indirect call through a remote access-to-subprogram value that
+designates a subprogram of the RCI unit;>
+
+@xbullet<A dispatching call with a controlling operand designated by a remote
+access-to-class-wide value whose tag identifies a type declared in the RCI unit.>
+
!ACATS test
-** TBD.
+An ACATS C-Test should be constructed (probably using a custom PCS) to determine
+whether the intended calls are going through the PCS.
!appendix
Questions? Ask the ACAA Technical Agent