CVS difference for ai05s/ai05-0227-1.txt
--- ai05s/ai05-0227-1.txt 2011/01/28 02:29:50 1.4
+++ ai05s/ai05-0227-1.txt 2011/03/12 07:36:48 1.5
@@ -1,5 +1,7 @@
-!standard 1.1.4(14.2/2) 11-01-27 AI05-0227-1/03
+!standard 1.1.4(14.2/2) 11-03-11 AI05-0227-1/04
!class binding interpretation 10-10-21
+!status Amendment 2012 11-03-11
+!status ARG Approved 6-0-2 10-02-20
!status work item 10-10-21
!status received 10-07-03
@@ -56,7 +58,7 @@
-Simple case folding is a mapping to lower case, so this is a matching to the defining
+Simple case folding is a mapping to lower case, so this is matching the defining
(lower case) version of a reserved word. We could have mentioned case folding of the
reserved words, but as that is an identity function, it would have no effect.
@@ -136,7 +138,7 @@
both be used for case conversion and case insensitive comparisons. These are
two different operations.
-An important property of "full case folding" (and "simple case folding as well)
+An important property of "full case folding" (and "simple case folding" as well)
is that Unicode guarantees that it is stable. That is, it will always provide
the same results for two strings (that contain only defined code-points) in
any current or newer version of Unicode. Conversely, the various case mappings
@@ -166,13 +168,13 @@
conversion mapping, and in any case it goes to lower case.)
This makes Ada 2012 as compatible with the Unicode recommendations as
-possible. However, there are problems problem.
+possible. However, there are problems.
Both "full case folding" and "full upper case mapping" can cause strings to
change lengths. This adds implementation complexity.
"Locale-independent full case folding" maps the 16#DF# character (German sharp s,
-represented here by <S>) character maps to "ss". This leads directly to the various
+represented here by <S>) to "ss". This leads directly to the various
incompatibilities noted in the question. In particular all of the following
identifiers would be equivalent in Ada 2012 if this was adopted:
@@ -189,7 +191,7 @@
If we use "locale-independent simple case folding" instead, it then makes no
sense to use the more complex "full upper case mapping" for '[Wide_Wide_]Image.
We would have the same problem with 'Image that we had previously with identifier
-equivalence.For instance, the sharp s character maps to "SS" in full upper case
+equivalence. For instance, the sharp s character maps to "SS" in full upper case
mapping. Thus, 'Image (Bass) = "BASS" 'Image (Ba<S>) = "BASS". This particular
example is especially nasty because it is inconsistent with the Ada 95 handling of
@@ -200,12 +202,12 @@
both in time and space.
Even using "simple case folding" and "simple upper case mapping"s, it is still
-possible for two different identifiers to have the same upper case mapping (the
-dotless lowercase i is such an example). In order to keep the implementation of
-'[Wide_Wide_]Value manageable, we have also adopted a rule that all of the literals
-of an enumeration type have distinct upper case mappings. This allows
-'[Wide_Wide_]Value to compare the upper case mappings of its parameter, rather than
-having to use case folding.
+possible for two different identifiers to have the same upper case mapping (identifiers
+including the dotless lowercase i is such an example). In order to keep the
+implementation of '[Wide_Wide_]Value manageable, we have also adopted a rule that
+all of the literals of an enumeration type have distinct upper case mappings. This
+allows '[Wide_Wide_]Value to compare the upper case mappings of its parameter, rather
+than having to use case folding.
Questions? Ask the ACAA Technical Agent