CVS difference for arm/source/10.mss

Differences between 1.80 and version 1.81
Log of other versions for file arm/source/10.mss

--- arm/source/10.mss	2008/05/17 03:20:38	1.80
+++ arm/source/10.mss	2008/11/26 23:41:02	1.81
@@ -1,10 +1,10 @@
 @Part(10, Root="ada.mss")
 
-@Comment{$Date: 2008/05/17 03:20:38 $}
+@Comment{$Date: 2008/11/26 23:41:02 $}
 @LabeledSection{Program Structure and Compilation Issues}
 
 @Comment{$Source: e:\\cvsroot/ARM/Source/10.mss,v $}
-@Comment{$Revision: 1.80 $}
+@Comment{$Revision: 1.81 $}
 @Comment{Corrigendum changes added, 2000/04/24, RLB}
 
 @begin{Intro}
@@ -421,9 +421,19 @@
 limited view of that package, with the same @nt{defining_program_unit_name}.]}
 
 @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00217-06],ARef=[AI95-00326-01]}
+@ChgRef{Version=[3],Kind=[RevisedAdded],ARef=[AI05-0108-1]}
 @ChgAdded{Version=[2],Text=[For each @nt{type_declaration} in the visible part, an
-incomplete view of the type; if the @nt{type_declaration} is
+incomplete view of the type@Chg{Version=[3],New=[with no discriminant_part],Old=[]};
+if the @nt{type_declaration} is
 tagged, then the view is a tagged incomplete view.]}
+@begin{Ramification}
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0108-1]}
+  @ChgAdded{Version=[3],Text=[The incomplete view of a type does not have
+  a discriminant_part even if the the type_declaration does have
+  one. This is necessary because semantic analysis (and the associated
+  dependence on @nt{with_clause}s) would be necessary
+  to determine the types of the discriminants.]}
+@end{Ramification}
 @end(Itemize)
 
 @begin(Discussion)
@@ -1540,6 +1550,13 @@
   declared in private child packages, and thus cannot be allowed. This was
   allowed by mistake in Ada 95; a subprogram that does this will now be
   illegal.]}
+
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0040-1]}
+  @ChgAdded{Version=[3],Text=[@b<Amendment 2:> Added missing rule that
+  a limited with clause cannot name an ancestor unit. This is incompatible
+  if Amendment 1 program does this, but as this is a new Ada 2005 feature and
+  the unintentionally allowed capability is not useful, the
+  incompatibility is very unlikely to occur in practice.]}
 @end{Incompatible95}
 
 @begin{Extend95}
@@ -1560,15 +1577,12 @@
 @end{Extend95}
 
 @begin{DiffWord95}
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0040-1]}
-  @ChgAdded{Version=[3],Text=[@b<Corrigendum 2:> Added missing rule that
-  a limited with clause cannot name an ancestor unit.]}
-
   @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0077-1]}
-  @ChgAdded{Version=[3],Text=[@b<Corrigendum 2:> Fixed wording so that
+  @ChgAdded{Version=[3],Text=[@b<Amendment 2:> Fixed wording so that
   we are not checking whether something in a @nt{context_clause}
   is @ldquote@;within the scope of@rdquote something, as @nt{context_clause}s
-  are never included in anything's scope.]}
+  are never included in anything's scope. The intended meaning is unchanged,
+  however.]}
 @end{DiffWord95}
 
 
@@ -3805,6 +3819,26 @@
   object to initialize a library-level object; that isn't allowed in Ada 2005. But such a unit wouldn't really
   be preelaborable, and Ada 95 compilers can reject such units (as this
   is a Binding Interpretation), so such units should be very rare.]}
+
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0028-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Corrected a serious
+  unintended incompatibility with Ada 95 in the new preelaboration wording
+  @em explicit initialization of objects of types that don't have
+  preelaborable initialization was not allowed. Amendment 2 switches
+  back to the Ada 95 rule in these chases. This is unlikely to
+  occur in practice, as it is unlikely that a compiler would have
+  implemented the more restrictive rule (it would fail many ACATS tests
+  if it did).]}
+
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Added an assume-the-worst
+  rule for generic bodies (else they would never be checked for purity)
+  and added the boilerplate so that the entire generic specification is
+  rechecked. Also fixed wording to have consistent handling for subunits
+  for Pure and Preelaborate. An Ada 95 program could have depended on
+  marking a generic pure that was not really pure, although this
+  would defeat the purpose of the categorization and likely cause
+  problems with distributed programs.]}
 @end{Incompatible95}
 
 @begin{Extend95}
@@ -3821,51 +3855,38 @@
   to omit calls was adjusted accordingly (which also fixes a hole in Ada 95, as
   access parameters are allowed, and changes in the values accessed by them
   must be taken into account).]}
-@end{Extend95}
 
-@begin{DiffWord95}
-  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00002-01]}
-  @ChgAdded{Version=[2],Text=[@B<Corrigendum:> The wording was changed so that
-  subunits of a preelaborated subprogram are also preelaborated.]}
-
-  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00217-06]}
-  @ChgAdded{Version=[2],Text=[Disallowed pragma Elaborate and Elaborate_All
-  for packages that are mentioned in a @nt{limited_with_clause}.]}
-
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0034-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Added wording so that
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0034-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Added wording so that
   a limited view is always treated as pure, no matter what categorization
-  is used for the originating unit.]}
+  is used for the originating unit. This was undefined in Amendment 1.]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Adjusted wording so that
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Adjusted wording so that
   subunits can be pure (they are not a @nt<library_item>, but they
   are a compilation unit).]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Adjusted wording so
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Adjusted wording so
   that the rules for access types only apply to non-derived types
   (derived types share their storage pool with their parent, so if
   the parent access type is legal, so is any derived type.)]}
-
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Added an assume-the-worst
-  rule for generic bodies (else they would never be checked for purity)
-  and added the boilerplate so that the entire generic specification is
-  rechecked. Also fixed wording to have consistent handling for subunits
-  for Pure and Preelaborate.]}
 
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0028-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Corrected a serious
-  unintended incompatibility in the new preelaboration wording @em
-  explicit initialization of objects of types that don't have
-  preelaborable initialization was not allowed.]}
-
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0028-1]}
-  @ChgAdded{Version=[3],Text=[@B<Corrigendum 2:> Fixed minor issues with
+  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0028-1]}
+  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Fixed minor issues with
   preelaborable initialization (PI): null Initialize procedures do not make
   a type non-PI; formal types with pragma PI can be assumed to have PI;
   formal extensions are assumed to not have PI; all composite types
   can have pragma PI (so that the possibility of hidden Initialize routines
   can be handled).]}
+@end{Extend95}
+
+@begin{DiffWord95}
+  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00002-01]}
+  @ChgAdded{Version=[2],Text=[@B<Corrigendum:> The wording was changed so that
+  subunits of a preelaborated subprogram are also preelaborated.]}
+
+  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00217-06]}
+  @ChgAdded{Version=[2],Text=[Disallowed pragma Elaborate and Elaborate_All
+  for packages that are mentioned in a @nt{limited_with_clause}.]}
 @end{DiffWord95}

Questions? Ask the ACAA Technical Agent