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

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

--- ai05s/ai05-0262-1.txt	2011/12/17 02:10:47	1.8
+++ ai05s/ai05-0262-1.txt	2012/01/05 06:19:33	1.9
@@ -98,7 +98,7 @@
 !standard  H.4(8/1)
 !class presentation 11-07-27
 !status Amendment 2012 11-07-27
-!status ARG Approved 9-0-0  11-12-11
+!status ARG Approved 9-0-0  11-11-12
 !status work item 11-07-27
 !status received 11-07-21
 !priority Medium
@@ -180,7 +180,7 @@
 
 Modify 3.5(56/3):
 
-"...with a code [position] {point} smaller ..."
+"...with a code [position] {point} smaller ..."  "...and {to accept} three character..."
 
 Modify 3.5.2(2/3, 3/2, 3.1/2):
 
@@ -449,8 +449,8 @@
 UTF_16_String Item parameter which is assumed to contain characters
 whose position values correspond to a valid encoding sequence according to
 the encoding scheme required by the function or specified by its Input_Scheme
-parameter, and returns the corresponding String, Wide_String, or value.
-The lower bound of the returned string is 1.
+parameter, and returns the corresponding String, Wide_String, or Wide_Wide_String
+value. The lower bound of the returned string is 1.
 
 For each of the Convert and Decode functions, an initial BOM in the input that
 matches the expected encoding scheme is ignored, and a different initial BOM
@@ -805,16 +805,14 @@
 
 @drepl
 @xhang<@xterm<@fa<graphic_character>>
-Any character which is not in the categories @fa<other_control>,
-@fa<other_private_use>, @fa<other_surrogate>, @fa<other_format>,
-@fa<format_effector>, and whose code position is neither 16#FFFE# nor
-16#FFFF#.>
+Any character that is not in the categories @fa<other_control>,
+@fa<other_private_use>, @fa<other_surrogate>, @fa<format_effector>, and whose
+relative code position in its plane is neither 16#FFFE# nor 16#FFFF#.>
 @dby
 @xhang<@xterm<@fa<graphic_character>>
-Any character which is not in the categories @fa<other_control>,
-@fa<other_private_use>, @fa<other_surrogate>, @fa<other_format>,
-@fa<format_effector>, and whose code point is neither 16#FFFE# nor
-16#FFFF#.>
+Any character that is not in the categories @fa<other_control>,
+@fa<other_private_use>, @fa<other_surrogate>, @fa<format_effector>, and whose
+relative code point in its plane is neither 16#FFFE# nor 16#FFFF#.>
 
 !corrigendum 2.2(2/2)
 
@@ -891,7 +889,7 @@
 An implementation may extend the Wide_Wide_Value, Wide_Value, and Value
 attributes of a character type to accept strings starting with "Hex_"
 (ignoring case) for graphics characters and those with a code
-point smaller than 16#100#, and three character strings of the form
+point smaller than 16#100#, and to accept three character strings of the form
 "'@i<nongraphic character>'".
 
 !corrigendum 3.5.2(2/2)
@@ -909,7 +907,7 @@
 are set in @i<italics>.
 @dby
 The predefined type Character is a character type whose values correspond to
-the 256 code points of Row 00 (also known as Latin-1) of the ISO/IEC 10646:2003 Basic
+the 256 code points of Row 00 (also known as Latin-1) of the ISO/IEC 10646:2011 Basic
 Multilingual Plane (BMP). Each of the graphic characters of Row 00 of the BMP
 has a corresponding @fa<character_literal> in Character. Each of the nongraphic
 characters of Row 00 has a corresponding
@@ -930,7 +928,7 @@
 Each of the @fa<graphic_character>s has a corresponding @fa<character_literal>.
 @dby
 The predefined type Wide_Character is a character type whose values correspond
-to the 65536 code points of the ISO/IEC 10646:2003 Basic Multilingual Plane (BMP).
+to the 65536 code points of the ISO/IEC 10646:2011 Basic Multilingual Plane (BMP).
 Each of the graphic characters of the BMP has a corresponding @fa<character_literal>
 in Wide_Character. The first 256 values of Wide_Character have the same
 @fa<character_literal> or language-defined name as defined for Character.
@@ -947,7 +945,7 @@
 Wide_Character.
 @dby
 The predefined type Wide_Wide_Character is a character type whose values
-correspond to the 2147483648 code points of the ISO/IEC 10646:2003 character
+correspond to the 2147483648 code points of the ISO/IEC 10646:2011 character
 set. Each of the @fa<graphic_character>s has a corresponding @fa<character_literal>
 in Wide_Wide_Character. The first 65536 values of Wide_Wide_Character have the
 same @fa<character_literal> or language-defined name as defined for
@@ -957,14 +955,14 @@
 
 @drepl
 The characters whose code position is larger than 16#FF# and which are not
-graphic_characters have language-defined names which are formed by appending to the
+@fa<graphic_character>s have language-defined names which are formed by appending to the
 string "Hex_" the representation of their code position in hexadecimal as eight
 extended digits. As with other language-defined names, these names are usable only
 with the attributes (Wide_)Wide_Image and (Wide_)Wide_Value; they are not usable as
 enumeration literals.
 @dby
 The characters whose code point is larger than 16#FF# and which are not
-graphic_characters have language-defined names which are formed by appending to the
+@fa<graphic_character>s have language-defined names which are formed by appending to the
 string "Hex_" the representation of their code point in hexadecimal as eight
 extended digits. As with other language-defined names, these names are usable only
 with the attributes (Wide_)Wide_Image and (Wide_)Wide_Value; they are not usable as
@@ -1691,7 +1689,7 @@
    @b<return> List_Iterator_Interfaces.Reversible_Iterator'Class;>
 
 @xindent<If Start is not No_Element and does not designate an item in Container, then Program_Error
-is propagated. If Start is No_Element, then Constraint_Error is propogated.
+is propagated. If Start is No_Element, then Constraint_Error is propagated.
 Otherwise, Iterate returns a reversible iterator object that will generate
 a value for the loop parameter designating each node in Container, starting with the
 node designated by Start and moving the cursor as per the Next function
@@ -1861,9 +1859,6 @@
 needs finalization.>
 
 !corrigendum A.18.7(18/2)
-!AI-0001-1
-!AI-0212-1
-!AI-0262-1
 
 @dinsa
 Execution of the default implementation of the Input, Output, Read, or Write
@@ -1935,9 +1930,6 @@
 If Position designates the first element, then Previous returns No_Element.
 
 !corrigendum A.18.9(113/2)
-!AI-0212-1
-!AI-0262-1
-!AI-0265-1
 
 @drepl
 @xindent<Iterates over the elements in Container as per Iterate, with the difference
@@ -2066,26 +2058,6 @@
 of this Annex shall either be identified by the implementation before run time or shall raise
 an exception at run time.
 
-
-!corrigendum B.2(10.1/2)
-
-@drepl
-Support for interfacing to any foreign language is optional. However, an implementation
-shall not provide any attribute, library unit, or pragma having the same name as an attribute,
-library unit, or pragma (respectively) specified in the following clauses of this Annex unless
-the provided construct is either as specified in those clauses or is more limited in capability
-than that required by those clauses. A program that attempts to use an unsupported capability
-of this Annex shall either be identified by the implementation before run time or shall raise
-an exception at run time.
-@dby
-Support for interfacing to any foreign language is optional. However, an implementation
-shall not provide any aspect, attribute, library unit, or pragma having the same name as an
-aspect, attribute, library unit, or pragma (respectively) specified in the clauses of this Annex
-unless the provided construct is either as specified in those clauses or is more limited in
-capability than that required by those clauses. A program that attempts to use an unsupported
-capability of this Annex shall either be identified by the implementation before run time or
-shall raise an exception at run time.
-
 !corrigendum B.3(2/2)
 
 @drepl
@@ -2099,6 +2071,7 @@
 When this clause mentions a C entity, the reference also applies to the
 corresponding entity in C++.
 
+
 !corrigendum C.7.1(14)
 
 @drepl
@@ -2560,7 +2533,6 @@
 
 I could live with either one.  Unspecified is certainly easier to implement!
 
->
 > (2) If you agree with the above, perhaps all we need is a To Be Honest
 > (or do we need "Adam Clarification:" in the AARM? ;-):
 >
@@ -2570,21 +2542,22 @@
 > precondition or postcondition check is executed is unspecified.
 
 I think it probably should be normative.
->
+
 > (3) Or we could put the above text (or something like it) directly
 > after
 > 6.1.1(33/3) [the last paragraph in the dynamic semantics, the one that
 > talks about the Ignore policy].
 
 Yes, this seems like the right place.
->
+
 > (4) Or we could write the above as an Implementation Permission.
 
-I don't think it makes sense as a permission, since without the paragraph, the "correct" implementation isn't really defined.
-Normally an implementation permission allows an implementation to do something that to some degree goes against the "official"
-semantics.  But here, we seem to agree that the "official"
+I don't think it makes sense as a permission, since without the paragraph, the
+"correct" implementation isn't really defined. Normally an implementation permission
+allows an implementation to do something that to some degree goes against the
+"official" semantics.  But here, we seem to agree that the "official"
 semantics aren't well defined when policies differ.
->
+
 > We can probably do any of the above as a last-minute fix; none of them
 > would have much chance of breaking anything (none would apply if
 > Ignore wasn't used).
@@ -2805,6 +2778,86 @@
 
 ****************************************************************
 
+From: Steve Baird
+Sent: Friday, August 5, 2011  11:20 AM
+
+The section on subtype predicates (3.2.4) contains the usual
+
+   In addition to the places where Legality Rules normally apply (see
+   12.3), this rule applies also in the private part of an instance of a
+   generic unit.
+
+This is fine, but why does this occur in the "dynamic semantics"
+section?
+
+I would have thought it would occur immediately after the legality rule that
+it applies to. As it stands, the resolution of the word "this" is only 90% obvious,
+not 100%,
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Friday, August 5, 2011  4:28 PM
+
+My reading of this statement is that it applies (only) to the Program_Error wording
+in the previous sentence (the "rule" is singular there) and that is Dynamic Semantics.
+It only applies indirectly to the Legality Rules. If it was intended to apply to the
+entire batch of legality rules, it would have had to use the plural form and be positioned
+in the Legality Rules.
+
+I don't disagree that this is very confusing. And I have to wonder why we are insisting
+on Program_Error in private parts, rather than just reporting the error at instantiation
+time.
+
+It's possible that Bob just was extremely sloppy with this wording, but knowing Bob I
+don't think that is likely. [I've cced him so he can comment if he remembers anything
+about this one.]
+
+****************************************************************
+
+From: Bob Duff
+Sent: Friday, August 5, 2011  4:44 PM
+
+> It's possible that Bob just was extremely sloppy with this wording, 
+> but knowing Bob I don't think that is likely. [I've cced him so he can 
+> comment if he remembers anything about this one.]
+
+Sorry, I've no idea what I was thinking.  Did I really write that?  The following AARM
+paragraph appears to explain it, and it appears to be written in English, but it's totally
+incomprehensible to me right now.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Friday, August 5, 2011  4:55 PM
+
+I'm 99% certain that you wrote the AARM note; it doesn't sound like me and it also is
+incomprehensible to me. And I remember wondering about it when I read one of your drafts
+of the AI. Presuming I'm right about that, you must have written the rule, too. It's possible
+that you added it because of some note from one of the meetings, and didn't fully understand
+what you were doing, or rushed, or whatever.
+
+Best that I can make out from the AARM note, you were expecting a legality check (otherwise
+the "anyway" would make no sense as opposed to 10% sense). In which case, it's in the wrong
+place with the wrong plurality.
+
+Anyway, no rush to figure out the intent, there aren't going to be ACATS tests on such
+trivialities in the near future. (But I'd err on the side of rejecting stuff that is in doubt,
+that doesn't cause compatibility issues in the future once it gets worked out.)
+
+****************************************************************
+
+From: Steve Baird
+Sent: Friday, August 5, 2011  4:58 PM
+
+If, as I suggest, we move the "In addition to" sentence up to where I I think it belongs,
+then we would do just that - we would catch the error statically at the point of
+instantiation, just like we do for lots of other legality rules.
+
+But I agree, no need to deal with this one right away.
+
+****************************************************************
+
 From: John Barnes
 Sent: Monday, August 22, 2011  4:12 AM
 
@@ -4831,5 +4884,43 @@
 > case expression. Strange becuase a conditional can be mapped onto a case.
 
 I agree that's strange.  I've no idea why I left that out.
+
+****************************************************************
+
+From: Adam Beneschan
+Sent: Monday, November 14, 2011  8:30 PM
+
+!topic Wording nitpick in 3.2.4
+!reference RM12 3.2.4(12/3)
+!from Adam Beneschan 11-11-14
+!discussion
+
+3.2.4(7-12):
+
+    The expression of a Static_Predicate specification shall be
+    predicate-static; that is, one of the following:
+
+    ...
+
+    a call to a predefined boolean logical operator, where both operands
+    are predicate-static; ...
+
+Does the use of the term "both operands" mean that the predefined logical operator
+"not" is prohibited (since it only has one operand)? My guess is no (i.e. "not" is
+allowed), but if so then I think the wording needs a bit of editing to account for
+that case.
+
+Maybe
+
+    a call to a predefined boolean logical operator, where both operands
+    (or the single operand, for a unary operator) are predicate-static; ...
+
+
+****************************************************************
+
+From: John Barnes
+Sent: Tuesday, November 15, 2011  4:18 AM
+
+We already caught that. I spotted it when doing an example in the rationale.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent