# CVS difference for arm/source/01.mss

Differences between 1.88 and version 1.89
Log of other versions for file arm/source/01.mss

```--- arm/source/01.mss	2015/03/03 05:38:24	1.88
+++ arm/source/01.mss	2016/02/12 05:25:37	1.89
@@ -12,7 +12,7 @@

@begin{WideAbove}
-@Swiss<@Grow[@B{INTERNATIONAL STANDARD@\ISO/IEC 8652:@Chg{Version=[2],New=[@Chg{Version=[3],New=[2012(E)],Old=[2007(E), Ed. 3]}],Old=[@Chg{Version=[1], New=[1995(E) with COR.1:2001], Old=[]}]}}]>
+@Swiss<@Grow[@B{INTERNATIONAL STANDARD@\ISO/IEC 8652:@Chg{Version=[2],New=[@Chg{Version=[5],New=[202x],Old=[@Chg{Version=[3],New=[2012(E)@Chg{Version=[4],New=[ with Cor 1:2016],Old=[]}],Old=[2007(E), Ed. 3]}]}],Old=[@Chg{Version=[1], New=[1995(E) with COR
.1:2001], Old=[1995(E)]}]}}]>
@end{WideAbove}

@thickline
@@ -27,10 +27,10 @@
@end{Title}

@LabeledSectionNoBreak{General}
-@Comment{\$Date: 2015/03/03 05:38:24 \$}
+@Comment{\$Date: 2016/02/12 05:25:37 \$}

@Comment{\$Source: e:\\cvsroot/ARM/Source/01.mss,v \$}
-@Comment{\$Revision: 1.88 \$}
+@Comment{\$Revision: 1.89 \$}

@begin{Intro}
@Chgref{Version=[3],Kind=[DeletedNoDelMsg],ARef=[AI05-0299-1]}
@@ -62,10 +62,13 @@
@ChgRef{Version=[2],Kind=[Revised]}
@ChgRef{Version=[3],Kind=[Revised]}
@ChgRef{Version=[4],Kind=[Revised]}
+@ChgRef{Version=[5],Kind=[Revised]}
This Annotated Ada Reference Manual (AARM) contains the entire text of
the @Chg{Version=[3],New=[third edition of the ],Old=[]}Ada Reference
-Manual @Chg{Version=[4],New=[as updated
-for Ada 202x (referred to here as the Ada 202x RM)],Old=[@Chg{Version=[3],New=[ (the
+Manual @Chg{Version=[5],New=[as updated
+Old=[@Chg{Version=[4],New=[as updated by Technical Corrigendum 1],
+Old=[]}@Chg{Version=[3],New=[ (the
Amendment 1 (the Ada 2005 RM],Old=[(RM95]}]})]},
plus certain annotations.
@@ -75,7 +78,7 @@
and interactions among the rules
(interesting to language lawyers, that is).
2012]}],Old=[]}],Old=[ and Ada 95]} are listed.
(The text you are reading now is an annotation.)

@@ -86,7 +89,7 @@
We're not trying to make the language @lquotes@;appear@rquotes@; simple here;
on the contrary, we're trying to expose hidden complexities,
so we can more easily detect language bugs.
-The @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[4],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}, on the other hand, is intended to be a more
+The @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}, on the other hand, is intended to be a more

@Leading@keepnext@;The annotations in the AARM are as follows:
@@ -96,12 +99,12 @@
Text that is logically redundant is shown
@Redundant[in square brackets, like this].
Technically, such text could be written as a @NotesName
(and the Ada 95 @Chg{Version=[3],New=[and 2005 RMs],Old=[RM]} before it)],Old=[RM95]},
since it is really a theorem that can
be proven from the nonredundant rules of the language.
We use the square brackets instead when it seems to make the

The rules of the language (and some AARM-only text) are categorized,
and placed under certain @i{sub-headings} that indicate
@@ -148,7 +151,7 @@
@ChgRef{Version=[2],Kind=[Revised]}
@ChgRef{Version=[3],Kind=[Revised]}
-does not appear in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[4],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}:
+does not appear in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}:
@begin(Inneritemize)
@MetaRulesTitle,

@@ -248,7 +251,7 @@
@begin{Discussion}
@ChgRef{Version=[2],Kind=[Revised]}
@ChgRef{Version=[3],Kind=[Revised]}
-In general, @Chg{Version=[2],New=[the Ada @Chg{Version=[3],New=[@Chg{Version=[4],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]} text appears in the normal font,
+In general, @Chg{Version=[2],New=[the Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]} text appears in the normal font,
whereas AARM-only text appears in a smaller font.
@NotesName@;s also appear in the smaller font,
as recommended by ISO/IEC style guidelines.
@@ -536,7 +539,7 @@
@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0005-1]}
This is not part of the definition of the language,
and does not appear in the @Chg{Version=[2],New=[Ada
-@Chg{Version=[3],New=[@Chg{Version=[4],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}.
+@Chg{Version=[3],New=[@Chg{Version=[5],New=[202x],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}.
@end{MetaRules}

@begin{Syntax}
@@ -807,7 +810,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
This is not part of the definition of the language,
and does not appear in the @Chg{Version=[2],New=[Ada 95@Chg{Version=[3],New=[,],Old=[ or]}
@end{Inconsistent83}

@@ -825,7 +828,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
This is not part of the definition of the language,
and does not appear in the @Chg{Version=[2],New=[Ada 95@Chg{Version=[3],New=[,],Old=[ or]}
@end{Incompatible83}

@@ -842,7 +845,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
This is not part of the definition of the language,
and does not appear in the @Chg{Version=[2],New=[Ada 95@Chg{Version=[3],New=[,],Old=[ or]}

@Leading@ @* @Comment{Two blank lines: why? Because it was in the original.}
@@ -865,7 +868,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
This is not part of the definition of the language,
and does not appear in the @Chg{Version=[2],New=[Ada 95@Chg{Version=[3],New=[,],Old=[ or]}
@end{DiffWord83}

@@ -908,7 +911,7 @@
@ChgRef{Version=[3],Kind=[Revised]}
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[2],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[4],New=[,
+and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[5],New=[,
@end{Inconsistent95}

@@ -944,7 +947,7 @@
@ChgRef{Version=[3],Kind=[Revised]}
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[2],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[4],New=[,
+and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[5],New=[,
@end{Incompatible95}

@@ -979,7 +982,7 @@
@ChgRef{Version=[3],Kind=[Revised]}
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[2],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[4],New=[,
+and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[5],New=[,

@@ -1002,7 +1005,7 @@
@ChgRef{Version=[3],Kind=[Revised]}
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[2],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[4],New=[,
+and does not appear in the Ada 2005 @Chg{Version=[3],New=[@Chg{Version=[5],New=[,
@end{DiffWord95}

@@ -1043,7 +1046,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[3],Text=[This is not part of the definition of the language,
RM.]}
@end{Inconsistent2005}

@@ -1073,7 +1076,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[3],Text=[This is not part of the definition of the language,
RM.]}
@end{Incompatible2005}

@@ -1102,7 +1105,7 @@
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[3],Text=[This is not part of the definition of the language,
RM.]}

@@ -1124,108 +1127,134 @@
@ChgRef{Version=[4],Kind=[Revised]}
@ChgAdded{Version=[3],Text=[This is not part of the definition of the language,
RM.]}
@end{DiffWord2005}

@begin{Discussion}
+@ChgRef{Version=[5],Kind=[Revised]}
@*
+The next three headings list all language changes between
(the language defined by ISO/IEC 8652:2012(E))
-and Ada 202x (the language defined by this edition of the Standard).
+and Ada 202x (the language defined by this edition of the Standard)],Old=[original
+Ada 2012 (the language defined by unmodified ISO/IEC 8652:2012(E)) and current
+Ada 2012 (the language defined by ISO/IEC 8652:2012(E) as
+corrected by the Corrigendum ISO/IEC 8652:2012/Cor 1:2016)]}.
Each language change falls into one of the following three categories:]}
@end{Discussion}

@begin{Inconsistent2012}
+@ChgRef{Version=[5],Kind=[Revised]}
-202x. Upward inconsistencies are situations in which a legal Ada 2012 program
-is a legal Ada 202x program with different semantics.]}
+This heading lists all of the upward inconsistencies between
+Upward inconsistencies are situations in which a legal
+program with different semantics.]}

+@ChgRef{Version=[5],Kind=[Revised]}
@b[Corrigendum:]@Defn{Corrigendum} are corrections to the original Ada 2012
-@b[Correction:]@Defn{Correction} are corrections to the original Ada 2012
-definition added by this edition of the Standard.
+New=[ Inconsistencies marked
+with @b[Correction:]@Defn{Correction} are corrections to the original Ada 2012
+definition added by this edition of the Standard.],Old=[]}
Formally, these are
inconsistencies caused by Ada Issues classified as Binding Interpretations;
implementations of Ada 2012 are supposed to follow these corrections, not the
original flawed language definition. Thus, these strictly speaking are not
+and original Ada 2012]}. Practically, however, they very
well may be, as early Ada 2012 implementations might not follow the recommendation.
-Inconsistencies so marked are not portable between Ada 2012 implementations,
-while usually Ada 202x will have more clearly defined behavior. Therefore, we
+Inconsistencies so marked are not portable between Ada 2012
+implementations@Chg{Version=[5],New=[, while usually Ada 202x will have
+more clearly defined behavior],Old=[]}. Therefore, we
document these for completeness.]}

@ChgAdded{Version=[4],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 202x RM.]}
+and does not appear in any version of the Ada RM.]}
@end{Inconsistent2012}

@begin{Incompatible2012}
+@ChgRef{Version=[5],Kind=[Revised]}
-and Ada 202x, except for the ones listed under @lquotes@;@Inconsistent2012Title@rquotes@;
-above. These are the situations in which a legal Ada 2012 program is
+This heading lists all of the upward incompatibilities between
+except for the ones listed under @lquotes@;@Inconsistent2012Title@rquotes@;
+above. These are the situations in which a legal

+
+@ChgRef{Version=[5],Kind=[Revised]}
marked with
@b[Corrigendum:]@Defn{Corrigendum} are corrections to the original Ada 2012
-marked with @b[Correction:] are corrections to the original Ada 2012 definition
-added by this edition. Formally, these are
+New=[, and incompatibilities marked
+with @b[Correction:]@Defn{Correction} are corrections to the original Ada 2012
+Formally, these are
incompatibilities caused by Ada Issues classified as Binding Interpretations;
implementations of Ada 2012 are supposed to follow these corrections, not the
original flawed language definition. Thus,
-these strictly speaking are not incompatibilities between Ada 2012 and Ada 202x.
+these strictly speaking are not incompatibilities between
Practically, however, they very well may be, as early Ada 2012 implementations
-may be able to compile the examples, while others might not. In
-@Chg{Version=[4],New=[contrast],Old=[constrast]},
-Ada 202x compilers will have consistent behavior. Therefore, we document these
+may be able to compile the examples, while others might
+not.@Chg{Version=[5],New=[ In contrast, Ada 202x compilers will have
+consistent behavior.],Old=[]} Therefore, we document these
for completeness.]}

@ChgAdded{Version=[4],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 202x RM.]}
+and does not appear in any version of the Ada RM.]}
@end{Incompatible2012}

@begin{Extend2012}
+@ChgRef{Version=[5],Kind=[Revised]}
This heading is used to list all upward compatible language changes;
that is, language extensions.
-These are the situations in which a legal Ada 202x program is not a
+These are the situations in which a legal
+current Ada 2012 program is not a legal original Ada 2012]} program.
The vast majority of language changes fall into this category.]}

+@ChgRef{Version=[5],Kind=[Revised]}
marked with
@b[Corrigendum:]@Defn{Corrigendum} are corrections to the original Ada 2012
+New=[, and extensions
marked with @b[Correction:] are corrections to the original Ada 2012 definition
Formally, these are extensions allowed by Ada Issues classified as Binding
are allowed to implement these extensions. Thus, these strictly speaking are not
extensions of Ada 2012; they're part of Ada 2012. Practically, however, they
very well may be extensions, as early Ada 2012 implementations might not implement
the extension. Therefore, some Ada 2012 implementations may be able to compile
-the examples, while others might not. In contrast, Ada 202x compilers will always
-support the extensions. Therefore, we document these for completeness.]}
+the examples, while others might not.@Chg{Version=[5],New=[ In contrast,
+Ada 202x compilers will always support the extensions.],Old=[]}
+Therefore, we document these for completeness.]}

@ChgAdded{Version=[4],Text=[This is not part of the definition of the language,
-and does not appear in the Ada 202x RM.]}
+and does not appear in any version of the Ada RM.]}

@@ -1235,19 +1264,23 @@

@begin{DiffWord2012}
+@ChgRef{Version=[5],Kind=[Revised]}
-This heading lists some of the nonsemantic changes between the Ada 2012 RM and
+This heading lists some of the nonsemantic changes between the
+only @lquotes@;interesting@rquotes@; changes
(for instance, editorial corrections are not listed). Items marked
-@b[Corrigendum:]@Defn{Corrigendum} are included in Corrigendum 1 to Ada 2012,
-and items marked with @b[Correction:] are added by this edition. In both cases,
-the items come from Ada Issues classified
-as Binding Interpretations and strictly speaking belong to Ada 2012; other items
+@b[Corrigendum:]@Defn{Corrigendum} are included in Corrigendum 1 to Ada
+2012@Chg{Version=[5],New=[, and items marked with @b[Correction:] are added by this edition.
+In both cases, the],Old=[. These]}
+items come from Ada Issues classified
+as Binding Interpretations and strictly speaking belong to Ada
+2012@Chg{Version=[5],New=[; other items only belong to Ada 202x],Old=[]}.]}