CVS difference for ais/ai-00273.txt

Differences between 1.5 and version 1.6
Log of other versions for file ais/ai-00273.txt

--- ais/ai-00273.txt	2002/03/13 00:48:29	1.5
+++ ais/ai-00273.txt	2002/05/25 03:42:19	1.6
@@ -1,9 +1,10 @@
-!standard  E.05 (01)                                   02-02-08  AI95-00273/01
+!standard  E.05 (01)                                   02-05-09  AI95-00273/02
+!standard  E.05 (27)
 !class amendment 01-09-05
+!status Amendment 200Y 02-05-09
 !status ARG Approved 7-0-0  02-02-10
 !status work item 02-02-08
 !status received 01-08-23
-!qualifier Error
 !priority Low
 !difficulty Hard
 !subject Use of PCS should not be normative
@@ -15,7 +16,7 @@
 to support alternative versions of the package System.RPC for
 implementing remote subprogram calls.
 
-!question
+!problem
 
 System.RPC is designed to allow users to change from one vendor PCS
 to another. System.RPC is well suited for the possible implementation
@@ -23,22 +24,22 @@
 assumptions on the implementation and other implementations become
 almost impossible. For instance, AARM E.4(20d) suggests that partition ids
 are statically defined. Therefore, System.RPC.Partition_Id has no
-specific primitives. A more dynamic implementation of DSA would
+specific primitives. A more dynamic implementation of Annex E would
 probably provide an additional library unit as part of the PCS in
-order to deal with partition ids. But the user is no longer able to
-change of PCS.
+order to deal with partition ids. But the user is not able to change the PCS.
 
 By removing this rule, compiler vendors would be allowed to delegate the
-implementation of DSA (or at least the PCS implementation) to other vendors
-like CORBA vendors. This would also allow DSA to interoperate with other
-distribution models like CORBA (no longer Ada talking to Ada).
+implementation of Annex E (or at least the PCS implementation) to other vendors
+such as CORBA vendors. This would also allow Annex E to interoperate with other
+distribution models such as CORBA (potentially allowing Ada programs to
+include non-Ada partitions).
 
-!recommendation
+!proposal
 
 Implementations are not required to support the predefined interface
 of System.RPC if another interface is more appropriate for the
-communication subsystem.  Implementations are allowed to provide
-an alternative version of package System.RPC, however they should
+communication subsystem. Implementations are allowed to provide
+an alternative version of package System.RPC; however they should
 be encouraged to support a substantially equivalent set of capabilities
 to that defined in the predefined specification of the package.
 
@@ -51,35 +52,35 @@
 
 An alternative declaration is allowed for package System.RPC as long
 as it provides a set of operations that is substantially equivalent
-to the specfication defined in this clause.
+to the specification defined in this clause.
 
 !discussion
 
 The current language requires implementors of Annex E to support the
-interface to the PCS defined in E.5 (package System.RPC).  The original
+interface to the PCS defined in E.5 (package System.RPC). The original
 concept of requiring this standardization was to allow for a well-defined
 interface separating the compiler support for marshalling and unmarshalling
 from the implementation of the underlying communication subsystem, which
-might well be provided by another vendor.  The idea was that such a
+might well be provided by another vendor. The idea was that such a
 separation would enhance portability of PCS implementations by providing
 a "plug and play" capability.
 
 As it has turned out in practice, Annex E has not been widely implemented
-by vendors.  In fact, at the time of this writing, only one vendor has
-chosen to provide full support for the Annex.  This vendor has discovered
+by vendors. In fact, at the time of this writing, only one vendor has
+chosen to provide full support for the Annex. This vendor has discovered
 that the existing definition of System.RPC is overly constrained for
 supporting distributed environments such as CORBA, which provide a
 richer set of capabilities than that afforded by the predefined RPC
-interface.  Although the language allows extending the set of operations
+interface. Although the language allows extending the set of operations
 of System.RPC and the definition of child units, it still imposes
 a model based on a particular notion of Partition_Ids and send-receive
 operations that may limit its applicability.
 
 It's unreasonable to constrain implementations to support an interface
 that is deemed unsuitable or overly inflexible for their target distribution
-environments.  In particular, it doesn't make sense to require vendors to
+environments. In particular, it doesn't make sense to require vendors to
 support the predefined interface along with other interfaces only for
-the purpose of satisfying a reference manual requirement if their
+the purpose of satisfying a requirement of the standard if their
 target users do not benefit from its support. An analogy can be made
 with the run-time support for tasking implementations, where it would
 be unreasonable for the language to attempt to define a particular
@@ -89,7 +90,7 @@
 
 Consequently this AI removes the normative rule requiring support for
 the language-defined interface for System.RPC and changes this to
-Implementation Advice.  Note that the flexibility provided by relaxing
+Implementation Advice. Note that the flexibility provided by relaxing
 this requirement is similar to what is allowed for package Ada.Command_Line,
 where implementations are permitted to change the interface to suit
 the particulars of argument passing on a given operating system.
@@ -100,7 +101,7 @@
 the distributed communication protocols available on their chosen
 environments.
 
-!corrigendum xx.xx(xx)
+!corrigendum E.05(01)
 
 @drepl
 The @i<Partition Communication Subsystem> (PCS) provides facilities for
@@ -113,17 +114,19 @@
 supporting communication between the active partitions of a distributed
 program. The package System.RPC is a language-defined interface to the PCS.
 
+!corrigendum E.05(27)
+
 @dinsa
-The Write operation on a stream of type Params_Stream_Type should raise
-Storage_Error if it runs out of space trying to write the Item into the stream.
+A body for the package System.RPC need not be supplied by the implementation.
 @dinst
 An alternative declaration is allowed for package System.RPC as long
 as it provides a set of operations that is substantially equivalent
-to the specfication defined in this clause.
+to the specification defined in this clause.
 
 !ACATS test
 
-Several existing ACATS tests will have to be deleted if this AI is approved.
+Several existing ACATS tests will have to be modified to allow rejection
+(or be deleted outright) if this AI is approved.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent