Skip to content

Commit

Permalink
Various updates for the final Ada 2022 RM and a bit of work on the Ad…
Browse files Browse the repository at this point in the history
…a 202Y RM.
  • Loading branch information
rbrukardt authored and reznikmm committed Oct 7, 2023
1 parent 6ac7ae8 commit 2320391
Show file tree
Hide file tree
Showing 32 changed files with 454 additions and 323 deletions.
10 changes: 5 additions & 5 deletions source/02.mss
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Part(02, Root="ada.mss")

@Comment{$Date: 2023/01/05 05:49:06 $}
@Comment{$Date: 2023/10/04 05:40:20 $}
@LabeledSection{Lexical Elements}

@Comment{$Source: e:\\cvsroot/ARM/Source/02.mss,v $}
@Comment{$Revision: 1.104 $}
@Comment{$Revision: 1.105 $}

@begin{Intro}
@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0299-1]}
Expand All @@ -21,13 +21,13 @@ described in this @Chg{Version=[3],New=[clause],Old=[section]}.]
@begin{Intro}
@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00285-01],ARef=[AI95-00395-01]}
@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0266-1]}
@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0263-1],ARef=[AI12-0450-1]}
@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0263-1],ARef=[AI12-0450-1],ARef=[AI12-0454-1]}
@Defn{character set}
The @Chg{Version=[2],New=[character repertoire for the text of an Ada
program consists of the
entire coding space described by the ISO/IEC 10646:@Chg{Version=[3],New=[@Chg{Version=[5],New=[2020],Old=[2011]}],Old=[2003]}
Universal @Chg{Version=[5],New=[coded character set],Old=[Multiple-Octet Coded
Character Set]}. This coding space is organized in
Universal @Chg{Version=[5],New=[],Old=[Multiple-Octet ]}Coded
Character Set. This coding space is organized in
@i<planes>, each plane comprising 65536 characters.@Defn2{Term=[plane],Sec=[character]}
@Defn{character plane}],Old=[only characters
allowed outside of @nt{comment}s are the @nt{graphic_character}s and
Expand Down
5 changes: 3 additions & 2 deletions source/03a.mss
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Part(03, Root="ada.mss")

@Comment{$Date: 2023/01/05 05:49:06 $}
@Comment{$Date: 2023/10/04 05:40:20 $}
@LabeledSection{Declarations and Types}

@Comment{$Source: e:\\cvsroot/ARM/Source/03a.mss,v $}
@Comment{$Revision: 1.159 $}
@Comment{$Revision: 1.160 $}

@begin{Intro}
@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0299-1]}
Expand Down Expand Up @@ -2914,6 +2914,7 @@ assigning to an enclosing object.
@end{DiffWord2012}


@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM}
@LabeledSubClause{Object Declarations}

@begin{Intro}
Expand Down
22 changes: 12 additions & 10 deletions source/04a.mss
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Part(04, Root="ada.mss")

@Comment{$Date: 2023/01/05 05:49:07 $}
@Comment{$Date: 2023/10/04 05:40:20 $}
@LabeledSection{Names and Expressions}

@Comment{$Source: e:\\cvsroot/ARM/Source/04a.mss,v $}
@Comment{$Revision: 1.170 $}
@Comment{$Revision: 1.171 $}

@begin{Intro}
@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0299-1]}
Expand Down Expand Up @@ -1078,10 +1078,10 @@ and are summarized in
@ChgRef{Version=[1],Kind=[Revised]}@ChgNote{To be consistent with 8652/0006}
@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00235]}
@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0447-1]}
@Chg{Version=[5],New=[By the],Old=[In]} general@Chg{Version=[5],New=[ rules
@Chg{Version=[5],New=[By the],Old=[In]} general@Chg{Version=[5],New=[ rules
given above],Old=[]}, @Chg{Version=[5],New=[there is no expected type
or profile for ],Old=[]}the @nt<name> in a @nt<prefix> of an
@nt<attribute_reference> (or a @nt<range_attribute_reference>)@Chg{Version=[5],New=[,
@nt<attribute_reference> (or a @nt<range_attribute_reference>)@Chg{Version=[5],New=[,
which means that no context can be used to
resolve the @nt{name}],Old=[ has to be resolved
without using any context]}. However, @Chg{Version=[5],New=[by the rules given
Expand Down Expand Up @@ -1322,7 +1322,7 @@ named reference object.]}
@begin{Examples}
@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0429-1]}@Comment{OK to renumber non-normative paragraphs}
@ChgAdded{Version=[5],Type=[Leading],Text=[@NewExample@i{Examples of the specification
@ChgAdded{Version=[5],Type=[Leading],Keepnext=[T],Text=[@NewExample@i{Examples of the specification
and use of generalized references:}]}
@begin{Example}
Expand Down Expand Up @@ -2471,6 +2471,7 @@ will work (see @RefSecNum{Assignment and Finalization}).
@end{Incompatible2012}


@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM}
@LabeledSubClause{Record Aggregates}

@begin{Intro}
Expand Down Expand Up @@ -2955,6 +2956,7 @@ to be in the same order as in the @nt<known_discriminant_part>]}.
several choices:)
@begin{Example}
(Value => 0, Succ|Pred => @key(new) Cell'(0, @key(null), @key(null))) --@ExamCom[ see @RefSecNum{Incomplete Type Declarations}]

--@ExamCom[ The allocator is evaluated twice:]
--@ExamCom[ Succ and Pred designate different cells]

Expand Down Expand Up @@ -4456,7 +4458,7 @@ type.@PDefn2{Term=[element type],Sec=[container aggregate]}]}
@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0212-1],ARef=[AI12-0437-1]}
@ChgAdded{Version=[5],Text=[The @SynI{function_}@nt{name} specified for
New_Indexed for an Aggregate aspect shall denote exactly one function with
New_Indexed for an Aggregate aspect shall denote exactly one function with
a result type of the container type, and
two parameters of the same discrete type, with that type being the @i<key type>
of the container type.@PDefn2{Term=[key type],Sec=[container aggregate]}]}
Expand Down Expand Up @@ -8069,8 +8071,8 @@ defines how to map or transform a collection of values into a new set of values,
and then summarize the values by applying an operation to reduce the set to a
single value.]}>}
@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[reduction expression],
Def=[expression that defines how to map or transform a collection of
values into a new set of values, and then summarize the values by
Def=[expression that defines how to map or transform a collection of
values into a new set of values, and then summarize the values by
applying an operation to reduce the set to a single value]}
@end{Intro}
Expand Down Expand Up @@ -8522,8 +8524,8 @@ greater than 100.0:>]}
@begin{Extend2012}
@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0242-1],ARef=[AI12-0262-1],ARef=[AI12-0348-1]}
@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0005-1],ARef=[AI12-0242-1],ARef=[AI12-0262-1],ARef=[AI12-0348-1]}
@ChgAdded{Version=[5],Text=[@Defn{extensions to Ada 2012}Reduction
expressions attributes are new.]}
expressions and the associated attributes are new.]}
@end{Extend2012}
30 changes: 17 additions & 13 deletions source/05.mss
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Part(05, Root="ada.mss")

@Comment{$Date: 2023/01/05 05:49:07 $}
@Comment{$Date: 2023/10/04 05:40:20 $}
@LabeledSection{Statements}

@Comment{$Source: e:\\cvsroot/ARM/Source/05.mss,v $}
@Comment{$Revision: 1.96 $}
@Comment{$Revision: 1.97 $}

@begin{Intro}
@Redundant[A @nt{statement} defines an action to be performed upon
Expand Down Expand Up @@ -63,8 +63,8 @@ Text=<@ChgAdded{Version=[5],Text=[A parallel construct is an executable
construct that defines multiple activities of a single task that can proceed in
parallel, via the execution of multiple logical threads of control.]}>}
@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[parallel construct],
Def=[executable construct that defines multiple
activities of a single task that can proceed in parallel, via the
Def=[executable construct that defines multiple
activities of a single task that can proceed in parallel, via the
execution of multiple logical threads of control]}
@end{Intro}

Expand Down Expand Up @@ -267,6 +267,7 @@ task.@Defn2{Term=[Program_Error],Sec=(raised by detection of a bounded error)}]}
@end{Bounded}
@begin{SingleNote}
@ChgRef{Version=[5],Kind=[Revised]}@ChgNote{Just a paragraph number change}
A @nt<statement_identifier> that appears immediately within
the declarative region of a
named @nt<loop_statement> or an @nt<accept_statement> is nevertheless
Expand Down Expand Up @@ -541,7 +542,7 @@ nothing.
@end{RunTime}
@begin{Notes}
@begin{SingleNote}
The tag of an object never changes;
in particular, an
@nt{assignment_statement}
Expand All @@ -567,7 +568,7 @@ access value returned by a function call, and similarly, as a
component or slice of such a variable
(see @RefSec{The Context of Overload Resolution}).
@end{Ramification}
@end{Notes}
@end{SingleNote}
@begin{Examples}
@Leading@keepnext@NewExample@i{Examples of assignment statements:}
Expand Down Expand Up @@ -1287,7 +1288,7 @@ to restrict the elements produced by an iteration to those for which a boolean
condition evaluates to True.]}>}
@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[iterator filter],
Def=[construct that is used to restrict the elements
produced by an iteration to those for which a boolean condition
produced by an iteration to those for which a boolean condition
evaluates to True]}

@ChgRef{Version=[5],Kind=[Added],ARef=[AI12-0250-1],ARef=[AI12-0327-1]}
Expand Down Expand Up @@ -1483,7 +1484,7 @@ it cannot be updated within the
(see @RefSecNum{Objects and Named Numbers}).

@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0442-1]}
@Chg{Version=[5],New=[No separate],Old=[An]} @nt{object_declaration}
@Chg{Version=[5],New=[No separate],Old=[An]} @nt{object_declaration}
@Chg{Version=[5],New=[is expected],Old=[should not be given]} for a loop
parameter, since the loop parameter is automatically declared by
the @nt{loop_parameter_specification}.
Expand All @@ -1497,6 +1498,7 @@ An implementation could give a warning if a variable is hidden by a
@nt{loop_parameter_specification}.
@end{ImplNote}

@ChgRef{Version=[5],Kind=[Revised]}@ChgNote{Just a paragraph number change}
The @nt<discrete_subtype_definition> of a for loop is elaborated
just once. Use of the
reserved word @key[reverse] does not alter the discrete subtype defined,
Expand Down Expand Up @@ -1854,7 +1856,7 @@ Text=<@ChgAdded{Version=[3],Text=[An iterable container type is one that has
user-defined behavior for iteration, via the Default_Iterator and
Iterator_Element aspects.]}>}
@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[T],Term=[iterable container type],
Def=[type that has user-defined behavior for
Def=[type that has user-defined behavior for
iteration, via the Default_Iterator and Iterator_Element aspects]}

@ChgRef{Version=[4],Kind=[Added],ARef=[AI12-0138-1]}
Expand Down Expand Up @@ -2051,7 +2053,7 @@ Text=<@ChgAdded{Version=[3],Text=[An iterator is a construct that is used to
loop over the elements of an array or container. Iterators may be user defined,
and may perform arbitrary computations to access elements from a container.]}>}
@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[iterator],
Def=[construct that is used to loop over the elements of an
Def=[construct that is used to loop over the elements of an
array or container],
Note1=[Iterators can be user defined, and can perform
arbitrary computations to access elements from a container.]}
Expand Down Expand Up @@ -2954,7 +2956,6 @@ environment variables (see @RefSecNum{The Package Environment_Variables}):}]}
@RMNewPageVer{Version=[0]}@Comment{For printed version of Ada 95}
@RMNewPageVer{Version=[1]}@Comment{For printed version of Ada 95 + TC1 RM}
@RMNewPageVer{Version=[2]}@Comment{For printed version of Ada 2005 RM}
@NotISORMNewPageVer{Version=[5]}@Comment{For Ada 2022 RM}
@LabeledClause{Block Statements}

@begin{Intro}
Expand Down Expand Up @@ -3092,10 +3093,11 @@ by one of the @nt{sequence_of_statements}
@end{ImplNote}
@end{Runtime}

@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only}
@begin{Examples}

@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0429-1]}
@ChgAdded{Version=[5],Type=[Leading],Text=[@NewExample@i{Example of a parallel block
@ChgAdded{Version=[5],Type=[Leading],Keepnext=[T],Text=[@NewExample@i{Example of a parallel block
used to walk a binary tree in parallel:}]}

@begin{Example}
Expand All @@ -3118,7 +3120,7 @@ used to walk a binary tree in parallel:}]}
@end{Example}

@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0429-1]}
@ChgAdded{Version=[5],Type=[Leading],Text=[@NewExample@i{Example of a parallel block
@ChgAdded{Version=[5],Type=[Leading],Keepnext=[T],Text=[@NewExample@i{Example of a parallel block
used to search two halves of a string in parallel:}]}

@begin{Example}
Expand Down Expand Up @@ -3161,6 +3163,8 @@ used to search two halves of a string in parallel:}]}
@end{Extend2012}
@RMNewPageVer{Version=[2]}@Comment{For printed version of Ada 2005 RM}
@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only}
@LabeledClause{Exit Statements}
@begin{Intro}
Expand Down
9 changes: 5 additions & 4 deletions source/06.mss
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Part(06, Root="ada.mss")

@Comment{$Date: 2023/01/05 05:49:07 $}
@Comment{$Date: 2023/10/04 05:40:20 $}
@LabeledSection{Subprograms}

@Comment{$Source: e:\\cvsroot/ARM/Source/06.mss,v $}
@Comment{$Revision: 1.169 $}
@Comment{$Revision: 1.170 $}

@begin{Intro}
@Defn{subprogram}
Expand Down Expand Up @@ -1010,7 +1010,7 @@ then the respective precondition or postcondition expressions are considered
@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0273-1]}
@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0280-2]}
@ChgAdded{Version=[3],Type=[Leading],Text=[@Chg{Version=[5],New=[A subexpression of a postcondition expression is @i<known on entry> if it is any
of:@Defn{Term=[known on entry],Sec=[postcondition]}],Old=[An @nt{expression} is
of:@Defn2{Term=[known on entry],Sec=[postcondition]}],Old=[An @nt{expression} is
@i{potentially unevaluated} if it occurs within:@Defn{potentially unevaluated expression}]}]}
@begin{Itemize}
Expand Down Expand Up @@ -2307,7 +2307,7 @@ entity, or by its Global'Class aspect if a dispatching call.]}
@key[in out all] applies to an access-to-subprogram type, then the @nt{prefix}
of an Access @nt{attribute_reference} producing a value of such a type shall denote
a subprogram whose Global aspect is not Unspecified and is
@i<covered>@Defn{Term=[covered],Sec=(global aspect)} by that of the result
@i<covered>@Defn2{Term=[covered],Sec=(global aspect)} by that of the result
type, where a global aspect @i<G1> is @i<covered> by a global aspect @i<G2>
if the set of variables that @i<G1> identifies as readable or updatable is
a subset of the corresponding set for @i<G2>. Similarly on a conversion to
Expand Down Expand Up @@ -2674,6 +2674,7 @@ do not overlap (unless, of course, it can prove otherwise).
direction of information transfer to or from the @nt{subprogram_body} (see
@RefSecNum{Subprogram Declarations}).]}
@ChgRef{Version=[4],Kind=[Revised]}@ChgNote{Just a paragraph number change}
A formal parameter of mode @key(in) is a constant
view (see @RefSecNum{Objects and Named Numbers});
it cannot be updated within the @nt{subprogram_body}.
Expand Down
Loading

0 comments on commit 2320391

Please sign in to comment.