CVS difference for ai12s/ai12-0003-1.txt
--- ai12s/ai12-0003-1.txt 2015/01/27 03:16:48 1.11
+++ ai12s/ai12-0003-1.txt 2015/01/27 22:51:03 1.12
@@ -1,4 +1,4 @@
-!standard 8.2(11) 15-01-23 AI12-0003-1/06
+!standard 8.2(11) 15-01-27 AI12-0003-1/07
!standard 13.11.3(3.1/3)
!standard 13.11.3(4.1/3)
!standard 13.11.3(4.2/3)
@@ -69,15 +69,20 @@
<<< AI Note: the wording carefully ties into 13.11, so that it works for
instances. >>>>
- A direct_name shall not be a homograph of the package Standard that denotes a
- declaration other than package Standard when declared within a compilation
- unit for which the Standard default pool applies.
+Start%%%
+ A direct_name shall not be a homograph of the name of package Standard if it
+ denotes a declaration other than package Standard that has use-visibility at
+ the place of a Default_Storage_Pool pragma that defines the default pool to
+ be Standard.
AARM Reason: Any use of an identifier with the name Standard resprensenting
anything other than the package Standard would be confusing in a compilation
unit with Standard specified as the default storage pool. Such a choice for
an identifier is not recommended and very unlikely to occur, so a simple rule
- was chosen to prevent such confusion.
+ was chosen to prevent such confusion. [Author's note: An attempt to fix the
+ wording in the very unlikely chance that we decide to keep this paragraph.
+ Otherwise, please delete the text marked by %%%]
+End %%%
Add after 13.11.3(4.2/3):
@@ -134,6 +139,21 @@
implementation to revert to the standard allocation method seemed best
to achieve the desired capability.
+Start%%%
+Some were concerned about confusion between the identifier-specific-to-a-pragma
+Standard and some entity named "Standard". However, such an entity can never be
+use-visible (as the language-defined Standard is always directly visible and not
+overloadable); therefore it would have to have immediate-visibility for there to
+be any confusion. While immediate-visibility can occur between parent and child
+packages, which is a case similar to use-visibility, it was felt that this
+possibility would be obvious enough and unlikely to occur, so we do not bother
+with any sort of check for this case. "Standard" is always interpreted as an
+identifier specific to the pragma when it occurs in a Default_Storage_Pool
+pragma or aspect. [Author' Note: This last paragraph marked with %%% should be
+deleted if we decide to keep the wording above about the legality check against
+names conflicting with "Standard"]
+End%%%
+
!ACATS test
An ACATS C-Test should be constructed to test this capability.
@@ -1802,5 +1822,22 @@
I agree with this, and as a response I intend to experiment with making this
GNAT warning the default, at least for Standard, and maybe for all the other
entities, or at least have it included in -gnatwa.
+
+****************************************************************
+
+From: Brad Moore
+Sent: Tuesday, January 27, 2015 12:13 AM
+
+I have included an update. [This is version /07 of the AI.]
+
+It is unusual in that it is both written up with an attempted fix to the
+paragraph, for the remote chance that we decide to keep it, while also including
+some text in the discussion about why we decided to not keep it.
+
+I have also added some comments in square brackets at both of these places
+indicating that one or the other should be deleted.
+
+So hopefully it will just be a matter of deciding which section we want to
+scrap.
****************************************************************
Questions? Ask the ACAA Technical Agent