CVS difference for ai05s/ai05-0246-1.txt
--- ai05s/ai05-0246-1.txt 2011/03/17 07:06:30 1.2
+++ ai05s/ai05-0246-1.txt 2011/04/22 02:17:34 1.3
@@ -1,9 +1,10 @@
-!standard 13.12(1) 11-03-16 AI05-0246-1/01
+!standard 13.12(1) 11-04-19 AI05-0246-1/02
!standard 13.12(11)
!standard 13.12.1(3/2)
!standard 13.12.1(8/2)
!standard D.13.1(1/2)
!class Amendment 11-03-16
+!status ARG Approved 8-0-0 11-04-07
!status work item 11-02-19
!status received 11-02-19
!priority Medium
@@ -84,19 +85,28 @@
No_Implementation_Identifiers
- * There are no usage names that denote declarations with
- implementation-defined identifiers that occur within:
- - package Standard (see A.1),
- - package System (see 13.7), or
- - package Ada.Command_Line (see A.15);
-
- * There are no usage names that denote declarations that occur within:
- - package Ada.Interrupts.Names (see C.3.2),
- - package Interfaces (B.2), or
- - nested Implementation packages of the Queue containers (see A.18.28-31).
+ There are no usage names that denote declarations with
+ implementation-defined identifiers that occur within
+ language-defined packages. [Redundant: Such identifiers
+ can arise as follows:
+
+ * The following language-defined packages allow implementation-defined
+ identifiers:
+ - package System (see 13.7);
+ - package Standard (see A.1);
+ - package Ada.Command_Line (see A.15).
+
+ * The following language-defined packages contain only implementation-defined
+ identifiers:
+ - package System.Machine_Code (see 13.8);
+ - package Ada.Directories.Information (see A.16);
+ - nested Implementation packages of the Queue containers (see A.18.28-31);
+ - package Interfaces (B.2);
+ - package Ada.Interrupts.Names (see C.3.2).
+ ]
- Note that Standard.Long_Integer and Standard.Long_Float are considered
- language-defined identifiers, but identifiers such as
+ For package Standard, Standard.Long_Integer and Standard.Long_Float are
+ considered language-defined identifiers, but identifiers such as
Standard.Short_Short_Integer are considered implementation-defined.
Add after 13.2.1(8/2):
@@ -111,10 +121,10 @@
The No_Implementation_Extensions usage profile is equivalent to the
following restrictions:
+ No_Implementation_Aspect_Specifications,
No_Implementation_Attributes,
- No_Implementation_Pragmas,
No_Implementation_Identifiers,
- No_Implementation_Aspects,
+ No_Implementation_Pragmas,
No_Implementation_Units.
Renumber "D.13.1 Ravenscar Profile" to be "D.13 Ravenscar Profile"
@@ -137,9 +147,9 @@
are other packages with similar issues, and we have tried to provide the
complete set here.
-Note that No_Implementation_Aspects and No_Implementation_Units come
-from AI05-0241-1 and AI05-0242-1, respectively, and as such, if they are
-not approved, they should be dropped from the wording above.
+Note that No_Implementation_Aspect_Specifications and No_Implementation_Units
+come from AI05-0241-1 and AI05-0242-1, respectively, and as such, if they
+are not approved, they should be dropped from the wording above.
We have moved the definition of pragma Profile up into the core part of
the standard, so it can be used for things other than tasking-related
@@ -217,6 +227,111 @@
Furthermore, errors on some violation of a profile point to the configuration
file that names the profile, and not to the RM at all, so this is a non-issue in
the case of GNAT.
+
+****************************************************************
+
+From: John Barnes
+Sent: Thursday, April 7, 2011 6:36 AM
+
+What a weird hotchpotch of things restricted in
+
+ No_Implementation_Identifiers
+
+ * There are no usage names that denote declarations with
+ implementation-defined identifiers that occur within:
+ - package Standard (see A.1),
+ - package System (see 13.7), or
+ - package Ada.Command_Line (see A.15);
+
+ * There are no usage names that denote declarations that occur within:
+ - package Ada.Interrupts.Names (see C.3.2),
+ - package Interfaces (B.2), or
+ - nested Implementation packages of the Queue containers (see A.18.28-31).
+
+Where is the justification for this mixture?
+
+I am amazed.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 18, 2011 10:43 PM
+
+> What a weird hotchpotch of things restricted in
+>
+> No_Implementation_Identifiers
+
+As noted during the phone call, this is intended to list all of the places that
+implementation-defined identifiers are allowed in language-defined packages.
+
+> * There are no usage names that denote declarations with
+> implementation-defined identifiers that occur within:
+> - package Standard (see A.1),
+> - package System (see 13.7), or
+> - package Ada.Command_Line (see A.15);
+>
+> * There are no usage names that denote declarations that occur within:
+> - package Ada.Interrupts.Names (see C.3.2),
+> - package Interfaces (B.2), or
+> - nested Implementation packages of the Queue containers (see A.18.28-31).
+
+I'm wondering why this second list does not include System.Machine_Code (13.8(5-6)).
+Whatever contents it has must be implementation-defined, but the package name itself
+is language-defined.
+
+I suppose we could consider this package to be implementation-defined (since it is
+optional), but if so we ought to have an AARM note to mention this fact.
+
+Ada.Directories.Information is another similar package; that one is only defined
+by Implementation Advice (A.16(142/2)) so it more clearly appears to be impldef --
+but even so there is an argument that it too is language-defined.
+
+Tucker didn't mention in the !discussion if he left these out on purpose, or whether
+he just didn't notice them.
+
+Thoughts?
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Monday, April 18, 2011 11:10 PM
+
+...
+> Tucker didn't mention in the !discussion if he left these out on
+> purpose, or whether he just didn't notice them.
+
+Just an oversight.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 18, 2011 11:30 PM
+
+OK, I added System.Machine_Code to the list. (Still waiting on the
+intro sentence from Tucker on this AI, too.)
+
+Any thoughts as whether to include Ada.Directories.Information here??
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Monday, April 18, 2011 11:46 PM
+
+Yes, I think so. Ada.Directories.Information is listed in the set of
+Language-Defined Library Units in A.0(2/3), so we should put it with
+the other packages that are unmentionable under the
+No_Implementation_Identifiers restriction.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Tuesday, April 19, 2011 12:12 AM
+
+Good point. I'm surprised to find it in A(2/3), and I *wrote* that.
+(Which proves something, but I'm not sure exactly what. :-) I've added
+it to the AI.
+
+Now about that introduction line...
****************************************************************
Questions? Ask the ACAA Technical Agent