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

Differences between 1.5 and version 1.6
Log of other versions for file ai05s/ai05-0241-1.txt

--- ai05s/ai05-0241-1.txt	2011/04/11 23:55:58	1.5
+++ ai05s/ai05-0241-1.txt	2011/04/19 03:27:12	1.6
@@ -1,4 +1,4 @@
-!standard  13.12.1(1/2)                              11-03-11    AI05-0241-1/03
+!standard  13.12.1(1/2)                              11-04-18    AI05-0241-1/04
 !standard  13.12.1(5/2)
 !standard  13.12.1(6/2)
 !standard  13.12.1(7/2)
@@ -76,10 +76,10 @@
 
 !discussion
 
-The need for No_Implementation_Aspects follows directly from the existence of
-No_Implementation_Attributes and No_Implementation_Pragmas.
+The need for No_Implementation_Aspect_Specifications follows directly from the
+existence of No_Implementation_Attributes and No_Implementation_Pragmas.
 
-The need for No_Aspect_Specification came up during the discussion of subtype
+The need for No_Specification_of_Aspect came up during the discussion of subtype
 predicates (see AI05-0153-3). Some people are uncomfortable with the rather
 leaky-colander-like semantics of Dynamic_Predicate in particular, so there
 should be a way to self-impose a restriction forbidding the specification of
@@ -88,18 +88,20 @@
 that can be used with any aspect. The history leading to No_Dependence affirms
 the wisdom of this choice.
 
-Note that No_Implementation_Aspects forbids specification of relevant aspects
-via any means. For those aspects that correspond to attributes, it also forbids
-queries. In contrast, No_Aspect_Specification does not forbid queries.
+Note that No_Implementation_Aspect_Specifications only forbids specification of
+relevant aspects via aspect_specifications. For those aspects that correspond to
+attributes, they may be queried or specified by attribute_definition_clauses. (These
+can be forbidden by No_Implementation_Attributes.) Similarly,
+No_Specification_of_Aspect does not forbid queries.
 
-Note that No_Aspect_Specification can be used for both language-defined and
+Note that No_Specification_of_Aspect can be used for both language-defined and
 implementation-defined aspects.
 
 !example
 
-    pragma Restrictions(No_Implementation_Aspects);
+    pragma Restrictions(No_Implementation_Aspect_Specifications);
 
-    pragma Restrictions(No_Aspect_Specification => Dynamic_Predicate);
+    pragma Restrictions(No_Specification_of_Aspect => Dynamic_Predicate);
 
 !corrigendum 13.12.1(1/2)
 
@@ -401,5 +403,54 @@
 
 I would agree that I don't want to fix No_Dependence, because it isn't wrong.
 ;-)
+
+****************************************************************
+
+From: John Barnes
+Sent: Monday, April 18, 2011  8:45 AM
+
+While seated one day at my keyboard crafting a bit of rat, I noticed that...
+
+This AI is confused over whether the new restriction identifier is
+No_Implementation_Aspects or No_Implementation_Aspect_Specifications.
+
+It is clear from AI-246 that we want No_Implementation_Aspects.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 18, 2011  10:25 PM
+
+Actually, it is clear from the minutes of the February meeting that we wanted
+No_Implementation_Aspect_Specifications, because this restriction is only
+talking about the use of an aspect_specification to specify an
+implementation-defined aspect, as opposed to any use of an implementation-defined
+aspect (including pragmas and attribute_definition_clauses, which have their own,
+separate, restrictions). That means that AI05-0246-1 is also (slightly) wrong,
+but easily fixed.
+
+It appears that I updated the !wording, and failed to update the !discussion for
+both restrictions (both had their name changed). Indeed, there are parts of the
+discussion that are just wrong. I've rewritten all of that and reposted it.
+
+Specifically, the minutes say:
+
+AI05-0241-1/02 Aspect-related restrictions
+
+Erhard thinks the wording should be "no use of". But this is similar to the first
+two existing restrictions.
+
+Should No_Implementation_Aspects cover pragmas or attributes? No, this just should
+disallow aspect_specification for implementation-defined aspects. Users have the
+other restrictions to disallow the other uses.
+
+In the second one, put an underscore in aspect_specification.
+
+There is confusion between "No_(Aspect_Specification)" and "No_Aspect_(Specification)".
+
+Tucker suggests naming these restrictions  No_Implementation_Aspect_Specifications and 
+No_Specification_of_Aspect. That seems better.
+
+Approve AI with changes: 7-0-1.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent