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

Differences between 1.9 and version 1.10
Log of other versions for file ai05s/ai05-0243-1.txt

--- ai05s/ai05-0243-1.txt	2011/04/30 07:28:36	1.9
+++ ai05s/ai05-0243-1.txt	2011/06/03 05:04:27	1.10
@@ -1,7 +1,20 @@
 !standard 10.2.1(11/3)                              11-04-07    AI05-0243-1/05
 !standard 10.2.1(17/3)
 !standard A.3(1/2)
+!standard E.2(2)
+!standard E.2(3)
+!standard E.2(4/1)
+!standard E.2(7)
+!standard E.2(8)
+!standard E.2.1(4)
+!standard E.2.1(6)
+!standard E.2.2(4)
+!standard E.2.2(6)
+!standard E.2.3(7/1)
+!standard E.2.3(8)
+!standard E.2.3(20)
 !class Amendment 10-10-25
+!status Amendment 2012 11-06-02
 !status ARG Approved  7-0-1  11-04-07
 !status work item  11-02-11
 !status received 11-02-11
@@ -184,7 +197,8 @@
 
 A pragma Remote_Call_Interface is used to specify that a library unit is a *remote call
 interface (RCI)*, namely that the Remote_Call_Interface aspect of the library unit is True.
-The following restrictions apply to such a library unit:
+A subprogram declared in the visible part of such a library unit, or declared by
+such a library unit, is called a *remote subprogram*.
 
 Modify E.2.3(8):
 
@@ -248,7 +262,7 @@
 be worthwhile.
 
 
-!corrigendum 10.2.1(11/3)
+!corrigendum 10.2.1(11/2)
 
 @drepl
 If a @fa<pragma> Preelaborate (or @fa<pragma> Pure @emdash see below) applies to a
@@ -263,22 +277,21 @@
 preelaborated, then its declaration, if any, and body, if any, are
 elaborated prior to all non-preelaborated @fa<library_item>s of the partition.
 @dby
-A @fa<pragma> Preelaborate sets the Preelaborate representation aspect of the
-library unit to which it applies to the value True; the aspect can also be set
-by the @fa<aspect_specification> of the @fa<library_item>. If the Preelaborate
-aspect (or the Pure aspect @emdash see below) is set to True for a library unit,
-then the library unit is @i<preelaborated>. The declaration and body of a preelaborated
-library unit, and all subunits that are elaborated as part of elaborating the
-library unit, shall be preelaborable. In addition, the limited view of a library
-package is preelaborated. All compilation units of a preelaborated library unit
-shall depend semantically only on compilation units of other preelaborated or
-declared pure library units. In addition to the places where Legality Rules
-normally apply (see 12.3), these rules also apply in the private part of an
-instance of a generic unit. If a library unit is preelaborated, then its
-declaration, if any, and body, if any, are elaborated prior to all
-non-preelaborated @fa<library_item>s of the partition.
+A @fa<pragma> Preelaborate (or @fa<pragma> Pure @emdash see below) is used to specify that
+a library unit is @i<preelaborated>, namely that the Preelaborate
+aspect of the library unit is True; all compilation units of the
+library unit are preelaborated. The declaration and body of a
+preelaborated library unit, and all subunits that are elaborated as part
+of elaborating the library unit, shall be preelaborable. All
+compilation units of a preelaborated library unit shall depend semantically only
+on declared pure or preelaborated @fa<library_item>s. In
+addition to the places where Legality Rules normally apply (see 12.3), these
+rules also apply in the private part of an instance of a generic unit. If a
+library unit is preelaborated, then its declaration, if any, and body, if any,
+are elaborated prior to all non-preelaborated @fa<library_item>s of the
+partition.
 
-!corrigendum 10.2.1(17/3)
+!corrigendum 10.2.1(17/2)
 
 @drepl
 A @fa<pragma> Pure is used to declare that a library unit is pure. The declaration and
@@ -292,22 +305,166 @@
 the full view of any partial view declared in the visible part of the library
 unit that has any available stream attributes shall support external streaming (see 13.13.2).
 @dby
-A @fa<pragma> Pure sets the Pure representation aspect of the library unit to which
-it applies to the value True; the aspect can also be set by the
-@fa<aspect_specification> of the @fa<library_item>. Setting the Pure aspect on a
-library unit to True specifies that the unit is @i<declared pure>. In addition,
-the limited view of a library package is declared pure. The declaration and body
-of a library unit with the Pure aspect set to True, and all subunits that are
-elaborated as part of elaborating the library unit, shall be pure. The
-declaration and body of a library unit with the Pure aspect set to True, and all
-subunits of the library unit, shall depend semantically only on compilation
-units of other library units that are declared pure. In addition to the places
-where Legality Rules normally apply (see 12.3), these rules also apply in the
-private part of an instance of a generic unit. Furthermore, the full view of any
-partial view declared in the visible part of a declared pure library unit that
-has any available stream attributes shall support external streaming (see
-13.13.2).
+A @fa<pragma> Pure is used to specify that a library unit is @i<declared pure>, namely
+that the Pure aspect of the library unit is True; all compilation units
+of the library unit are declared pure. In addition, the limited view
+of any library package is declared pure. The declaration and body of a declared
+pure library unit, and all subunits that are elaborated as part of elaborating the
+library unit, shall be pure. All compilation units of a declared pure library
+unit shall depend semantically only on declared pure @fa<library_item>s.
+In addition to the places where Legality Rules
+normally apply (see 12.3), these rules also apply in the private part of an
+instance of a generic unit. Furthermore, the full view of any partial view
+declared in the visible part of a declared pure library unit that has any
+available stream attributes shall support external streaming (see 13.13.2).
+
+!corrigendum A.3(1/2)
+
+@drepl
+This clause presents the packages related to character processing: an empty pure
+package Characters and child packages Characters.Handling and Characters.Latin_1.
+The package Characters.Handling provides classification and conversion functions
+for Character data, and some simple functions for dealing with Wide_Character and
+Wide_Wide_Character data. The child package Characters.Latin_1 declares a set of
+constants initialized to values of type Character. 
+@dby
+This clause presents the packages related to character processing: an empty declared
+pure package Characters and child packages Characters.Handling and Characters.Latin_1.
+The package Characters.Handling provides classification and conversion functions
+for Character data, and some simple functions for dealing with Wide_Character and
+Wide_Wide_Character data. The child package Characters.Latin_1 declares a set of
+constants initialized to values of type Character. 
+
+!corrigendum E.2(2)
+
+@drepl
+A @i<categorization pragma> is a library unit pragma (see 10.1.5) that restricts the
+declarations, child units, or semantic dependences of the library unit to which it
+applies. A @i<categorized library unit> is a library unit to which a categorization
+pragma applies.
+@dby
+A @i<categorization pragma> is a library unit pragma (see 10.1.5) that restricts the
+declarations, child units, or semantic dependences of the library unit to which it
+applies; each categorization pragma specifies a corresponding @i<categorization aspect>.
+A @i<categorized library unit> is a library unit that has a categorization aspect that
+is True.
+
+!corrigendum E.2(3)
+
+@drepl
+The pragmas Shared_Passive, Remote_Types, and Remote_Call_Interface are categorization
+pragmas. In addition, for the purposes of this Annex, the pragma Pure (see 10.2.1) is
+considered a categorization pragma.
+@dby
+The pragmas Shared_Passive, Remote_Types, and Remote_Call_Interface are categorization
+pragmas, and the associated aspects are categorization aspects. In addition, for the
+purposes of this Annex, the aspect Pure (see 10.2.1) is considered a categorization aspect.
+
+!corrigendum E.2(4/1)
+
+@drepl
+A library package or generic library package is called a @i<shared passive> library unit
+if a Shared_Passive pragma applies to it. A library package or generic library package is
+called a @i<remote types> library unit if a Remote_Types pragma applies to it. A
+library unit package or generic library package is called a @i<remote call interface> if
+a Remote_Call_Interface pragma applies to it. A @i<normal library unit> is one to which
+no categorization pragma applies. 
+@dby
+A library package or generic library package is called a @i<shared passive>
+library unit if the Shared_Passive aspect of the unit is True. A library package
+or generic library package is called a @i<remote types> library unit if the Remote_Types aspect
+of the unit is True. A library unit package or generic library package is called
+a @i<remote call interface> if the Remote_Call_Interface aspect is True.
+A @i<normal library unit> is one for which no categorization aspect is True.
+
+!corrigendum E.2(7)
+
+@drepl
+@xhang<@xterm<Declared Pure>Can depend only on other declared pure library units;>
+@dby
+@xhang<@xterm<Declared Pure>Can depend only on other declared pure library units
+and upon limited views;>
+
+!corrigendum E.2(8)
+
+@drepl
+@xhang<@xterm<Shared Passive>Can depend only on other shared passive or declared
+pure library units;>
+@dby
+@xhang<@xterm<Shared Passive>Can depend only on other shared passive library units,
+or on one of the above;>
+
+!corrigendum E.2.1(4)
+
+@drepl
+A @i<shared passive library unit> is a library unit to which a Shared_Passive pragma applies.
+The following restrictions apply to such a library unit: 
+@dby
+A pragma Shared_Passive is used to specify that a library unit is a @i<shared passive
+library unit>, namely that the Shared_Passive aspect of the library unit
+is True. The following restrictions apply to such a library unit:
+
+!corrigendum E.2.1(6)
+
+@drepl
+@xbullet<it shall depend semantically only upon declared pure or shared passive
+library units;>
+@dby
+@xbullet<it shall depend semantically only upon declared pure or shared passive
+@fa<library_item>s;>
+
+!corrigendum E.2.2(4)
+
+@drepl
+A @i<remote types library unit> is a library unit to which the pragma Remote_Types applies. The
+following restrictions apply to the declaration of such a library unit:
+@dby
+A pragma Remote_Types is used to specify that a library unit is a @i<remote types
+library unit>, namely that the Remote_Types aspect of the library unit is True.
+The following restrictions apply to such a library unit:
+
+!corrigendum E.2.2(6)
+
+@drepl
+@xbullet<it shall depend semantically only on declared pure, shared passive, or other remote
+types library units;>
+@dby
+@xbullet<it shall depend semantically only on declared pure, shared passive, or other remote
+types @fa<library_item>s;>
+
+!corrigendum E.2.3(7/1)
+
+@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, or declared by
+such a library unit, is called a @i<remote subprogram>.
+@drepl
+A pragma Remote_Call_Interface is used to specify that a library unit is a @i<remote call
+interface (RCI)>, namely that the Remote_Call_Interface aspect of the library unit is True.
+A subprogram declared in the visible part of such a library unit, or declared by
+such a library unit, is called a @i<remote subprogram>.
 
+!corrigendum E.2.3(8)
+
+@drepl
+The declaration of an RCI library unit shall be preelaborable (see 10.2.1), and shall
+depend semantically only upon declared pure, shared passive, remote types, or other
+remote call interface library units.
+@dby
+The declaration of an RCI library unit shall be preelaborable (see 10.2.1), and shall
+depend semantically only upon declared pure, shared passive, remote types, or other
+remote call interface @fa<library_item>s.
+
+!corrigendum E.2.3(20)
+
+@drepl
+An implementation need not support the Remote_Call_Interface pragma nor the
+All_Calls_Remote pragma. Explicit message-based communication between active partitions
+can be supported as an alternative to RPC.
+@dby
+An implementation need not support the Remote_Call_Interface pragma or aspect nor the
+All_Calls_Remote pragma. Explicit message-based communication between active partitions
+can be supported as an alternative to RPC.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent