CVS difference for ai05s/ai05-0034-1.txt
--- ai05s/ai05-0034-1.txt 2007/07/26 02:58:05 1.3
+++ ai05s/ai05-0034-1.txt 2007/12/13 04:39:35 1.4
@@ -1,6 +1,7 @@
-!standard 10.2.1(11/1) 07-07-25 AI05-0034-1/03
+!standard 10.2.1(11/1) 07-11-26 AI05-0034-1/04
!standard 10.2.1(17/2)
!class binding interpretation 07-01-12
+!status ARG Approved 9-0-1 06-11-09
!status work item 07-01-12
!status received 07-01-11
!priority Medium
@@ -44,10 +45,14 @@
Replace 10.2.1(11/1) by:
If a pragma Preelaborate (or pragma Pure - see below) applies to a
-library unit, then it is *preelaborated*. The declaration and body of a
+library unit, then it is *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. If a library unit is
+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 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 library_items of the partition.
@@ -97,11 +102,60 @@
includes a regular unit is illegal by E.1(3). Thus this expansion allows no new
functionality in a passive partition.
---!corrigendum A.18.2(239/2)
+!corrigendum 10.2.1(11/1)
+@drepl
+If a @fa<pragma> Preelaborate (or @fa<pragma> Pure @em see below) applies to a
+library unit, then it is @i<preelaborated>. 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. 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 to the places
+where Legality Rules normally apply (see 12.3), this rule applies also in the
+private part of an instance of a generic unit. In addition, all compilation units
+of a preelaborated library unit shall depend semantically only on compilation units
+of other preelaborated library units.
+@dby
+If a @fa<pragma> Preelaborate (or @fa<pragma> Pure - see below) applies to a
+library unit, then it is *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 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.
+
+!corrigendum 10.2.1(17/2)
+
+@drepl
+A @fa<pragma> Pure is used to declare that a library unit is pure.
+If a @fa<pragma> Pure applies to a library unit,
+then its compilation units shall be pure,
+and they shall depend semantically only on
+compilation units of other library units that are
+declared pure. Furthermore, 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 is used to declare that a library unit is 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. In addition, the limited view of a
+library package is declared pure. All compilation units of a declared pure
+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 the library
+unit that has any available stream attributes shall support external streaming (see 13.13.2).
+
!ACATS test
+See Ada 2005 test objectives.
!appendix
@@ -190,5 +244,41 @@
> Interpretation to make it official.
I agree with Tuck.
+
+****************************************************************
+
+From: Randy Brukardt
+Date: Monday, November 26, 2007 10:28 PM
+
+We approved AI05-0034-1 without any changes in Fairfax. Unfortunately, the
+proposed rewording for 10.2.1(11/1) is missing two sentences from the
+original paragraph. Adding those required some rewording (else we would
+have started three consecutive sentences with "In addition"!); for this,
+I matched the wording of 10.2.1(17/2) from AI05-0035-1 (previously approved).
+
+In the absence of an objection to this (re)wording, I'm going to leave the
+approval of the AI stand (this is just an editorial correction, even though it
+is a large one).
+
+Here's the corrected rewording for 10.2.1(11/1):
+
+If a pragma Preelaborate (or pragma Pure - see below) applies to a
+library unit, then it is *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 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 library_items of the partition.
+
+****************************************************************
+
+From: Ed Schonberg
+Date: Monday, November 26, 2007 11:08 PM
+
+No objection, looks clear (and complete, this time!)
****************************************************************
Questions? Ask the ACAA Technical Agent