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

Differences between 1.8 and version 1.9
Log of other versions for file ai05s/ai05-0269-1.txt

--- ai05s/ai05-0269-1.txt	2012/02/19 04:54:05	1.8
+++ ai05s/ai05-0269-1.txt	2012/03/16 06:12:45	1.9
@@ -1,4 +1,4 @@
-!standard  3.2.4(0)                                 12-02-15    AI05-0269-1/09
+!standard  3.2.4(0)                                 12-03-15    AI05-0269-1/10
 !standard  3.5(56/2)
 !standard  3.10.1(13)
 !standard  4.1.5(0)
@@ -50,6 +50,7 @@
 !standard  B.1(1)
 !standard  B.1(40)
 !standard  B.1(51)
+!standard  B.3(23)
 !standard  B.3.3(1/2)
 !standard  D.2.4(11/2)
 !standard  D.10(10)
@@ -60,6 +61,7 @@
 !standard  E.2.2(14/2)
 !class Amendment 11-11-09
 !status Amendment 2012 12-01-12
+!status ARG Approved 8-0-2  12-02-26
 !status work item 11-11-09
 !status received 11-07-20
 !priority Low
@@ -249,6 +251,14 @@
 (60) 4.9(11) is hard to read, consider rewording. [Canada NB]
+(61) A.18.10(173/3) (Append_Child) says:
+"Equivalent to Insert_Child (Container, Parent, Last_Child (Container, Parent), New_Item, Count)."
+But this will insert the item in front of the last item. The third parameter here should
+be No_Element.
+(62) B.3(23/3) should include "with Pack" to be consistent with the other array declarations
+in this package. [Ada-Europe comment, ARG direction, see !discussion]
 (1) Remove pragma Preelaborate from D.16.1(3/3).
@@ -313,8 +323,8 @@
 In addition to the operations provided in package Directories.Hierarchical_File_Names,
 {the} operations in package Directories can be used {with hierarchical file names}.
-In particular, functions Full_Name, Base_Name, and Extension are {provide additional
-capabilities for}[usable with] hierarchical file names.
+In particular, functions Full_Name, Base_Name, and Extension {provide additional
+capabilities for}[are usable with] hierarchical file names.
 (18) Modify A.17(19/3): "...all existing environment variable{s}..."
@@ -359,7 +369,8 @@
 the enclosed options.]
 (25) Modify A.18.2(230.2/3), A.18.2(230.4/3), A.18.3(144.2/3), A.18.3(144.4/3), A.18.5(61.2/3),
-A.18.6(94.2/3), A.18.8(85.2/3), A.18.9(113.2/3), A.18.10(155/3), A.18.10(157/3), A.18.10(217/3):
+A.18.6(94.2/3), A.18.6(94.4/3), A.18.8(85.2/3), A.18.9(113.2/3), A.18.9(113.4/3),
+A.18.10(155/3), A.18.10(157/3), A.18.10(217/3):
 "...Iterate returns a <reversible|forward> iterator object {(see 5.5.1)} that will
 generate a value for [the] {a} loop parameter {(see 5.5.2)}
@@ -409,7 +420,7 @@
    * if Source_Parent is an ancestor of Target_Parent {other than
      Target_Parent itself}, then Constraint_Error is propagated; else
-Modify A.18.10(187/3, 188/3, 190/3):
+Modify A.18.10(186/3, 188/3, 190/3):
    ... the child elements (and [their] {the further} descendants)
    of Source_Parent ...
@@ -435,7 +446,7 @@
 that occurs within a protected action uses the ceiling priority of the protected object (rather
 than the active priority of the task) when determining whether to preempt the task.
-AARM Reason: We explicitly require that the ceiling priority by used
+AARM Reason: We explicitly require that the ceiling priority be used
 in calls to Yield_to_Higher in order to prevent a risk of priority
 inversion and consequent loss of mutual exclusion when Yield_to_Higher
 is used in a protected object. This requirement might lessen the value of
@@ -611,6 +622,12 @@
     static ranges, or subtype_marks that denote a static
     (scalar or string) subtype;
+(61) Replace A.18.10(173/3) with:
+    Equivalent to Insert_Child (Container, Parent, No_Element, New_Item, Count).
+(62) Add "with Pack" to B.3(23/3).
 For (23), we copy the wording of 13.3(26.3/2).
@@ -632,6 +649,41 @@
 value", and "has accessibility level" makes more sense than "with accessibility
 level" with this lead-in.
+For (42), the original suggestion to use a bulleted list was not used as that would
+change this single paragraph into eight paragraphs. That would improve the wording a
+bit, but not enough to justify the complication of introducing seven additional paragraphs.
+For (44), the question was raised why the parameters in this package aren't lined up
+as in most language defined packages. That was not done here as it was not done in 
+the parent System.Storage_Pools package, and it seemed important to be consistent with
+that package. Changing System.Storage_Pools to align the parameters seems wrong as it
+is not modified by Ada 2012.
+For (62), the editor strongly disagrees with this change. First, none of the Annex B packages
+should have any representation clauses. The critical requirement for these packages is
+B.3(42) and equivalent: these types match the representation of the appropriate C
+(or other language) compiler. The Ada representation MUST match that compiler, and the
+implementation needs to specify whatever representation is needed to match that compiler.
+Any language-defined representation simply interferes with that. So, no pack or other
+representation should be given in any of these packages.
+Second, this particular declaration also has a Component_Size clause. That clause is
+sufficient to specify the representation if we in fact wanted to do that. Indeed, specifying
+Pack here is almost certainly wrong. Even if an implementation takes advantage of 13.3(73/3)
+[which is unfriendly to the user by ignoring their explicit instructions], it is very
+unlikely that the exception given there would apply to this array (CHAR_BIT is almost
+certainly a "factor or multiple of the word size"). And in the extremely unlikely case
+that this is not true, the C compiler would certainly have used an unpacked representation
+for this array and the Pack would give the wrong representation. Thus, giving Pack on
+this declaration is both unnecessary and potentially harmful.
+Removing all of the Pack specifications is considered too much change at this point
+(a position that the editor does not disagree with). But there should be no problem with
+removing unnecessary, redundant or harmful specifications, such as this one. The original
+commenter -- and the full ARG which is forcing this change over the editor's objections
+-- are endorsing consistency over correctness, which is a completely silly position and
+one that the editor cannot agree with.
 !corrigendum 1(2)
@@ -1217,6 +1269,8 @@
   @b<function> Invert (M : Matrix) @b<return> Matrix
     @b<with> Import =@> True, Convention =@> Fortran;
 @b<end> Fortran_Library;>
+!comment %% B.3(23) needs changes here (there was no original change, so there is none here either).
 !corrigendum B.3.3(1/2)

Questions? Ask the ACAA Technical Agent