CVS difference for ais/ai-00048.txt

Differences between 1.1 and version 1.2
Log of other versions for file ais/ai-00048.txt

--- ais/ai-00048.txt	1998/09/30 00:17:10	1.1
+++ ais/ai-00048.txt	1999/07/08 17:25:14	1.2
@@ -1,5 +1,6 @@
-!standard E.2.3    (07)                               96-11-16  AI95-00048/07
+!standard E.2.3    (07)                               99-07-07  AI95-00048/08
 !class binding interpretation 95-06-25
+!status Corrigendum 2000 99-05-24
 !status WG9 approved 96-12-07
 !status ARG approved 12-0-0  96-10-07
 !status ARG approved (subj. ed. rev., letter ballot was 11-0-1) 96-10-03
@@ -11,14 +12,14 @@
 !difficulty Medium
 !subject An RCI unit can be a library subprogram
 
-!summary 96-07-23
+!summary
 
 A shared passive or remote types library unit must be a package or
 generic package, not a subprogram or generic subprogram.  However, a
 remote call interface library unit may be a package, generic package,
 subprogram, or generic subprogram.
 
-!question 95-06-25
+!question
 
 The rules for pragma Shared_Passive (E.2.1(3)), pragma Remote_Types
 (E.2.2(3)), and pragma Remote_Call_Interface (E.2.3(3)) seem to allow
@@ -38,11 +39,11 @@
 passive or remote types library unit?  (No.)  Can a subprogram or
 generic subprogram be a remote call interface library unit?  (Yes.)
 
-!recommendation 96-07-23
+!recommendation
 
 (See summary.)
 
-!wording 96-07-23
+!wording
 
 Modify wording as follows (@i<...> marks italics, {...} marks
 insertions, [...] marks deletions):
@@ -120,8 +121,95 @@
 implies that main subprograms that are RCI subprograms must be
 supported.  We see no implementation difficulty in that.
 
-!appendix 96-06-06
+!corrigendum E.02.03(7)
 
+@drepl
+A @i<remote call interface (RCI)> is a library unit to which the pragma
+Remote_Call_Interface applies. A subprogram declared in the visible part of
+such a library unit is called a @i<remote subprogram>.
+@dby
+A @i<remote call interface (RCI)> is a library unit to which the
+pragma Remote_Call_Interface applies. A subprogram declared in the
+visible part of such a library unit, or by such a library unit, is
+called a @i<remote subprogram>.
+
+!corrigendum E.02.03(9)
+
+@drepl
+In addition, the following restrictions apply to the visible part of an
+RCI library unit:
+@dby
+In addition, the following restrictions apply to a RCI library unit:
+
+!corrigendum E.02.03(10)
+
+@drepl
+@xbullet<it shall not contain the declaration of a variable;>
+@dby
+@xbullet<its visible part shall not contain the declaration of a variable;>
+
+!corrigendum E.02.03(11)
+
+@drepl
+@xbullet<it shall not contain the declaration of a limited type;>
+@dby
+@xbullet<its visible part shall not contain the declaration of a limited type;>
+
+!corrigendum E.02.03(12)
+
+@drepl
+@xbullet<it shall not contain a nested @fa<generic_declaration>;>
+@dby
+@xbullet<its visible part shall not contain a nested @fa<generic_declaration>;>
+
+!corrigendum E.02.03(13)
+
+@drepl
+@xbullet<it shall not contain the declaration of a subprogram to which a
+pragma Inline applies;>
+@dby
+@xbullet<it shall not be, nor shall its visible part contain, the declaration
+of a subprogram to which a pragma Inline applies;>
+
+!corrigendum E.02.03(14)
+
+@drepl
+@xbullet<it shall not contain a subprogram (or access-to-subprogram)
+declaration whose profile has an access parameter, or a formal
+parameter of a limited type unless that limited type has
+user-specified Read and Write attributes;>
+@dby
+@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 formal parameter of a limited type
+unless that limited type has user-specified Read and Write attributes;>
+
+!corrigendum E.02.03(19)
+
+@drepl
+If a pragma All_Calls_Remote applies to a given RCI library package,
+then the implementation shall route any call to a subprogram of the RCI
+package from outside the declarative region of the package through the
+Partition Communication Subsystem (PCS); see E.5. Calls to such subprograms
+from within the declarative region of the package are defined to be local and
+shall not go through the PCS.
+@dby
+If a pragma All_Calls_Remote applies to 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.
+
+!ACATS test
+
+Test(s) are needed. A B-Test should be constructed to check that Shared_Passive
+and Remote_Types units cannot be library subprograms. A C-Test should be
+constructed to check that Remote_Call_Interface units can be library
+subprograms.
+
+!appendix
+
 !section E.2.3(07)
 !subject Can an RCI unit be a library subprogram?
 !reference RM95-E.2.3(7);6.0
@@ -439,10 +527,10 @@
 > package, in that it cannot be called remotely.  (I would hate to have to
 > explain that when teaching Ada 95.)
 
-On the contrary, I believe it is easier to explain  that categorization 
-pragmas  apply only to library level packages. Furthermore, if the remote call 
-interface pragma is applied to a library level subprogram, then it would seem a 
-further issue is raised as to why the All_Calls_Remote pragma cannot be applied 
+On the contrary, I believe it is easier to explain  that categorization
+pragmas  apply only to library level packages. Furthermore, if the remote call
+interface pragma is applied to a library level subprogram, then it would seem a
+further issue is raised as to why the All_Calls_Remote pragma cannot be applied
 to a library level subprogram.
 
 
@@ -760,7 +848,7 @@
 >  > As well it should have been.  Library subprograms are a horrible kludge
 >  > that have caused no end of trouble.  Unfortunately, Ada 9X was just a
 >  > wee bit too late for that -- upward compatibility reared its ugly head.
-> 
+>
 > I'm sympathetic to this view, but it's irrelevant.
 
 Agreed -- it's irrelevant.  Sorry, I was just venting my frustration.  ;-)
@@ -797,7 +885,7 @@
 
 >  > Bottom line: I don't care much one way or the other.  We could waste a
 >  > lot of time arguing about it, though, if we're not careful.
-> 
+>
 > Right.  We should just adopt my position and be done with it. ;-)
 
 Fine with me.  ;-)

Questions? Ask the ACAA Technical Agent