CVS difference for arm/source/ds.mss

Differences between 1.72 and version 1.73
Log of other versions for file arm/source/ds.mss

--- arm/source/ds.mss	2014/11/15 05:22:28	1.72
+++ arm/source/ds.mss	2015/03/03 05:38:25	1.73
@@ -1,7 +1,7 @@
 @comment{ $Source: e:\\cvsroot/ARM/Source/ds.mss,v $ }
-@comment{ $Revision: 1.72 $ $Date: 2014/11/15 05:22:28 $ $Author: randy $ }
+@comment{ $Revision: 1.73 $ $Date: 2015/03/03 05:38:25 $ $Author: randy $ }
 @Part(dist, Root="ada.mss")
-@Comment{$Date: 2014/11/15 05:22:28 $}
+@Comment{$Date: 2015/03/03 05:38:25 $}
 
 @LabeledNormativeAnnex{Distributed Systems}
 
@@ -510,11 +510,11 @@
 that designates a class-wide type,@Chg{Version=[4],New=[ nor a type
 with a part that is of a],Old=[]}
 task type@Chg{Version=[4],New=[],Old=[,]} or protected type with
-@nt{entry_declaration}s@Chg{New=[],
+@nt{entry_declaration}s@Chg{Version=[4],New=[;],Old=[@Chg{New=[],
 Old=[; if the shared passive library unit is generic, it shall
 not contain a declaration for such an access type unless the
 declaration is nested within a body other than
-a @nt<package_body>]}.
+a @nt<package_body>]}.]}
 @begin{Reason}
   These kinds of access types are disallowed because the object
   designated by an access value of such a type could
@@ -523,9 +523,24 @@
   created.
 @end{Reason}
 
+@ChgRef{Version=[4],Kind=[Added],ARef=[AI12-0038-1]}
+@ChgAdded{Version=[4],Text=[it shall not contain a library-level declaration
+that contains a name that denotes a type declared within a declared-pure
+package, if that type has a part that is of an access type; for the purposes of
+this rule, the parts considered include those of the full views of any private
+types or private extensions.]}
+
+@begin{Reason}
+  @ChgRef{Version=[4],Kind=[AddedNormal]}
+  @ChgAdded{Version=[4],Text=[This rule breaks privacy by looking into the full
+  views of private types. Avoiding privacy breakage here would have required
+  disallowing the use in a shared passive package of any private type
+  declared in a declared-pure package, which would have been severely
+  incompatible.]}
+@end{Reason}
+
 @end{itemize}
 
-@ChgRef{Version=[4],Kind=[Revised],ARef=[AI12-0038-1]}
 @PDefn2{Term=[accessibility], Sec=(from shared passive library units)}
 @Defn{notwithstanding}
 Notwithstanding the definition of accessibility given in
@@ -533,11 +548,7 @@
 of a library unit P1 is not accessible from within the declarative
 region of a shared passive library unit P2,
 unless the shared passive library unit
-P2 depends semantically on P1.@Chg{Version=[4],New=[ Furthermore, for the
-purposes of accessibility checking, when an access type that is declared within
-a declared-pure package is used as part of a library-level declaration in a
-shared-passive package, it is as though the access type were declared in the
-shared-passive package.],Old=[]}
+P2 depends semantically on P1.
 @begin{Discussion}
   We considered a more complex rule, but dropped it. This is
   the simplest rule that recognizes that a shared passive
@@ -601,7 +612,7 @@
   library-level shared passive packages. These were allowed by Ada 2005 and
   Ada 2012, but it is unlikely that they work properly, as active partitions
   could disappear before the shared-passive partition. As such, the new
-  error is more likely to catch bugs than to cause them.]}
+  errors are more likely to catch bugs than to cause them.]}
 @end{Incompatible2012}
 
 

Questions? Ask the ACAA Technical Agent