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

Differences between 1.20 and version 1.21
Log of other versions for file ai05s/ai05-0229-1.txt

--- ai05s/ai05-0229-1.txt	2011/08/17 00:24:12	1.20
+++ ai05s/ai05-0229-1.txt	2011/09/29 06:34:03	1.21
@@ -1,4 +1,4 @@
-!standard 1.1.3(17)                                    11-08-05  AI05-0229-1/12
+!standard 1.1.3(17)                                    11-09-27  AI05-0229-1/13
 !standard 2.9(18)
 !standard 2.8(29/2)
 !standard 3.6.2(11)
@@ -714,7 +714,7 @@
 Replace E.2.3(16):
 
 A pragma All_Calls_Remote sets the All_Calls_Remote representation aspect of the
-library unit to which it applies to the value True. If the All_Calls_Remote
+library unit to which the pragma applies to the value True. If the All_Calls_Remote
 aspect of a library unit is True, the library unit shall be a remote call
 interface.
 
@@ -1479,7 +1479,7 @@
 Replace the first sentence of 6.1(20/3) with:
 
 A subprogram_declaration or a generic_subprogram_declaration requires a completion
-[Redundant: unless the Import aspect (see B.1) is True for the declaration; the completion will be
+[Redundant: unless the Import aspect (see B.1) is True for the declaration; the completion shall be
 a body or a renaming_declaration (see 8.5)].
 
 AARM Proof: When the Import aspect is True for any entity, no completion is allowed (see B.1).
@@ -1507,8 +1507,8 @@
    with Import => True, Convention => Assembler Link_Name => "CPU_ID";
                               -- see B.1
 
-In 3.6.2(11), replace "a pragma Convention(Fortran, ...);" with "aspect Convention specifying
-convention_identifier Fortran".
+In 3.6.2(11), replace "a pragma Convention(Fortran, ...);" with "aspect Convention is specified to have
+convention_identifier Fortran for".
 
 Delete B.3.2(12); in B.3.2(10-11), add "with Convention => Intrinsic" to each declaration.
 
@@ -2337,7 +2337,7 @@
 @dby
 A @fa<subprogram_declaration> or a @fa<generic_subprogram_declaration> requires
 a completion: unless the Import aspect (see B.1) is True for the declaration; the
-completion will be a body or a @fa<renaming_declaration> (see 8.5).
+completion shall be a body or a @fa<renaming_declaration> (see 8.5).
 A completion is not allowed for an
 @fa<abstract_subprogram_declaration> (see 3.9.3), a
 @fa<null_procedure_declaration> (see 6.7), or an
@@ -2362,7 +2362,7 @@
 in a @fa<pragma> Convention, Import, or Export. 
 @dby
 Of these four conventions, only Ada and Intrinsic are allowed as a @I<convention_>identifier
-in the specification of aspect Convention. 
+in the specification of a Convention aspect. 
 
 !corrigendum 6.3.2(2)
 
@@ -3764,7 +3764,7 @@
 interface.
 @dby
 A pragma All_Calls_Remote sets the All_Calls_Remote representation aspect of the
-library unit to which it applies to the value True. If the All_Calls_Remote
+library unit to which the pragma applies to the value True. If the All_Calls_Remote
 aspect of a library unit is True, the library unit shall be a remote call
 interface.
 
@@ -3868,7 +3868,7 @@
 If COBOL (respectively, C) is widely supported in the target environment, implementations supporting
 the Information Systems Annex should provide the child package Interfaces.COBOL (respectively,
 Interfaces.C) specified in Annex B and should support a convention_identifier of COBOL (respectively,
-C) in the Convention aspect (see Annex B), thus allowing Ada programs to interface with programs
+C) for the Convention aspect (see Annex B), thus allowing Ada programs to interface with programs
 written in that language. 
 
 
@@ -3910,7 +3910,7 @@
 If Fortran (respectively, C) is widely supported in the target environment, implementations supporting
 the Information Systems Annex should provide the child package Interfaces.Fortran (respectively,
 Interfaces.C) specified in Annex B and should support a convention_identifier of Fortran (respectively,
-C) in the Convention aspect (see Annex B), thus allowing Ada programs to interface with programs
+C) for the Convention aspect (see Annex B), thus allowing Ada programs to interface with programs
 written in that language. 
 
 
@@ -8322,6 +8322,48 @@
 
 ****************************************************************
 
+!topic Language Defined Aspects
+!reference Ada 2012 RM L
+!from Christoph Grein 2011-07-14
+!keywords pragma aspect
+!discussion
+We have Annex L Language Defined Pragmas.
+
+Since aspects now replace many pragmas, shouldn't that now be Annex L Language
+Defined Aspects and Pragmas?
+
+It's difficult to see which aspects are allowed for a given declaration.
+For instance, which aspects are allowed on generic_instantiation? This annex should
+help solve this problem.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, July 18, 2011  8:00 PM
+
+...
+> We have Annex L Language Defined Pragmas.
+> 
+> Since aspects now replace many pragmas, shouldn't that now be Annex L 
+> Language Defined Aspects and Pragmas?
+
+No.
+ 
+> It's difficult to see which aspects are allowed for a given declaration.
+> For instance, which aspects are allowed on generic_instantiation? This 
+> annex should help solve this problem.
+
+Right idea, wrong annex, and the need was long since realized by the ARG (see
+AI05-0229-1 for details). The contents of the annex were written months ago by Bob Duff.
+As noted in the page describing this draft, not all of the contents of AI05-0212-1 or
+AI05-0229-1 made it into draft 12. I just haven't put that annex into the standard as
+it will require significant programming effort for the formatter tool (and substantial
+work placing the individual commands into the RM source files) and it seemed that it was
+a better use of my limited time to get the majority of the normative text into draft 12
+rather than spending most of the time on a non-normative annex.
+
+****************************************************************
+
 From: Randy Brukardt
 Sent: Wednesday, August 10, 2011  8:44 PM
 
@@ -8362,7 +8404,7 @@
 From: Randy Brukardt
 Sent: Thursday, August 11, 2011  12:14 AM
 
-.11.1 prattles on and on with exceptions for pragmas that are completions.
+3.11.1 prattles on and on with exceptions for pragmas that are completions.
 
 With the various aspect changes, there are no longer any such
 (language-defined) pragmas. Pragma Import sets aspect Import; a completion
@@ -8441,3 +8483,4 @@
 If it ain't broke, don't fix it.  Very broke.
 
 ****************************************************************
+

Questions? Ask the ACAA Technical Agent