CVS difference for arm/source/pre_chars.mss

Differences between 1.42 and version 1.43
Log of other versions for file arm/source/pre_chars.mss

--- arm/source/pre_chars.mss	2011/11/01 23:14:15	1.42
+++ arm/source/pre_chars.mss	2011/12/23 21:32:48	1.43
@@ -1,8 +1,8 @@
 @comment{ $Source: e:\\cvsroot/ARM/Source/pre_chars.mss,v $ }
-@comment{ $Revision: 1.42 $ $Date: 2011/11/01 23:14:15 $ $Author: randy $ }
+@comment{ $Revision: 1.43 $ $Date: 2011/12/23 21:32:48 $ $Author: randy $ }
 @Part(predefchars, Root="ada.mss")
 
-@Comment{$Date: 2011/11/01 23:14:15 $}
+@Comment{$Date: 2011/12/23 21:32:48 $}
 
 @LabeledClause{Character Handling}
 @begin{Intro}
@@ -411,18 +411,16 @@
   @ChgAdded{Version=[3],Text=[This is to maintain runtime compatibility with
   the Ada 95 definitions of these functions. We don't list the exact characters
   involved because they're likely to change in future character set standards;
-  the list for ISO 10646:2003 can be found in
+  the list for ISO 10646:2011 can be found in
   @AILink{AI=[AI05-0114-1],Text=[AI05-0114-1]}.]}
 @end{Reason}
 @begin{Ramification}
   @ChgRef{Version=[3],Kind=[AddedNormal]}
   @ChgAdded{Version=[3],Text=[No version of Characters.Handling is intended
   to do portable (Ada-version independent) manipulation of Ada identifiers.
-  Specifically for Ada 2012, Wide_Characters.Handling has the correct
-  classification of characters, but that is unlikely to be true in future
-  Ada standards (it will have to remain tied to the classifications of
-  ISO 10646:2003 forever in order to avoid breaking programs at runtime, while
-  future Ada standards will move to newer character set standards.]}
+  The classification given by Wide_Characters.Handling will be correct for
+  the current implementation for Ada 2012 identifiers, but it may not be
+  correct for a different implementation or version of Ada.]}
 @end{Ramification}
 @end{Notes}
 
@@ -1001,8 +999,12 @@
 
 @begin{Example}
 
-@ChgRef{Version=[3],Kind=[AddedNormal]}
-@ChgAdded{Version=[3],Text=[@key[package] Ada.Wide_Characters.Handling @key[is]@ChildUnit{Parent=[Ada.Wide_Characters],Child=[Handling]}]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1],ARef=[AI05-0266-1]}
+@ChgAdded{Version=[3],Text=[@key[package] Ada.Wide_Characters.Handling @key[is]@ChildUnit{Parent=[Ada.Wide_Characters],Child=[Handling]}
+   @key[pragma] Pure(Handling);]}
+
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0266-1]}
+@ChgAdded{Version=[3],Text=[   @key[function] @AdaSubDefn{Character_Set_Version} @key[return] String;]}
 
 @ChgRef{Version=[3],Kind=[AddedNormal]}
 @ChgAdded{Version=[3],Text=[   @key[function] @AdaSubDefn{Is_Control} (Item : Wide_Character) @key[return] Boolean;]}
@@ -1069,6 +1071,16 @@
 
 @begin{Example}
 @ChgRef{Version=[3],Kind=[AddedNormal]}
+@ChgAdded{Version=[3],Text=[@key[function] Character_Set_Version @key[return] String;]}
+@end{Example}
+
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0266-1]}
+@ChgAdded{Version=[3],Type=[Trailing],Text=[Returns an implementation-defined
+identifier that identifies the version of the character set standard that is
+used for categorizing characters by the implementation.]}
+
+@begin{Example}
+@ChgRef{Version=[3],Kind=[AddedNormal]}
 @ChgAdded{Version=[3],Text=[@key[function] Is_Control (Item : Wide_Character) @key[return] Boolean;]}
 @end{Example}
 
@@ -1217,9 +1229,9 @@
 @ChgAdded{Version=[3],Text=[@key[function] To_Lower (Item : Wide_Character) @key[return] Wide_Character;]}
 @end{Example}
 
-@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1],ARef=[AI05-0266-1]}
 @ChgAdded{Version=[3],Type=[Trailing],Text=[Returns the Simple Lowercase Mapping
-as defined by documents referenced in the note in section 1 of ISO/IEC 10646:2003
+as defined by documents referenced in the note in section 1 of ISO/IEC 10646:2011
 of the Wide_Character designated by Item. If the Simple Lowercase Mapping does
 not exist for the Wide_Character designated by Item, then the value of Item is
 returned.]}
@@ -1227,7 +1239,7 @@
 @begin{Discussion}
   @ChgRef{Version=[3],Kind=[AddedNormal]}
   @ChgAdded{Version=[3],Text=[The case mappings come from Unicode as
-  ISO/IEC 10646:2003 does not include case mappings (but rather references
+  ISO/IEC 10646:2011 does not include case mappings (but rather references
   the Unicode ones as above).]}
 @end{Discussion}
 
@@ -1248,9 +1260,9 @@
 @ChgAdded{Version=[3],Text=[@key[function] To_Upper (Item : Wide_Character) @key[return] Wide_Character;]}
 @end{Example}
 
-@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1],ARef=[AI05-0266-1]}
 @ChgAdded{Version=[3],Type=[Trailing],Text=[Returns the Simple Uppercase Mapping
-as defined by documents referenced in the note in section 1 of ISO/IEC 10646:2003
+as defined by documents referenced in the note in section 1 of ISO/IEC 10646:2011
 of the Wide_Character designated by Item. If the Simple Uppercase
 Mapping does not exist for the Wide_Character designated by Item, then the value
 of Item is returned.]}
@@ -1270,9 +1282,38 @@
 @end{DescribeCode}
 @end{StaticSem}
 
+@begin{ImplAdvice}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0266-1]}
+@ChgAdded{Version=[3],Text=[The string returned by Character_Set_Version should include
+either @ldquote@;10646:@rdquote or @ldquote@;Unicode@rdquote@;.]}
+
+@ChgImplAdvice{Version=[3],Kind=[Added],Text=[@ChgAdded{Version=[3],
+Text=[The string returned by Wide_Characters.Handling.Character_Set_Version
+should include either @ldquote@;10646:@rdquote or @ldquote@;Unicode@rdquote@;.]}]}
 
+@begin{Discussion}
+@ChgRef{Version=[3],Kind=[AddedNormal]}
+@ChgAdded{Version=[3],Text=[The intent is that the returned string include the
+year for 10646 (as in "10646:2011"), and the version number for Unicode (as in
+"Unicode 6.0"). We don't try to specify that further so we don't need to decide
+how to represent Corrigenda for 10646, nor which of these is preferred.
+(Giving a Unicode version is more accurate, as the case folding and mapping
+rules always come from a Unicode version [10646 just tells one to look at
+Unicode to get those], and the character classifications ought to be the same
+for equivalent versions, but we don't want to talk about non-ISO standards
+in an ISO standard.)]}
+@end{Discussion}
+@end{ImplAdvice}
+
+@begin{Notes}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0266-1]}
+@ChgAdded{Version=[3],Text=[The results returned by these functions may depend
+on which particular version of the 10646 standard is supported by the
+implementation (see @RefSecNum{Character Set}).]}
+@end{Notes}
+
 @begin{Extend2005}
-  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0185-1],ARef=[AI05-0266-1]}
   @ChgAdded{Version=[3],Text=[@Defn{extensions to Ada 2005}
   The package Wide_Characters.Handling is new.]}
 @end{Extend2005}

Questions? Ask the ACAA Technical Agent