CVS difference for ai12s/ai12-0373-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0373-1.txt

--- ai12s/ai12-0373-1.txt	2020/03/23 04:15:03	1.3
+++ ai12s/ai12-0373-1.txt	2020/03/31 22:23:08	1.4
@@ -1,4 +1,4 @@
-!standard 3.1(1)                                     20-03-22  AI12-0373-1/01
+!standard 3.1(1)                                     20-03-26  AI12-0373-1/02
 !standard 4.9(17.3/5)
 !standard 13.1.1(4/3)
 !standard 13.1.1(11/3)
@@ -17,8 +17,8 @@
 
 A number of fixes to the draft Ada 202x Standard are needed:
 
-(1) The definition of statically names only excludes components found in
-variants.
+(1) The definition of statically names only excludes record components found
+in variants.
 
 (2) Freezing of library units occurs at the end of the unit.
 
@@ -108,7 +108,17 @@
 possible (no sense in making illegal constructs which are not a problem),
 even if that is more than other similar constructs.
 
-(2) Obviously, we need freezing and syntax rules that allow Global aspects.
+(2) Obviously, we need syntax rules that allow Global aspects.
+
+The previous rules did not make a special case for library units. Since they
+technically occur in the declaration list of Standard, their aspects would
+not be frozen or evaluated until bind time. That means their values couldn't
+be used during their compilation or during the compilation of other units;
+any rule involving them would have to be treated as post-compilation rules.
+Similarly, the visibility would seem to allow private items to be used in the 
+aspects. We want only visible entities, and we want the evaluation to occur 
+no later than the end of the compilation unit (so they're part of the 
+compilation of the unit). So we change the rules to ensure these happen.
 
 (3) Clearly, objects are intended to be a subset of entities. There is
 plenty of wording that assumes that already in the Standard. For instance,

Questions? Ask the ACAA Technical Agent