From 23203911585b733de66d3c6dcfdcfb25fa903f63 Mon Sep 17 00:00:00 2001 From: Randy Brukardt Date: Wed, 4 Oct 2023 05:40:22 -0400 Subject: [PATCH] Various updates for the final Ada 2022 RM and a bit of work on the Ada 202Y RM. --- source/02.mss | 10 +- source/03a.mss | 5 +- source/04a.mss | 22 ++-- source/05.mss | 30 +++--- source/06.mss | 9 +- source/07.mss | 107 ++++++++++--------- source/08.mss | 6 +- source/09.mss | 7 +- source/10.mss | 195 +++++++++++++++++----------------- source/aa-aarm.msm | 11 +- source/aa-rm.msm | 9 +- source/aarm.msm | 11 +- source/biblio.mss | 14 +-- source/foreword_tail.mss | 4 +- source/general.mss | 40 +++++-- source/general_body.mss | 6 +- source/interface.mss | 8 +- source/intro.mss | 9 +- source/langdef.mss | 5 +- source/other_front_matter.mss | 54 ++++++++-- source/pre_con2.mss | 4 +- source/pre_math.mss | 5 +- source/pre_strings.mss | 37 ++++--- source/refs.mss | 9 +- source/rm.msm | 11 +- source/rm_bib.mss | 5 +- source/rm_foreword.mss | 66 ++++++++---- source/rt.mss | 19 ++-- source/safety.mss | 5 +- source/sp.mss | 8 +- source/syntax.mss | 5 +- source/title.mss | 41 +++++-- 32 files changed, 454 insertions(+), 323 deletions(-) diff --git a/source/02.mss b/source/02.mss index ab443b4c..58d4eb97 100644 --- a/source/02.mss +++ b/source/02.mss @@ -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]} @@ -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, 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 diff --git a/source/03a.mss b/source/03a.mss index 3a8a46b5..d5126e0d 100644 --- a/source/03a.mss +++ b/source/03a.mss @@ -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]} @@ -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} diff --git a/source/04a.mss b/source/04a.mss index 6be1b575..e502c7b6 100644 --- a/source/04a.mss +++ b/source/04a.mss @@ -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]} @@ -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 in a @nt of an -@nt (or a @nt)@Chg{Version=[5],New=[, +@nt (or a @nt)@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 @@ -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} @@ -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} @@ -2955,6 +2956,7 @@ to be in the same order as in the @nt]}. 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] @@ -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 of the container type.@PDefn2{Term=[key type],Sec=[container aggregate]}]} @@ -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} @@ -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} diff --git a/source/05.mss b/source/05.mss index c0101819..59b81a06 100644 --- a/source/05.mss +++ b/source/05.mss @@ -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 @@ -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} @@ -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 that appears immediately within the declarative region of a named @nt or an @nt is nevertheless @@ -541,7 +542,7 @@ nothing. @end{RunTime} -@begin{Notes} +@begin{SingleNote} The tag of an object never changes; in particular, an @nt{assignment_statement} @@ -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:} @@ -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]} @@ -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}. @@ -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 of a for loop is elaborated just once. Use of the reserved word @key[reverse] does not alter the discrete subtype defined, @@ -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]} @@ -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.]} @@ -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} @@ -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} @@ -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} @@ -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} diff --git a/source/06.mss b/source/06.mss index 663b2f5e..d40bb33b 100644 --- a/source/06.mss +++ b/source/06.mss @@ -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} @@ -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 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} @@ -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@Defn{Term=[covered],Sec=(global aspect)} by that of the result +@i@Defn2{Term=[covered],Sec=(global aspect)} by that of the result type, where a global aspect @i is @i by a global aspect @i if the set of variables that @i identifies as readable or updatable is a subset of the corresponding set for @i. Similarly on a conversion to @@ -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}. diff --git a/source/07.mss b/source/07.mss index 3d06ce06..a6e6554c 100644 --- a/source/07.mss +++ b/source/07.mss @@ -1,10 +1,10 @@ @Part(07, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:07 $} +@Comment{$Date: 2023/10/04 05:40:20 $} @LabeledSection{Packages} @Comment{$Source: e:\\cvsroot/ARM/Source/07.mss,v $} -@Comment{$Revision: 1.162 $} +@Comment{$Revision: 1.163 $} @begin{Intro} @redundant[@ToGlossaryAlso{Term=, @@ -20,7 +20,7 @@ @IndexSee{Term=[module],See=(package)} @IndexSeeAlso{Term=[class],See=(package)}] @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[package], - Def=[program unit that defines the interface to a group of + Def=[program unit that defines the interface to a group of logically related entities, along with their implementation], Note1=[Typically, a package contains the declaration of a type (often a private type or private extension) along with the declarations of @@ -181,7 +181,7 @@ language environment In Ada 83, a library package is allowed to have a body even if it doesn't need one. In Ada 95, a library package body is either required or forbidden @em never -optional. The workaround is to add +optional. The workaround is to add @Chg{Version=[5],New=[aspect],Old=[@key[pragma]]} Elaborate_Body, or something else requiring a body, to each library package that has a body that isn't otherwise required. @@ -294,7 +294,7 @@ the order of the implicit @ntf{package_@!bodies} is unspecified. occurs at the place of the instantiation (see @RefSecNum{Generic Instantiation}). For a library package, the place is partially determined by the -elaboration dependences (see +elaboration dependences (see @RefSecFullNum{Program Structure and Compilation Issues}).)] @begin{Discussion} Thus, for example, we can refer to something happening just @@ -402,6 +402,8 @@ is moved here, since it is more generally applicable. This is described in @RefSecNum{Aspect Specifications}.]} @end{Extend2005} + +@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM} @LabeledClause{Private Types and Private Extensions} @begin{Intro} @@ -810,7 +812,7 @@ interface.]} If the declaration of a partial view includes a @nt{known_discriminant_part}, then the @nt{full_type_declaration} shall have a fully conforming -@Redundant[(explicit)] @nt{known_discriminant_part} @Redundant[(see +@Redundant[(explicit)] @nt{known_discriminant_part} @Redundant[(see @Chg{Version=[5],New=[@RefSecNum(Conformance Rules)],Old=[@RefSec(Conformance Rules)]})]. @Defn2{Term=[full conformance],Sec=(required)} @Redundant[The ancestor subtype may be unconstrained; @@ -1649,7 +1651,7 @@ predefined operator "<" implicitly declared by the @nt{full_type_declaration}. Within the body of the function, an explicit conversion of X and Y to the subtype Natural is necessary to invoke the "<" operator of the parent -type. Alternatively, the result of the function can +type. Alternatively, the result of the function can be written as @key[not] (X >= Y), since the operator ">=" is not redefined.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0452-1]} @@ -1669,12 +1671,12 @@ not include other relational operators such as ">=", or arithmetic operators.]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0452-1]} -@ChgDeleted{Version=[5],NoPrefix=[T],Text=[The explicitly +@ChgDeleted{Version=[5],NoPrefix=[T],Text=[The explicitly declared operator "<" hides the predefined operator "<" implicitly declared by the @nt{full_type_declaration}. Within the body of the function, an explicit conversion of X and Y to the subtype Natural is necessary to invoke the "<" operator of the parent -type. Alternatively, the result of the function could +type. Alternatively, the result of the function could be written as @key[not] (X >= Y), since the operator ">=" is not redefined.]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0452-1]} @@ -1736,11 +1738,11 @@ has been moved to @lquotes@;Obsolescent Features@rquotes. @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0146-1]} @ChgRef{Version=[4],Kind=[Revised],ARef=[AI12-0041-1]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0396-1]} -@ChgAdded{Version=[3],Type=[Leading],Text=[For a private +@ChgAdded{Version=[3],Type=[Leading],Text=[For a private type@Chg{Version=[4],New=[,],Old=[ or]} private extension@Chg{Version=[4],New=[, or interface],Old=[]}, the following -language-defined @Chg{Version=[5],New=[assertion ],Old=[]}aspects may be -specified with an @nt{aspect_specification} (see +language-defined @Chg{Version=[5],New=[assertion ],Old=[]}aspects may be +specified with an @nt{aspect_specification} (see @RefSecNum{Aspect Specifications}):]} @begin{Description} @@ -2595,7 +2597,7 @@ work can be scheduled for weekends:}]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0265-1],ARef=[AI12-0272-1],ARef=[AI12-0396-1]} @ChgAdded{Version=[5],Type=[Leading],Text=[For a private type or private extension (including a generic formal type), the following -language-defined assertion aspect may be specified with an +language-defined assertion aspect may be specified with an @nt{aspect_specification} (see @RefSecNum{Aspect Specifications}):]} @begin{Description} @@ -2649,7 +2651,7 @@ operations.]} default initial condition for an abstract type. Note that, presuming T is tagged, it is possible to call class-wide operations of the type T given an object of type NT. Similarly it is possible - to explicitly convert an object of type NT to a subtype of T, and + to explicitly convert an object of type NT to a subtype of T, and pass it to a nonprimitive operation expecting a parameter of type T. [Note that one cannot directly convert to (the first subtype of) T since it represents the current instance of the type within the @@ -2897,7 +2899,7 @@ manner.]@Defn{class-wide stable property function}@Defn2{Term=[stable property f @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0405-1]} @ChgAdded{Version=[5],Text=[The specific and class-wide stable properties of a type -together comprise the stable properties of the +together comprise the stable properties of the type.@Defn2{Term=[stable property function],Sec=[of a type]}@Defn2{Term=[function],Sec={stable property}} @Defn2{Term=[type],Sec=[stable property function of]}]} @@ -2991,13 +2993,13 @@ a type @i, the specific stable property functions of @i for type @i are @begin{Itemize} @ChgRef{Version=[5],Kind=[AddedNormal]} - @ChgAdded{Version=[5],Text=[if @i has an aspect Stable_Properties - specified that does not include @key[not], those functions denoted in the - aspect Stable_Properties for @i that have a parameter of @i or + @ChgAdded{Version=[5],Text=[if @i has an aspect Stable_Properties + specified that does not include @key[not], those functions denoted in the + aspect Stable_Properties for @i that have a parameter of @i or @i'Class;]} @ChgRef{Version=[5],Kind=[AddedNormal]} - @ChgAdded{Version=[5],Text=[if @i has an aspect Stable_Properties + @ChgAdded{Version=[5],Text=[if @i has an aspect Stable_Properties specified that includes @key[not], those functions denoted in the aspect Stable_Properties for @i, excluding those denoted in the aspect Stable_Properties for @i;]} @@ -3030,7 +3032,7 @@ for a subprogram @i is the @nt{expression} directly specified for @i with the Post'Class aspect.@Defn{explicit specific postcondition expression}@Defn{explicit class-wide postcondition expression}@Defn2{Term=[postcondition expression],Sec=(explicit)}]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0187-1]} -@ChgAdded{Version=[5],Type=[Leading],Text=[For a primitive subprogram @i +@ChgAdded{Version=[5],Type=[Leading],Text=[For a primitive subprogram @i of a type @i that has a parameter @i

of type @i, the parameter is @i{excluded from stable property checks} if:@Defn{excluded from stable property checks}]} @@ -3050,10 +3052,10 @@ of a type @i that has a parameter @i

of type @i, the parameter is @begin{Reason} @ChgRef{Version=[5],Kind=[AddedNormal]} - @ChgAdded{Version=[5],Text=[A parameter of mode @key[out] doesn't + @ChgAdded{Version=[5],Text=[A parameter of mode @key[out] doesn't necessarily have a defined input value, so there is no old value to compare with. Ideally, the postcondition - will include expressions defining the values of the stable + will include expressions defining the values of the stable properties after the call, but we do not try to ensure this.]} @end{Reason} @@ -3065,7 +3067,7 @@ of a type @i that has a parameter @i

of type @i, the parameter is @begin{Reason} @ChgRef{Version=[5],Kind=[AddedNormal]} @ChgAdded{Version=[5],Text=[An @key[in] parameter of a Global => @key[null] - subprogram cannot be modified, even if it has indirect parts, without + subprogram cannot be modified, even if it has indirect parts, without violating the Global aspect. Thus, there is no need to assert that the properties don't change.]} @end{Reason} @@ -3073,14 +3075,14 @@ of a type @i that has a parameter @i

of type @i, the parameter is @end{Itemize} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0187-1],ARef=[AI12-0324-1],ARef=[AI12-0405-1]} -@ChgAdded{Version=[5],Text=[For every primitive subprogram @i of a type @i +@ChgAdded{Version=[5],Text=[For every primitive subprogram @i of a type @i that is not an abstract subprogram or null procedure, the specific postcondition expression of @i is modified to include expressions of the form @exam{@i(@i

) = @i(@i

)'Old}, all @key[and]ed with each other and any explicit specific postcondition expression, with one such equality -included for each specific stable property function @i of @i for type -@i that does not occur in the explicit specific postcondition expression -of @i, and @i

is each parameter of @i that has type @i and is not +included for each specific stable property function @i of @i for type +@i that does not occur in the explicit specific postcondition expression +of @i, and @i

is each parameter of @i that has type @i and is not excluded from stable property checks. The resulting specific postcondition expression of @i is used in place of the explicit specific postcondition expression of @i @Redundant[when interpreting the meaning of @@ -3091,8 +3093,8 @@ the postcondition as defined in @RefSecNum{Preconditions and Postconditions}].]} @ChgAdded{Version=[5],Text=[There is one @exam{F(P) = F(P)'Old} subexpression for every combination of a specific stable property function of type @i and a parameter of type @i. For instance, if there are three - specific stable property functions for type @i and two parameters of - type @i, then there are six such subexpressions appended to the + specific stable property functions for type @i and two parameters of + type @i, then there are six such subexpressions appended to the postcondition.]} @ChgRef{Version=[5],Kind=[AddedNormal]} @@ -3104,7 +3106,7 @@ the postcondition as defined in @RefSecNum{Preconditions and Postconditions}].]} @begin{Reason} @ChgRef{Version=[5],Kind=[AddedNormal]} - @ChgAdded{Version=[5],Text=[Null procedures and abstract subprograms are + @ChgAdded{Version=[5],Text=[Null procedures and abstract subprograms are excluded as they do not allow specific postconditions. Moreover, for null procedures, static analysis tools can be certain that their parameters aren't modified so there is no need to assert that the properties don't @@ -3119,7 +3121,7 @@ expression of @i is modified to include expressions of the form explicit class-wide postcondition expression, with one such equality included for each class-wide stable property function @i of @i for type @i that does not occur in any class-wide postcondition expression that applies to @i, -and @i

is each parameter of @i that has type @i and is not excluded +and @i

is each parameter of @i that has type @i and is not excluded from stable property checks. The resulting class-wide postcondition expression of @i is used in place of the explicit class-wide postcondition expression of @i @Redundant[when interpreting the @@ -3144,23 +3146,23 @@ meaning of the postcondition as defined in stable property expressions for @i.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0405-1]} - @ChgAdded{Version=[5],Text=[In the case of a derived type @i, when the - preceding rules refer to @ldquote@;every primitive subprogram @i of - a type @i@rdquote, the referenced set of subprograms includes any + @ChgAdded{Version=[5],Text=[In the case of a derived type @i, when the + preceding rules refer to @ldquote@;every primitive subprogram @i of + a type @i@rdquote, the referenced set of subprograms includes any inherited subprograms.]} @end{Ramification} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0405-1]} -@ChgAdded{Version=[5],Text=[The equality operation that is used in the +@ChgAdded{Version=[5],Text=[The equality operation that is used in the aforementioned equality expressions is as described in the case of an individual membership test whose @nt{membership_choice} is a @SynI{choice_}@nt{simple_expression} (see @RefSecNum{Relational Operators and Membership Tests}).]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0405-1]} -@ChgAdded{Version=[5],Text=[The Post expression additions described above are - enabled or disabled depending on the Post assertion policy that is in effect - at the point of declaration of the subprogram @i. A similar rule applies +@ChgAdded{Version=[5],Text=[The Post expression additions described above are + enabled or disabled depending on the Post assertion policy that is in effect + at the point of declaration of the subprogram @i. A similar rule applies to the Post'Class expression additions.]} @end{StaticSem} @@ -3279,7 +3281,7 @@ corresponding full declaration: @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0444-1]} @Redundant[A deferred constant declaration @Chg{Version=[3],New=[for which the],Old=[that is completed by - a @nt{pragma}]} Import @Chg{Version=[3],New=[aspect is + a @nt{pragma}]} Import @Chg{Version=[3],New=[aspect is True ],Old=[]}@Chg{Version=[5],New=[can],Old=[need not]} appear @Chg{Version=[5],New=[anywhere that an @nt{object_declaration} is allowed],Old=[in the visible part of a @nt{package_specification}]}, @@ -3948,7 +3950,7 @@ those given in the package specification.]} @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0452-1]} -@ChgDeleted{Version=[5],NoPrefix=[T],Text=[The fact that the full view of File_Name is +@ChgDeleted{Version=[5],NoPrefix=[T],Text=[The fact that the full view of File_Name is explicitly declared @key[limited] means that parameter passing @Chg{Version=[2],New=[], Old=[and function return ]}will always be by reference@Chg{Version=[2],New=[ and function results will always be built directly in the result object],Old=[]} @@ -4747,7 +4749,7 @@ controlled types.]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0444-1]} @Chg{Version=[3],New=[If],Old=[For an @nt{assignment_statement} that assigns to]} an object @Chg{Version=[3],New=[is assigned ],Old=[]}the value of that same -object, the implementation @Chg{Version=[5],New=[may omit the +object, the implementation @Chg{Version=[5],New=[may omit the entire assignment],Old=[need not do anything]}. @begin{Ramification} In other words, even if an object is controlled and a combination @@ -4977,6 +4979,7 @@ Controlled types and user-defined finalization are new to Ada 95. @end{DiffWord2005} +@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only} @LabeledSubClause{Completion and Finalization} @begin{Intro} @@ -5034,14 +5037,14 @@ Leaving an execution happens immediately after its completion, except in the case of @Chg{Version=[5],New=[the execution of a @i{master construct}],Old=[a @i{master}]}:@Chg{Version=[5],New=[ @Defn{master construct}@Defn2{Term=[construct],Sec=[master]}],Old=[ the execution of ]}a @Chg{Version=[2],New=[body other than a @nt{package_body}; -@Chg{Version=[5],New=[],Old=[the execution of ]}a @nt{statement}; +@Chg{Version=[5],New=[],Old=[the execution of ]}a @nt{statement}; or @Chg{Version=[5],New=[],Old=[the evaluation of ]}an @nt{expression}, @nt{function_call}, or @nt{range} that is not part of an enclosing @nt{expression}, @nt{function_call}, @nt{range}, or @nt{simple_@!statement} other than a @nt{simple_@!return_@!statement}], Old=[@nt{task_body}, a @nt{block_@!statement}, a @nt{subprogram_body}, an @nt{entry_body}, or an @nt{accept_@!statement}]}. -@Chg{Version=[5],New=[The term @i{master} by itself refers to the execution +@Chg{Version=[5],New=[The term @i{master} by itself refers to the execution of a master construct. ],Old=[]}A master is finalized after it is complete, and before it is left. @@ -5080,8 +5083,8 @@ complete, and before it is left. @end{Ramification} @ChgToGlossary{Version=[5],Kind=[Added],Term=, -Text=<@ChgAdded{Version=[5],Text=[A master is the execution of a master -construct. Each object and task is associated with a master. When a master +Text=<@ChgAdded{Version=[5],Text=[A master is the execution of a master +construct. Each object and task is associated with a master. When a master is left, associated tasks are awaited and associated objects are finalized.]}>} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[R],Term=[master], Def=[execution of a master construct], @@ -5089,12 +5092,12 @@ is left, associated tasks are awaited and associated objects are finalized.]}>} left, associated tasks are awaited and associated objects are finalized.]} @ChgToGlossary{Version=[5],Kind=[Added],Term=, -Text=<@ChgAdded{Version=[5],Text=[ A master construct is one of certain -executable constructs listed in @RefSecNum{Completion and Finalization}. -Execution of a master construct is a master, with which objects and tasks +Text=<@ChgAdded{Version=[5],Text=[ A master construct is one of certain +executable constructs listed in @RefSecNum{Completion and Finalization}. +Execution of a master construct is a master, with which objects and tasks are associated for the purposes of waiting and finalization.]}>} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[master construct], - Def=[one of certain executable constructs for which + Def=[one of certain executable constructs for which there can be objects or tasks whose lifetime ends when the construct completes], Note1=[Execution of a master construct is a master, with which objects and @@ -5683,8 +5686,8 @@ but before leaving Main. Thus, handler number 1 cannot handle this Program_Error; it will be handled either by handler number 2 or handler number 3. If it is handled by handler number 2, then -Finalize(@Chg{Version=[5],New=[Y],Old=[Z]}) will be done before executing the -handler. If it is handled by handler number 3, then +Finalize(@Chg{Version=[5],New=[Y],Old=[Z]}) will be done before executing the +handler. If it is handled by handler number 3, then Finalize(@Chg{Version=[5],New=[Y],Old=[Z]}) and Finalize(X) will both be done before executing the handler. @end{Ramification} @@ -5890,7 +5893,7 @@ these are defined in terms of constant declarations; and @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0005-1]} @nt{aggregate}s (see @RefSecNum{Aggregates})@Chg{Version=[2],New=[, when the result is not built-in-place],Old=[]} -(in this case, the value of each component, and the +(in this case, the value of each component, and the @Chg{Version=[5],New=[ancestor],Old=[parent]} part, for an @nt{extension_aggregate}, is assigned, and therefore adjusted, but the value of the @nt{aggregate} as a whole is not adjusted; diff --git a/source/08.mss b/source/08.mss index 432c9362..02c0285e 100644 --- a/source/08.mss +++ b/source/08.mss @@ -1,10 +1,10 @@ @Part(08, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:08 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledSection{Visibility Rules} @Comment{$Source: e:\\cvsroot/ARM/Source/08.mss,v $} -@Comment{$Revision: 1.127 $} +@Comment{$Revision: 1.128 $} @begin{Intro} @ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0299-1]} @@ -2479,7 +2479,7 @@ renamed entity, inheriting the original properties.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0383-1]} @begin{Example} -Uno @key[renames] One; --@Examcom{ see @RefSecNum{Number Declarations}} +@ChgAdded{Version=[5],Text=[Uno @key[renames] One; --@Examcom{ see @RefSecNum{Number Declarations}}]} @end{Example} @end{Examples} diff --git a/source/09.mss b/source/09.mss index 04e7f710..cff86be9 100644 --- a/source/09.mss +++ b/source/09.mss @@ -1,10 +1,10 @@ @Part(09, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:08 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledSection{Tasks and Synchronization} @Comment{$Source: e:\\cvsroot/ARM/Source/09.mss,v $} -@Comment{$Revision: 1.151 $} +@Comment{$Revision: 1.152 $} @begin{Intro} @@ -1770,11 +1770,12 @@ Other_Object : Some_Other_Protected_Type; @key[protected] @key[body] Pt @key[is] @key[procedure] Op1 @key[is] @key[begin] ... @key[end] Op1; +@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0005-1]} @key[procedure] Op2 @key[is] @key[begin] Op1; --@ExamCom{ An internal call.} Pt.Op1; --@ExamCom{ Another internal call.} - PO.Op1; --@ExamCom{ An external call. It the current instance is PO, then} + PO.Op1; --@ExamCom{ An external call. @Chg{Version=[5],New=[If],Old=[It]} the current instance is PO, then} --@ExamCom{ this is a bounded error (see @RefSecNum{Protected Subprograms and Protected Actions}).} Other_Object.Some_Op; --@ExamCom{ An external call.} @key[end] Op2; diff --git a/source/10.mss b/source/10.mss index 41f9f2cb..b3005296 100644 --- a/source/10.mss +++ b/source/10.mss @@ -1,10 +1,10 @@ @Part(10, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:08 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledSection{Program Structure and Compilation Issues} @Comment{$Source: e:\\cvsroot/ARM/Source/10.mss,v $} -@Comment{$Revision: 1.123 $} +@Comment{$Revision: 1.124 $} @Comment{Corrigendum changes added, 2000/04/24, RLB} @begin{Intro} @@ -28,14 +28,14 @@ computer. A distributed program typically contains multiple partitions, which can execute concurrently.>} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[program], - Def=[set of partitions, each of which can execute in a + Def=[set of partitions, each of which can execute in a separate address space, possibly on a separate computer]} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[partition], - Def=[part of a program, which consists of a set of + Def=[part of a program, which consists of a set of interdependent library units], - Note1=[Each partition can run in a separate address - space, possibly on a separate computer. A program can contain - just one partition, or it can be distributed across multiple + Note1=[Each partition can run in a separate address + space, possibly on a separate computer. A program can contain + just one partition, or it can be distributed across multiple partitions, which can execute concurrently.]} @Defn2{Term=[library unit],Sec=(informal introduction)} @@ -122,7 +122,7 @@ different from that of RM83. @end{DiffWord83} other program units.>} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[program unit], Def=[language construct that is a package, a task unit, a - protected unit, a protected entry, a generic unit, or an explicitly + protected unit, a protected entry, a generic unit, or an explicitly declared subprogram other than an enumeration literal], Note1=[Certain kinds of program units can be separately compiled. Alternatively, they can appear physically nested within other @@ -134,10 +134,6 @@ different from that of RM83. @end{DiffWord83} Each @nt(compilation) is a succession of @nt(compilation_unit)s. A @nt(compilation_unit) contains either the declaration, the body, or a renaming of a program unit.>}] -@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[compilation unit], - Def=[program unit that is separately compiled], - Note1=[A @nt(compilation_unit) contains either - the declaration, the body, or a renaming of a program unit.]} The representation for a @nt is implementation-defined. @ImplDef{The representation for a @nt{compilation}.} @begin{Ramification} @@ -157,6 +153,10 @@ An instance of a generic unit is a program unit. A protected entry is a program unit, but protected entries cannot be separately compiled. @end{Ramification} +@ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[compilation unit], + Def=[program unit that is separately compiled], + Note1=[A @nt(compilation_unit) contains either + the declaration, the body, or a renaming of a program unit.]} @ChgToGlossaryAlso{Version=[5],Kind=[Revised],Term=, Text=, -Text=<@ChgAdded{Version=[5],Text=[A subunit is a body of a program unit that +Text=<@ChgAdded{Version=[5],Text=[A subunit is a body of a program unit that can be compiled separately from its enclosing program unit.]}>} @ChgTermDef{Version=[5],Kind=(AddedNormal),Group=[C],Term=[subunit], - Def=[body of a program unit that can be compiled + Def=[body of a program unit that can be compiled separately from its enclosing program unit]} The parent body of a subunit shall be present in the current environment, @@ -1813,7 +1814,7 @@ the corresponding @nt{proper_body}. @end{LinkTime} @begin{SingleNote} -@leading@;The rules in +@leading@;The rules in @ISODiff{NotISO=[@RefSecFull{The Compilation Process}],ISOOnly=[@RefSecFullNum{The Compilation Process}]} say that a @nt{body_stub} is equivalent to the corresponding @nt{proper_body}. This implies: @@ -1859,7 +1860,7 @@ The body of a protected unit can be a subunit. @begin{Examples} @leading@keepnext@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0429-1]} -@Chg{Version=[5],New=[@NewExample@i{Example that defines package Parent without +@Chg{Version=[5],New=[@NewExample@i{Example that defines package Parent without subunits:}],Old=[The package Parent is first written without subunits:]} @begin{Example} @key[package] Parent @key[is] @@ -1877,7 +1878,7 @@ subunits:}],Old=[The package Parent is first written without subunits:]} @end{Example} @leading@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0429-1],ARef=[AI12-0440-1]} -@Chg{Version=[5],New=[@NewExample@i{Example showing how the body of procedure Inner +@Chg{Version=[5],New=[@NewExample@i{Example showing how the body of procedure Inner can be turned into a subunit by rewriting the package body as follows (with the declaration of Parent remaining the same):}],Old=[The body of procedure Inner may be turned into a subunit by rewriting the package body @@ -2261,8 +2262,8 @@ If there are no @nt{name}s given as arguments, the @nt{pragma} applies to the immediately enclosing program unit.]} @begin{Ramification} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} - @ChgDeleted{Version=[5],Text=[The fact that this is a @ResolutionName means - that the @nt{pragma} will not apply to declarations from outer declarative + @ChgDeleted{Version=[5],Text=[The fact that this is a @ResolutionName means + that the @nt{pragma} will not apply to declarations from outer declarative regions.]} @end{Ramification} @@ -2270,7 +2271,7 @@ the @nt{pragma} applies to the immediately enclosing program unit.]} @begin{Legality} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg],ARef=[AI12-0417-1]} -@ChgDeleted{Version=[5],Type=[Leading],Keepnext=[T],Text=[A program unit +@ChgDeleted{Version=[5],Type=[Leading],Keepnext=[T],Text=[A program unit pragma shall appear in one of these places:]} @begin{Itemize} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} @@ -2284,14 +2285,14 @@ the @nt shall have an argument that is a @nt denoting that declaration.]} @begin{Ramification} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} - @ChgDeleted{Version=[5],Text=[The @nt{name} has to denote the immediately + @ChgDeleted{Version=[5],Text=[The @nt{name} has to denote the immediately preceding @nt{library_unit_declaration}.]} @end{Ramification} @ChgRef{Version=[1], Kind=[Revised], Ref=[8652/0033], ARef=[AI95-00136-01]} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} -@ChgDeleted{Version=[5],Text=[Immediately within the -@Chg{New=[visible part],Old=[declaration]} of a program unit and before +@ChgDeleted{Version=[5],Text=[Immediately within the +@Chg{New=[visible part],Old=[declaration]} of a program unit and before any nested declaration@Chg{New=[ (but not within a generic formal part)], Old=[]}, in which case the argument, if any, shall be a @nt{direct_name} @@ -2314,7 +2315,7 @@ program unit declaration.]} @begin{Ramification} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} @ChgDeleted{Version=[5],Text=[If you want to denote a @nt - that is not a completion, or a @nt{package_declaration}, for example, you + that is not a completion, or a @nt{package_declaration}, for example, you have to put the @nt{pragma} inside.]} @end{Ramification} @end{Itemize} @@ -2333,9 +2334,9 @@ any, in a library unit pragma shall denote the declaration of]} a library unit.]} @begin{Ramification} @ChgRef{Version=[5], Kind=[DeletedNoDelMsg]} - @ChgDeleted{Version=[5],Text=[This, together with the rules for program unit - pragmas above, implies that if a library unit pragma applies to a - @nt{subprogram_declaration} (and similar things), it has to appear + @ChgDeleted{Version=[5],Text=[This, together with the rules for program unit + pragmas above, implies that if a library unit pragma applies to a + @nt{subprogram_declaration} (and similar things), it has to appear immediately after the @nt{compilation_unit}, whereas if the @nt{pragma} applies to a @nt{package_declaration}, a @nt{subprogram_body} that is not a completion (and similar things), it has to appear inside, as the first @@ -2345,14 +2346,14 @@ unit.]} @begin{NotIso} @ChgAdded{Version=[5],Noparanum=[T],Text=[@Shrink{@i}]}@Comment{This message +were moved to @RefSec{Obsolescent Features}.>}]}@Comment{This message should be deleted if the paragraphs are ever renumbered.} @end{NotIso} @begin{StaticSem} @ChgRef{Version=[1], Kind=[Added], Ref=[8652/0034], ARef=[AI95-00041-01]} @ChgRef{Version=[5], Kind=[DeletedAddedNoDelMsg],ARef=[AI12-0417-1]} -@ChgAdded{Version=[1],Text=[@Chg{Version=[5],New=[],Old=[A library unit +@ChgAdded{Version=[1],Text=[@Chg{Version=[5],New=[],Old=[A library unit pragma that applies to a generic unit does not apply to its instances, unless a specific rule for the pragma specifies the contrary.]}]} @end{StaticSem} @@ -2393,14 +2394,14 @@ is not a library unit pragma should apply to each instance of the generic unit for which there is not an overriding pragma applied directly to the instance.]}]} @Comment{Originally addednormal for version 2} @ChgImplAdvice{Version=[5],Kind=[Deleted],InitialVersion=[2], -Text=[@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[],Old=[When applied to +Text=[@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[],Old=[When applied to a generic unit, a program unit pragma that is not a library unit pragma should apply to each instance of the generic unit for which there is not an overriding pragma applied directly to the instance.]}]}]} @end{ImplAdvice} @begin{NotIso} @ChgAdded{Version=[5],Noparanum=[T],Text=[@Shrink{@i}]}@Comment{This message +was moved to @RefSec{Obsolescent Features}.>}]}@Comment{This message should be deleted if the paragraphs are ever renumbered.} @end{NotIso} @@ -2409,7 +2410,7 @@ should be deleted if the paragraphs are ever renumbered.} @ChgRef{Version=[2], Kind=[AddedNormal], Ref=[8652/0033], ARef=[AI95-00136-01]} @ChgRef{Version=[5], Kind=[Deleted], ARef=[AI12-0417-1]} @ChgAdded{Version=[2], Text=[@Chg{Version=[5],New=[],Old=[@B - The wording was corrected to ensure that a program unit pragma cannot + The wording was corrected to ensure that a program unit pragma cannot appear in private parts or generic formal parts.]}]} @ChgRef{Version=[2], Kind=[AddedNormal], Ref=[8652/0034], ARef=[AI95-00041-01]} @@ -2420,9 +2421,9 @@ should be deleted if the paragraphs are ever renumbered.} @ChgRef{Version=[2], Kind=[AddedNormal]} @ChgRef{Version=[5], Kind=[Deleted], ARef=[AI12-0417-1]} - @ChgAdded{Version=[2], Text=[@Chg{Version=[5],New=[],Old=[The @ImplAdviceName - added by the Corrigendum was moved, as it was not in the normal order. (This - changes the paragraph number.) It originally was directly after the new + @ChgAdded{Version=[2], Text=[@Chg{Version=[5],New=[],Old=[The @ImplAdviceName + added by the Corrigendum was moved, as it was not in the normal order. (This + changes the paragraph number.) It originally was directly after the new Static Semantics rule.]}]} @ChgRef{Version=[2], Kind=[AddedNormal], ARef=[AI95-00212-01]} @@ -2443,7 +2444,7 @@ should be deleted if the paragraphs are ever renumbered.} @begin{DiffWord2005} @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0132-1]} @ChgRef{Version=[5],Kind=[Deleted],ARef=[AI12-0417-1]} - @ChgAdded{Version=[3], Text=[@Chg{Version=[5],New=[],Old=[@b A + @ChgAdded{Version=[3], Text=[@Chg{Version=[5],New=[],Old=[@b A library unit pragma must apply directly to a library unit, even if no name is given in the pragma.]}]} @end{DiffWord2005} @@ -2451,7 +2452,7 @@ should be deleted if the paragraphs are ever renumbered.} @begin{DiffWord2012} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0417-1]} @ChgAdded{Version=[5],Text=[The terms @ldquote@;program unit pragma@rdquote - and @ldquote@;library unit pragma@rdquote were moved to + and @ldquote@;library unit pragma@rdquote were moved to @RefSec{Obsolescent Features} (specifically to @RefSecNum{Aspect-related Pragmas}) as all of the @nt{pragma}s that use these terms are now in that annex.]} @end{DiffWord2012} @@ -2636,6 +2637,7 @@ that were with-ed by our parent, etc. @end{DiffWord95} +@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only} @LabeledClause{Program Execution} @begin{Intro} @@ -2702,7 +2704,7 @@ compilation units described here. @begin{Itemize} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0448-1]} -A compilation unit @Chg{Version=[5],New=[is a needed compilation unit +A compilation unit @Chg{Version=[5],New=[is a needed compilation unit of],Old=[needs]} itself; @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0448-1]} @@ -2730,7 +2732,7 @@ corresponding @ntf{proper_bodies}. @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00217-06]} @ChgRef{Version=[5],Kind=[RevisedAdded],ARef=[AI12-0448-1]} @ChgAdded{Version=[2],Text=[If the (implicit) declaration of the limited view -of a library package is +of a library package is @Chg{Version=[5],New=[among the ],Old=[]}needed@Chg{Version=[5],New=[ compilation units],Old=[]}, then so is the explicit declaration of the library package.]} @@ -2832,7 +2834,7 @@ Note that elaboration dependences are among @nt{library_item}s, whereas the other two forms of dependence are among compilation units. Note that elaboration dependence includes semantic dependence. It's a little bit sad that @Chg{Version=[5],New=[the],Old=[pragma]} -Elaborate_Body @Chg{Version=[5],New=[ aspect],Old=[]} can't be folded +Elaborate_Body @Chg{Version=[5],New=[ aspect],Old=[]} can't be folded into this mechanism. It follows from the definition that the elaboration dependence relationship is transitive. Note that the wording of the rule does not need to take into account @@ -2895,7 +2897,7 @@ the order in which they appear in the environment @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0417-1]} Any included @nt{library_unit_declaration} @Chg{Version=[3],New=[for],Old=[to]} which @Chg{Version=[3],New=[aspect],Old=[a @nt{pragma}]} - Elaborate_Body @Chg{Version=[3],New=[is + Elaborate_Body @Chg{Version=[3],New=[is True@Chg{Version=[5],New=[],Old=[ @Redundant[(including when a @nt{pragma} Elaborate_Body applies)]]}],Old=[applies]} is immediately followed by its @nt{library_unit_body}, if included. @@ -2908,7 +2910,7 @@ the order in which they appear in the environment @begin{TheProof} @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0229-1]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0417-1]} - @ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[@nt{Pragma} + @ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[@nt{Pragma} Elaborate_Body sets aspect Elaborate_Body, see @RefSecNum{Elaboration Control}.]}]} @end{TheProof} @@ -2945,10 +2947,10 @@ The order is otherwise implementation defined. @begin{Discussion} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0417-1]} The only way to violate this rule is to have -Elaborate@Chg{Version=[5],New=[ or],Old=[,]} +Elaborate@Chg{Version=[5],New=[ or],Old=[,]} Elaborate_All@Chg{Version=[5],New=[ @nt{pragma}s],Old=[,]} or -Elaborate_Body @Chg{Version=[5],New=[aspects],Old=[@nt{pragma}s]} that -cause circular ordering requirements, thus preventing an order that has +Elaborate_Body @Chg{Version=[5],New=[aspects],Old=[@nt{pragma}s]} that +cause circular ordering requirements, thus preventing an order that has no forward elaboration dependences. @end{Discussion} @ImplDef{The order of elaboration of @nt{library_item}s.} @@ -2956,7 +2958,7 @@ no forward elaboration dependences. @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0005-1]} @PDefn2{Term=[requires a completion], Sec=(library_unit_declaration)} @Defn{notwithstanding} -Notwithstanding what the @Chg{Version=[5],New=[RM],Old=[RM95]} says +Notwithstanding what the @Chg{Version=[5],New=[RM],Old=[RM95]} says elsewhere, each rule that requires a declaration to have a corresponding completion is considered to be a @LinkTimeName when the declaration is that of a library unit. @@ -3224,7 +3226,7 @@ necessarily],Old=[need not]} have a main subprogram. In such a case, all the work done by the partition would be done by elaboration of various @nt{library_item}s, and by tasks created by that elaboration. Passive partitions, which cannot have main subprograms, -are defined in +are defined in @ISODiff{NotISO=[@RefSecFull{Distributed Systems}], ISOOnly=[@RefSecFullNum{Distributed Systems}]}. @begin{Ramification} @@ -3277,7 +3279,6 @@ The program as a whole is an entirely different thing. @end{DiffWord95} -@notisormnewpagever{Version=[5]}@Comment{Page break in Ada 2022 RM} @LabeledSubClause{Elaboration Control} @begin{Intro} @@ -3355,7 +3356,7 @@ Text=<@Chg{Version=[5],New=[],Old=[@key{pragma} @prag}]}@Comment{This message +were moved to @RefSec{Obsolescent Features}.>}]}@Comment{This message should be deleted if the paragraphs are ever renumbered.} @end{NotIso} @@ -3498,7 +3499,7 @@ declared within the formal part of the generic unit is a @Chg{Version=[3],New=[],Old=[private ]}type@Chg{Version=[3],New=[],Old=[ (or extension)]} that does not have preelaborable initialization@Chg{Version=[3], New=[, unless @Chg{Version=[5],New=[the],Old=[@nt{pragma}]} -Preelaborable_Initialization @Chg{Version=[5],New=[aspect was specified +Preelaborable_Initialization @Chg{Version=[5],New=[aspect was specified for],Old=[has been applied to]} the formal type],Old=[]};]} @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00403-01]} @@ -3534,14 +3535,14 @@ user-defined subprogram.]} @ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0034-1],ARef=[AI05-0243-1]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0417-1]} @PDefn{preelaborated} -@Chg{Version=[5],New=[When the library unit aspect (see -@RefSecNum{Aspect Specifications}) Preelaborate@AspectDefn{Preelaborate} of -a program unit is True, the],Old=[@Chg{Version=[3],New=[A],Old=[If a]} -@nt{pragma} Preelaborate (or @nt Pure @em see below) +@Chg{Version=[5],New=[When the library unit aspect (see +@RefSecNum{Aspect Specifications}) Preelaborate@AspectDefn{Preelaborate} of +a program unit is True, the],Old=[@Chg{Version=[3],New=[A],Old=[If a]} +@nt{pragma} Preelaborate (or @nt Pure @em see below) @Chg{Version=[3],New=[is used to specify that], Old=[applies to]} a library]} -unit@Chg{Version=[3],New=[],Old=[, then it]} is@Chg{Version=[5],New=[ said +unit@Chg{Version=[3],New=[],Old=[, then it]} is@Chg{Version=[5],New=[ said to be],Old=[]} @i{preelaborated}@Chg{Version=[3],New=[@Chg{Version=[5],New=[. -When the Preelaborate aspect is specified True for a library unit,],Old=[, +When the Preelaborate aspect is specified True for a library unit,],Old=[, namely that the Preelaborate aspect@AspectDefn{Preelaborate} of the library unit is True;]} all compilation units of the @@ -3613,7 +3614,7 @@ namely that the Preelaborable_Initialization aspect of the entity is True],Old=[ of a private type or private extension, a protected type without @nts, a generic formal private type, or a generic formal derived type, @Chg{Version=[3],New=[has],Old=[have]} preelaborable -initialization if and only if the +initialization if and only if the @Chg{Version=[5],New=[],Old=[@nt ]}Preelaborable_Initialization@Chg{Version=[5],New=[ aspect],Old=[]} has been @Chg{Version=[5],New=[specified True for],Old=[applied to]} them. @Redundant[A protected type with @nt{entry_declaration}s @@ -3654,33 +3655,33 @@ initialization, or an interface type.]} @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00161-01]} @ChgRef{Version=[5],Kind=[RevisedAdded],ARef=[AI12-0409-1]} @ChgAdded{Version=[5],Type=[Leading],Text=[]}@Comment{For conditional "Leading"} -@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[The following attribute is -defined for @PrefixType{a nonformal composite subtype S declared within the -visible part of a package or a generic package, or a generic formal private -subtype or formal derived subtype}:],Old=[A @nt -Preelaborable_Initialization specifies that a type has preelaborable +@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[The following attribute is +defined for @PrefixType{a nonformal composite subtype S declared within the +visible part of a package or a generic package, or a generic formal private +subtype or formal derived subtype}:],Old=[A @nt +Preelaborable_Initialization specifies that a type has preelaborable initialization. This pragma shall appear in the visible part of a package or generic package.]}]} @begin(description) @ChgAttribute{Version=[5],Kind=[Added],ChginAnnex=[T], Leading=, Prefix=, AttrName=, - ARef=[AI12-0409-1], InitialVersion=[5], - Text=[@Chg{Version=[5],New=[This attribute is of Boolean type, and its - value reflects whether the type of S has preelaborable + ARef=[AI12-0409-1], InitialVersion=[5], + Text=[@Chg{Version=[5],New=[This attribute is of Boolean type, and its + value reflects whether the type of S has preelaborable initialization.],Old=[]}]}@Comment{End of Annex text here.} - @Chg{Version=[5],New=[The value of this attribute, the type-related - Preelaborable_Initialization aspect, may be specified for any type for - which the attribute is defined. The value shall be specified by a - static expression, unless the type is not a formal type but is nevertheless - declared within a generic package. In this latter case, the value may also - be specified by references to the Preelaborable_Initialization attribute + @Chg{Version=[5],New=[The value of this attribute, the type-related + Preelaborable_Initialization aspect, may be specified for any type for + which the attribute is defined. The value shall be specified by a + static expression, unless the type is not a formal type but is nevertheless + declared within a generic package. In this latter case, the value may also + be specified by references to the Preelaborable_Initialization attribute of one or more formal types visible at the point of the declaration of the composite type, conjoined with @b.],Old=[]} @begin{Ramification} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0409-1]} - @ChgAdded{Version=[5],Text=[@ldquote@;Formal types visible at the point of + @ChgAdded{Version=[5],Text=[@ldquote@;Formal types visible at the point of the declaration@rdquote includes all visible formal types, including those that might have been declared in formal packages or in child packages.]} @end{Ramification} @@ -3705,20 +3706,20 @@ the same package as the @nt. ]}If the @Chg{Version=[5],New=[Preelaborable_Initialization aspect is specified True for],Old=[@nt is applied to]} a private type or a private extension, the full view of the type shall have preelaborable -initialization. If the @Chg{Version=[5],New=[aspect is specified True +initialization. If the @Chg{Version=[5],New=[aspect is specified True for],Old=[@nt is applied to]} a protected type, @Chg{Version=[3],New=[the protected type shall not have entries, and ],Old=[]}each component of the protected type shall have preelaborable initialization. @Chg{Version=[3],New=[@Chg{Version=[5],New=[If the aspect is specified True for a generic formal type, then in a @nt{generic_instantiation} the -corresponding actual type shall have preelaborable initialization. If +corresponding actual type shall have preelaborable initialization. If the aspect definition includes one or more Preelaborable_Initialization @nt{attribute_reference}s, then the full view of the type shall have preelaborable initialization presuming the types mentioned in the -@nt{prefix}es of the @nt{attribute_reference}s all have -preelaborable initialization. ],Old=[]}For any other composite type, the -@Chg{Version=[5],New=[aspect shall be specified statically True or +@nt{prefix}es of the @nt{attribute_reference}s all have +preelaborable initialization. ],Old=[]}For any other composite type, the +@Chg{Version=[5],New=[aspect shall be specified statically True or False only if it is confirming],Old=[type shall have preelaborable initialization]}. ],Old=[]}@PDefn{generic contract issue}In addition to the places where @LegalityTitle normally apply @@ -3744,7 +3745,7 @@ also in the private part of an instance of a generic unit.]} @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00161-01]} @ChgRef{Version=[5],Kind=[DeletedAddedNoDelMsg],ARef=[AI12-0409-1]} -@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[],Old=[If the @nt appears +@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[],Old=[If the @nt appears in a @nt, then the @nt shall denote a generic formal private type or a generic formal derived type declared in the same @nt as the @nt. @@ -3755,7 +3756,7 @@ preelaborable initialization.]}]} @ChgRef{Version=[2],Kind=[AddedNormal]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0409-1]} @ChgAdded{Version=[2],Text=[Not only do protected types with - @nt{entry_declaration}s and task types not have + @nt{entry_declaration}s and task types not have preelaborable initialization, but they cannot have @Chg{Version=[5],New=[],Old=[pragma ]}Preelaborable_Initialization@Chg{Version=[5],New=[ aspect],Old=[]} @Chg{Version=[5],New=[specified True for],Old=[applied to]} them.]} @@ -3793,7 +3794,7 @@ A @nt{pragma} Pure is a library unit pragma.]} @begin{NotIso} @ChgAdded{Version=[5],Noparanum=[T],Text=[@Shrink{@i}]}@Comment{This message +were moved to @RefSec{Obsolescent Features}.>}]}@Comment{This message should be deleted if the paragraphs are ever renumbered.} @end{NotIso} @@ -3848,9 +3849,9 @@ evaluates such an @nt{allocator};]} of a private type or extension using <> or the ancestor subtype of an extension aggregate. The subtype of a component could use an @nt{allocator} to initialize an access - discriminant; the type still could have @Chg{Version=[5],New=[the],Old=[a - pragma]} Preelaborable_Initialization - @Chg{Version=[5],New=[aspect specified],Old=[given]}. Ada 95 did not allow + discriminant; the type still could have @Chg{Version=[5],New=[the],Old=[a + pragma]} Preelaborable_Initialization + @Chg{Version=[5],New=[aspect specified],Old=[given]}. Ada 95 did not allow such private types to have preelaborable initialization, so such a default initialization could not have occurred. Thus this rule is not incompatible with Ada 95.]} @@ -4119,9 +4120,9 @@ writer of such a subprogram has to keep this in mind. @begin{Syntax} @begin{SyntaxText} @Leading@Keepnext@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0417-1]} -@Chg{Version=[5],New=[The following @nt{pragma}s are defined with the +@Chg{Version=[5],New=[The following @nt{pragma}s are defined with the given forms],Old=[The form of a @nt{pragma} Elaborate, -Elaborate_All, or Elaborate_Body is as follows:]}: +Elaborate_All, or Elaborate_Body is as follows:]}: @end{SyntaxText} @PragmaSyn`@key{pragma} @prag(Elaborate)(@SynI{library_unit_}@Syn2{name}{, @SynI{library_unit_}@Syn2{name}});' @@ -4163,7 +4164,7 @@ pragma, nor a library unit pragma. @Chg{Version=[5],New=[],Old=[@PDefn2{Term=[requires a completion], Sec=(declaration to which a @nt{pragma} Elaborate_Body applies)}]} If @Chg{Version=[3],New=[the aspect],Old=[a @nt{pragma}]} Elaborate_Body @Chg{Version=[3],New=[is True for],Old=[applies to]} a -declaration@Chg{Version=[3],New=[@Chg{Version=[5],New=[],Old=[ +declaration@Chg{Version=[3],New=[@Chg{Version=[5],New=[],Old=[ @Redundant[(including when @nt{pragma} Elaborate_Body applies)]]}],Old=[]}, then the declaration requires a completion @Redundant[(a body)].@Chg{Version=[3],New=[@PDefn2{Term=[requires a completion], @@ -4172,7 +4173,7 @@ Sec=(declaration for which aspect Elaborate_Body is True)}],Old=[]} @begin{TheProof} @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0229-1]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0417-1]} - @ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[@nt{Pragma} + @ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[@nt{Pragma} Elaborate_Body sets the aspect (see below).]}]} @end{TheProof} @@ -4209,7 +4210,7 @@ The official statement of the semantics of these @nt{pragma}s is given in @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0229-1]} @ChgRef{Version=[5],Kind=[RevisedAdded],ARef=[AI12-0417-1]} -@ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[A @nt{pragma} +@ChgAdded{Version=[3],Text=[@Chg{Version=[5],New=[],Old=[A @nt{pragma} Elaborate_Body sets the Elaborate_Body representation aspect of the library unit to which it applies to the value True.]}@Redundant[If the Elaborate_Body aspect of a library unit is True, the body of the library @@ -4223,13 +4224,13 @@ unit is elaborated immediately after its declaration.@AspectDefn{Elaborate_Body} @begin{ImplNote} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0417-1]} The @Chg{Version=[5],New=[specification],Old=[presence]} of -@Chg{Version=[5],New=[the],Old=[a @nt{pragma}]} +@Chg{Version=[5],New=[the],Old=[a @nt{pragma}]} Elaborate_Body@Chg{Version=[5],New=[ aspect],Old=[]} simplifies the removal of unnecessary Elaboration_Checks. -For a subprogram declared immediately within a library +For a subprogram declared immediately within a library unit @Chg{Version=[5],New=[for],Old=[to]} which -@Chg{Version=[5],New=[the],Old=[a @nt{pragma}]} Elaborate_Body -@Chg{Version=[5],New=[ aspect is specified as True],Old=[applies]}, the +@Chg{Version=[5],New=[the],Old=[a @nt{pragma}]} Elaborate_Body +@Chg{Version=[5],New=[ aspect is specified as True],Old=[applies]}, the only calls that can fail the Elaboration_Check are those that occur in the library unit itself, between the declaration and body of the called subprogram; @@ -4256,7 +4257,7 @@ previous @nt{with_clause} of the same @nt{context_clause}. @end{Discussion} @ChgAspectDesc{Version=[5],Kind=[AddedNormal],Aspect=[Elaborate_Body], - InitialVersion=[3],Text=[@ChgAdded{Version=[3],Text=[A given package + InitialVersion=[3],Text=[@ChgAdded{Version=[3],Text=[A given package @Chg{Version=[5],New=[will],Old=[must]} have a body, and that body is elaborated immediately after the declaration.]}]} diff --git a/source/aa-aarm.msm b/source/aa-aarm.msm index 24991a00..aeb2de4a 100644 --- a/source/aa-aarm.msm +++ b/source/aa-aarm.msm @@ -26,9 +26,10 @@ @RTFHeaderPrefix{Version=[2],Text=[ISO/IEC 8652:2007(E) Ed. 3]} @RTFHeaderPrefix{Version=[3],Text=[ISO/IEC 8652:2012(E)]} @RTFHeaderPrefix{Version=[4],Text=[ISO/IEC 8652:2012(E) with COR.1:2016]} -@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E) Draft 35]}} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022 Draft 35]} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]} +@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E)]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022]} +@Comment{Usual (No ISO, Corrigendum)@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 202y Draft 1]} @RTFFooter{UseDate=[T],UseClauseName=[T],UseISOFormat=[F]}@Comment{RM style footers} @RTFPageSize{Letter} @RTFSizes{Normal} @@ -39,7 +40,7 @@ @RTFVersionName{Version=[3],Text=[Ada 2012]} @RTFVersionName{Version=[4],Text=[Ada 2012 Corrigendum 1]} @RTFVersionName{Version=[5],Text=[Ada 2022]} -@RTFVersionName{Version=[6],Text=[Ada 2022 Corrigendum 1]} +@RTFVersionName{Version=[6],Text=[Ada 202y]} @Comment{HTML properties} @Comment{Many small files are used, thus no @SingleHTMLOutputFile command} @@ -52,7 +53,7 @@    Home Conformity Assessment   Test Suite ARGAda Standard -

 
Annotated Ada Reference Manual (Ada 2022 Draft 35)Legal Information
} +
 
Annotated Ada Reference Manual (Ada 202y Draft 1)Legal Information
} @HTMLFooter{
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe
} @HTMLColor{Text=[#000000],Background=[#FFFFF0],Link=[#000080],VLink=[#330033],ALink=[#0000FF]} diff --git a/source/aa-rm.msm b/source/aa-rm.msm index 91d01960..1eb2819d 100644 --- a/source/aa-rm.msm +++ b/source/aa-rm.msm @@ -26,9 +26,10 @@ @Comment{PDFs: }@RTFHeaderPrefix{Version=[3],Text=[ISO/IEC 8652:2012(E)]} @Comment{Springer: @RTFHeaderPrefix{Version=[3],Text=[Ada Reference Manual - 2012 Edition]}} @Comment{PDFs: }@RTFHeaderPrefix{Version=[4],Text=[ISO/IEC 8652:2012(E) with COR.1:2016]} -@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E) Draft 35]}} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022 Draft 35]} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]} +@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E)]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada Reference Manual - 2022 Edition]} +@Comment{Usual (No ISO, corrigendum)@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 202y Draft 1]} @RTFFooter{UseDate=[T],UseClauseName=[T],UseISOFormat=[F]}@Comment{RM style footers} @RTFPageSize{Ada95} @RTFSizes{Small} @@ -52,7 +53,7 @@    Home Conformity Assessment   Test Suite ARGAda Standard -
 
Ada Reference Manual (Ada 2022 Draft 35)Legal Information
} +
 
Ada Reference Manual (Ada 202y Draft 1)Legal Information
} @HTMLFooter{
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe
} @HTMLColor{Text=[#000000],Background=[#FFFFF0],Link=[#000080],VLink=[#330033],ALink=[#0000FF]} diff --git a/source/aarm.msm b/source/aarm.msm index 30d9a88b..f6043f20 100644 --- a/source/aarm.msm +++ b/source/aarm.msm @@ -26,9 +26,10 @@ @RTFHeaderPrefix{Version=[2],Text=[ISO/IEC 8652:2007(E) Ed. 3]} @RTFHeaderPrefix{Version=[3],Text=[ISO/IEC 8652:2012(E)]} @RTFHeaderPrefix{Version=[4],Text=[ISO/IEC 8652:2012(E) with COR.1:2016]} -@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E) Draft 35]}} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022 Draft 35]} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]} +@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2023(E)]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022]} +@Comment{Usual (No ISO, corrigendum)@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 202y Draft 1]} @RTFFooter{UseDate=[T],UseClauseName=[T],UseISOFormat=[F]}@Comment{RM style footers} @RTFPageSize{Letter} @RTFSizes{Normal} @@ -39,7 +40,7 @@ @RTFVersionName{Version=[3],Text=[Ada 2012]} @RTFVersionName{Version=[4],Text=[Ada 2012 Corrigendum 1]} @RTFVersionName{Version=[5],Text=[Ada 2022]} -@RTFVersionName{Version=[6],Text=[Ada 2022 Corrigendum 1]} +@RTFVersionName{Version=[6],Text=[Ada 202y]} @Comment{HTML properties} @Comment{Many small files are used, thus no @SingleHTMLOutputFile command} @@ -48,7 +49,7 @@ UseButtons=[T],OnTop=[T],OnBottom=[T]} @Comment{We let the program link to the index} @HTMLTabs{EmulateFixedOnly} -@HTMLHeader{
Annotated Ada Reference Manual (Ada 2022 Draft 35)Legal Information
} +@HTMLHeader{
Annotated Ada Reference Manual (Ada 202y Draft 1)Legal Information
} @HTMLFooter{
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe
} @HTMLColor{Text=[#000000],Background=[#FFFFF0],Link=[#000080],VLink=[#330033],ALink=[#0000FF]} diff --git a/source/biblio.mss b/source/biblio.mss index 6aa1e70d..552eacb3 100644 --- a/source/biblio.mss +++ b/source/biblio.mss @@ -1,10 +1,10 @@ @Part(01, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:11 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @Comment{$Source: e:\\cvsroot/ARM/Source/biblio.mss,v $} -@Comment{$Revision: 1.2 $} +@Comment{$Revision: 1.3 $} @Comment{Header and introductory text is found in ISO_Bib.mss and RM_Bib.mss.} @@ -40,11 +40,11 @@ ISO/IEC 6429:1992, @i{Information technology @em Control functions for coded character sets}]} -@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1],ARef=[AI12-0450-1]} +@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1],ARef=[AI12-0450-1],ARef=[AI12-0454-1]} @ChgAdded{Version=[5],Text=[@Defn{ISO 8601-1:2019}@Defn{8601-1:2019, ISO standard} @Defn{date and time formatting standard} -ISO 8601-1:2019, @i{Data elements and interchange formats @em Information -interchange @em Part 1, Representation of dates and times}]} +ISO 8601-1:2019, @i{Date and time @em Representations for information +interchange @em Part 1: Basic rules}]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1]} @ChgAdded{Version=[5],Text=[@Defn{ISO/IEC 8859-1:1998} @@ -63,12 +63,12 @@ ISO/IEC 9899:2018, @i{Information technology @em Programming languages @em C}]} -@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1],ARef=[AI12-0450-1]} +@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1],ARef=[AI12-0450-1],ARef=[AI12-0454-1]} @ChgAdded{Version=[5],Text=[@Defn{ISO/IEC 14882:2020} @Defn{14882:2020, ISO/IEC standard} @Defn{C++ standard} ISO/IEC 14882:2020, -@i{Information technology @em Programming languages @em C++}]} +@i{Programming languages @em C++}]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0437-1]} @ChgAdded{Version=[5],Text=[@Defn{ISO/IEC 60559:2020} diff --git a/source/foreword_tail.mss b/source/foreword_tail.mss index 2b61afe2..742fe2f3 100644 --- a/source/foreword_tail.mss +++ b/source/foreword_tail.mss @@ -1,6 +1,6 @@ @Part(foreword_tail, root="ada.mss") @comment{$Source: e:\\cvsroot/ARM/Source/foreword_tail.mss,v $} -@comment{$Revision: 1.4 $ $Date: 2023/01/05 05:49:11 $} +@comment{$Revision: 1.5 $ $Date: 2023/10/04 05:40:21 $} @Comment{This file contains the ending shared part of the Foreword.} @Comment{The beginning of the Foreword is found in ISO_Forward.mss and RM_Forward.mss} @@ -9,7 +9,7 @@ @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0441-1]} @ChgAdded{Version=[5],Text=[@ISODiff{NotISO=[Significant changes -in this edition are],ISOOnly=[The main changes are as follows]}:]} +in this edition],ISOOnly=[The main changes]} are as follows:]} @begin{Itemize} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0313-1],ARef=[AI12-0441-1]} diff --git a/source/general.mss b/source/general.mss index aedab345..390a668f 100644 --- a/source/general.mss +++ b/source/general.mss @@ -1,10 +1,10 @@ @Part(01, Root="ada.mss") @LabeledSection{General} -@Comment{$Date: 2022/06/21 06:08:04 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @Comment{$Source: e:\\cvsroot/ARM/Source/general.mss,v $} -@Comment{$Revision: 1.2 $} +@Comment{$Revision: 1.3 $} @begin{Intro} @Chgref{Version=[3],Kind=[DeletedNoDelMsg],ARef=[AI05-0299-1]} @@ -37,10 +37,12 @@ number generation.]} @ChgRef{Version=[3],Kind=[Revised]} @ChgRef{Version=[4],Kind=[Revised]} @ChgRef{Version=[5],Kind=[Revised]} +@ChgRef{Version=[6],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=[5],New=[as updated -for Ada 2022 (referred to here as the Ada 2022 RM)], +the @Chg{Version=[3],New=[@Chg{Version=[5],New=[fourth],Old=[third]} edition of the ],Old=[]}Ada Reference +Manual @Chg{Version=[6],New=[as updated +for Ada 202y ],Old=[]}@Chg{Version=[5],New=[(referred to here +as the Ada @Chg{Version=[6],New=[202y],Old=[2022]} RM)], Old=[@Chg{Version=[4],New=[as updated by Technical Corrigendum 1], Old=[]}@Chg{Version=[3],New=[ (the Ada 2012 RM],Old=[@Chg{Version=[2],New=[with @@ -52,7 +54,8 @@ and point out interesting ramifications of the rules and interactions among the rules (interesting to language lawyers, that is). Differences between Ada 83@Chg{Version=[2],New=[, Ada 95, -@Chg{Version=[3],New=[],Old=[and ]}Ada 2005@Chg{Version=[3],New=[@Chg{Version=[5],New=[, Ada 2012, and Ada 2022],Old=[, and Ada +@Chg{Version=[3],New=[],Old=[and ]}Ada 2005@Chg{Version=[3],New=[@Chg{Version=[5],New=[, Ada 2012, +@Chg{Version=[6],New=[Ada 2022, and Ada 202y],Old=[and Ada 2022]}],Old=[, and Ada 2012]}],Old=[]}],Old=[ and Ada 95]} are listed. (The text you are reading now is an annotation.) @@ -63,7 +66,7 @@ readability and understandability. 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=[5],New=[2022],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=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}, on the other hand, is intended to be a more readable document for programmers. @Leading@keepnext@;The annotations in the AARM are as follows: @@ -73,12 +76,12 @@ readable document for programmers. Text that is logically redundant is shown @Redundant[in square brackets, like this]. Technically, such text could be written as a @NotesName -in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],Old=[2012]}],Old=[2005]} RM +in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[2012]}],Old=[2005]} RM (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 -@Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],Old=[2012]}],Old=[2005]} RM],Old=[RM95]} more readable. +@Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[2012]}],Old=[2005]} RM],Old=[RM95]} more readable. The rules of the language (and some AARM-only text) are categorized, and placed under certain @i{sub-headings} that indicate @@ -113,6 +116,9 @@ The unlabeled text at the beginning of each clause or subclause, @MetricsTitle, +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[@UsageTitle.]} + @ImplPermTitle, @ImplAdviceTitle, @@ -125,7 +131,7 @@ The unlabeled text at the beginning of each clause or subclause, @ChgRef{Version=[2],Kind=[Revised]} @ChgRef{Version=[3],Kind=[Revised]} Text under the following sub-headings -does not appear in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],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=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[2012]}],Old=[2005]} RM],Old=[RM95]}: @begin(Inneritemize) @MetaRulesTitle, @@ -175,6 +181,18 @@ does not appear in the @Chg{Version=[2],New=[Ada @Chg{Version=[3],New=[@Chg{Vers @ChgRef{Version=[4],Kind=[Added]} @ChgAdded{Version=[4],Text=[@DiffWord2012Title.]} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[@Inconsistent2022Title,]} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[@Incompatible2022Title,]} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[@Extend2022Title,]} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[@DiffWord2022Title.]} @end(Inneritemize) The AARM also includes the following kinds of annotations. @@ -233,7 +251,7 @@ text will also appear in @RefSec{Terms and Definitions}.]} @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=[5],New=[2022],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=[@Chg{Version=[6],New=[202y],Old=[2022]}],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. diff --git a/source/general_body.mss b/source/general_body.mss index 8e3f0469..1f18bd7a 100644 --- a/source/general_body.mss +++ b/source/general_body.mss @@ -1,9 +1,9 @@ @Part(01, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:11 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @Comment{$Source: e:\\cvsroot/ARM/Source/general_body.mss,v $} -@Comment{$Revision: 1.6 $} +@Comment{$Revision: 1.7 $} @Comment{The clause header is found in General.Mss. Other parts are found in other files, depending upon the version. Note that the subclause labeled @@ -1222,7 +1222,7 @@ Conformance to a Specialized Needs Annex @ISODiff{NotISO=[],ISOOnly=[(@RefSecNum{Systems Programming}, @RefSecNum{Real-Time Systems}, @RefSecNum{Distributed Systems}, @RefSecNum{Information Systems}, @RefSecNum{Numerics}, and -@RefSecNum{High Integrity Systems})]}means +@RefSecNum{High Integrity Systems}) ]}means that each capability required by the Annex @Chg{Version=[5],New=[shall be],Old=[is]} provided as specified. diff --git a/source/interface.mss b/source/interface.mss index ae44955d..1fda6e6f 100644 --- a/source/interface.mss +++ b/source/interface.mss @@ -1,8 +1,8 @@ @comment{ $Source: e:\\cvsroot/ARM/Source/interface.mss,v $ } -@comment{ $Revision: 1.94 $ $Date: 2023/01/05 05:49:12 $ $Author: randy $ } +@comment{ $Revision: 1.95 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @Part(interface, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:12 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledNormativeAnnex{Interface to Other Languages} @begin{Intro} @@ -3945,7 +3945,7 @@ ISO/IEC 1594-1:2018 along with the C interfacing features defined in Rank : @key[constant] Fortran_Integer := 100; My_Matrix : Fortran_Matrix (1 .. Rank, 1 .. Rank); -@ChgRef{Version=[5],Kind=[Added],ARef=[AI12-0058-1]} +@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0058-1]} @ChgAdded{Version=[5],Text=[ Precision: @b := 6; @key Standard_Deviation @key Precision @key Convention => Fortran; @@ -3962,7 +3962,7 @@ ISO/IEC 1594-1:2018 along with the C interfacing features defined in Invert (Rank, My_Matrix); ... -@ChgRef{Version=[5],Kind=[Added],ARef=[AI12-0058-1]} +@ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0058-1]} @ChgAdded{Version=[5],Text=[ Deviation := ...; ...]} diff --git a/source/intro.mss b/source/intro.mss index aa31e1fd..94f24cea 100644 --- a/source/intro.mss +++ b/source/intro.mss @@ -1,6 +1,6 @@ @Part(intro, root="ada.mss") @comment{$Source: e:\\cvsroot/ARM/Source/intro.mss,v $} -@comment{$Revision: 1.5 $ $Date: 2023/01/05 05:49:12 $} +@comment{$Revision: 1.6 $ $Date: 2023/10/04 05:40:22 $} @UnNumberedSection{Introduction} @@ -317,10 +317,11 @@ also introduces the names and parameters of other nested subprograms, packages, task units, protected units, and generic units to be used in the program unit. +@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0454-1]} The sequence of statements describes a sequence of actions -that are to be performed. The statements are executed in -succession (unless a transfer of control causes execution to continue -from another place). +@Chg{Version=[5],New=[],Old=[that are ]}to be performed. The statements are +executed in succession (unless a transfer of control causes execution to +continue from another place). An assignment statement changes the value of a variable. A procedure call invokes execution of a procedure after diff --git a/source/langdef.mss b/source/langdef.mss index 4ba947c4..f877392b 100644 --- a/source/langdef.mss +++ b/source/langdef.mss @@ -1,10 +1,10 @@ @Part(glossary, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:12 $} +@Comment{$Date: 2023/10/04 05:40:22 $} @LabeledAddedInformativeAnnex{Version=[2],Name=[Language-Defined Entities]} @comment{$Source: e:\\cvsroot/ARM/Source/langdef.mss,v $} -@comment{$Revision: 1.9 $} +@comment{$Revision: 1.10 $} @begin{Intro} @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00440-01]} @@ -25,6 +25,7 @@ lists all language-defined packages.@Defn{Language-defined packages}]} @PackageList +@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM} @LabeledAddedClause{Version=[2],Name=[Language-Defined Types and Subtypes]} @begin{Intro} diff --git a/source/other_front_matter.mss b/source/other_front_matter.mss index 5586642a..8d5343e2 100644 --- a/source/other_front_matter.mss +++ b/source/other_front_matter.mss @@ -1,11 +1,16 @@ @Part(otherfrontmatter, root="ada.mss") @comment{$Source: e:\\cvsroot/ARM/Source/other_front_matter.mss,v $} -@comment{$Revision: 1.3 $ $Date: 2022/09/17 06:51:40 $} +@comment{$Revision: 1.4 $ $Date: 2023/10/04 05:40:22 $} @comment{These parts appear after the Introduction in RM and AARM versions only.} @begin{NotISO} -@NewPage +@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} +@RMNewPageVer{Version=[3]}@Comment{For printed version of Ada 2012 RM} +@RMNewPageVer{Version=[4]}@Comment{For printed version of Ada 2012 + TC1 RM} +@RMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2012 RM} @SubHeading(Instructions for Comment Submission) @begin{Intro} @@ -101,7 +106,11 @@ a Technical Corrigendum will be issued in accordance with the procedures.]} @begin{NotISO} -@NewPage +@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} +@RMNewPageVer{Version=[3]}@Comment{For printed version of Ada 2012 RM} +@RMNewPageVer{Version=[4]}@Comment{For printed version of Ada 2012 + TC1 RM} @AddedSubHeading{Version=[3],Acknowledgements for the Ada 83 edition} @ChgRef{Version=[3],Kind=[Added]} @@ -409,18 +418,47 @@ while continuing to find obscure interactions; T. Taft, who often solved difficult problems that had stumped others; B. Moore, whose frequent suggestions for parallel constructs greatly improved the result. Other ARG members who substantially contributed were: -R. Amiard, J. Barnes, A. Burns, A. Charlet, G. Dismukes, C. Dross, R. Duff, +R. Amiard, J. Barnes, A. Burns, A. Charlet, G. Dismukes, C. Dross, R. Duff, E. Fish, E. Ploedereder, J.P. Rosen, F. Schanda, E. Schonberg, J. Squirek, T. Vardanega, and R. Wai.]} -@Comment{E. Fish has 2.0 meeting points as of #62 (Oct 2019), he has not -attended since. Added his name if he reappears.} -@Comment{Leave the thanks for Pat until we get closer to done. @ChgRef{Version=[5],Kind=[Added]} @Chg{Version=[5],New=[Finally, special thanks go to the convenor of ISO/IEC JTC 1/SC 22/WG 9, P. Rogers, who guided the document through the standardization process.],Old=[]} @Comment{The financial contributors -wanted to remain anonymous, so they are not mentioned here.}} +wanted to remain anonymous, so they are not mentioned here.} + +@AddedSubHeading{Version=[6],Acknowledgements for the Ada 202y version} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=} + +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[Thanks go out to all of the members of the +ISO/IEC JTC 1/SC 22/WG 9 Ada Rapporteur Group, whose work in all steps of the +process, from determining problems to address, reviewing feature designs, and +creating and editing wording changes, was critical to the entire process.@Comment{Revise +the following when we get closer to an actual document: +Especially valuable contributions came from the chairman of the +ARG through June 2018, J. Cousins, +who guided the work and ensured we followed defined procedures; his replacement +as chairman, S. Baird, who ably powered through obstacles to complete the work +while continuing to find obscure interactions; T. Taft, who often solved +difficult problems that had stumped others; B. Moore, whose frequent suggestions +for parallel constructs greatly improved the result. +Other ARG members who substantially contributed were: +R. Amiard, J. Barnes, A. Burns, A. Charlet, G. Dismukes, C. Dross, R. Duff, E. Fish, +E. Ploedereder, J.P. Rosen, F. Schanda, E. Schonberg, J. Squirek, T. Vardanega, +and R. Wai.}]} + +@Comment{Revise when closer to end of te process: +@ChgRef{Version=[5],Kind=[Added]} +@Chg{Version=[5],New=[Finally, special thanks go to the convenor of ISO/IEC JTC +1/SC 22/WG 9, P. Rogers, who guided the document through the +standardization process.],Old=[]}} @Comment{The financial contributors +wanted to remain anonymous, so they are not mentioned here.} + @end{Intro} @end{NotISO} diff --git a/source/pre_con2.mss b/source/pre_con2.mss index a3cb89b5..4a956fd6 100644 --- a/source/pre_con2.mss +++ b/source/pre_con2.mss @@ -1,6 +1,6 @@ @Part(precontainers-2, Root="ada.mss") @comment{ $Source: e:\\cvsroot/ARM/Source/pre_con2.mss,v $ } -@comment{ $Revision: 1.52 $ $Date: 2023/01/05 05:49:09 $ $Author: randy $ } +@comment{ $Revision: 1.53 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @LabeledAddedSubclause{Version=[3],Name=[The Generic Package Containers.Multiway_Trees]} @@ -1220,7 +1220,7 @@ element in the same container.]} Input, Output, Read, or Write attribute of type Cursor raises Program_Error.]} @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0136-1],ARef=[AI05-0248-1],ARef=[AI05-0262-1]} -@ChgRef{Version=[5],Kind=[RevisedAdded],ARef=[AI12-0437-1]} +@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0437-1]} @ChgAdded{Version=[3],Text=[Tree'Write for a Tree object @i writes Node_Count(@i) - 1 elements of the tree to the stream. It @Chg{Version=[5],New=[may ],Old=[]}also@Chg{Version=[5],New=[],Old=[ may]} write diff --git a/source/pre_math.mss b/source/pre_math.mss index dd814f30..083f92d6 100644 --- a/source/pre_math.mss +++ b/source/pre_math.mss @@ -1,9 +1,10 @@ @comment{ $Source: e:\\cvsroot/ARM/Source/pre_math.mss,v $ } -@comment{ $Revision: 1.55 $ $Date: 2023/01/05 05:49:09 $ $Author: randy $ } +@comment{ $Revision: 1.56 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @Part(predefmath, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:09 $} +@Comment{$Date: 2023/10/04 05:40:21 $} +@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only} @LabeledClause{The Numerics Packages} @begin{Intro} diff --git a/source/pre_strings.mss b/source/pre_strings.mss index 0b2489f9..c7976c80 100644 --- a/source/pre_strings.mss +++ b/source/pre_strings.mss @@ -1,7 +1,7 @@ @comment{ $Source: e:\\cvsroot/ARM/Source/pre_strings.mss,v $ } -@comment{ $Revision: 1.97 $ $Date: 2023/01/05 05:49:12 $ $Author: randy $ } +@comment{ $Revision: 1.98 $ $Date: 2023/10/04 05:40:22 $ $Author: randy $ } @Part(predefstrings, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:12 $} +@Comment{$Date: 2023/10/04 05:40:22 $} @RMNewPageVer{Version=[3]}@Comment{For printed version of Ada 2012 RM} @LabeledClause{String Handling} @@ -1250,6 +1250,7 @@ string handling subprograms, Constraint_Error is propagated. @end{DiffWord2005} +@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM} @LabeledSubClause{Bounded-Length String Handling} @begin{Intro} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0445-1]} @@ -1923,6 +1924,7 @@ Null_Bounded_String : @key[constant] Bounded_String := +@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM} @LabeledSubClause{Unbounded-Length String Handling} @begin{Intro} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0445-1]} @@ -2745,14 +2747,15 @@ Character portion of Wide_Character.]} @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00362-01]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0302-1],ARef=[AI12-0414-1]} -@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[Aspect],Old=[@nt{Pragma}]} +@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[Aspect],Old=[@nt{Pragma}]} Pure is replaced by @Chg{Version=[5],New=[aspects @Exam{Preelaborate, Nonblocking, -Global => @key}],Old=[@nt{pragma} Preelaborate]} in +Global => @key}],Old=[@nt{pragma} Preelaborate]} in Strings.Wide_Maps.Wide_Constants.]} @end{StaticSem} @begin{SingleNote} +@ChgRef{Version=[5],Kind=[Revised]}@ChgNote{Just the paragraph number changed} If a null Wide_Character_Mapping_Function is passed to any of the Wide_String handling subprograms, Constraint_Error is propagated. @@ -3104,10 +3107,10 @@ Character portion of Wide_Wide_Character.]} @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00395-01]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0302-1],ARef=[AI12-0414-1]} -@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[Aspect],Old=[@nt{Pragma}]} +@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[Aspect],Old=[@nt{Pragma}]} Pure is replaced by @Chg{Version=[5],New=[aspects @Exam{Preelaborate, Nonblocking, -Global => @key}],Old=[@nt{pragma} Preelaborate]} in +Global => @key}],Old=[@nt{pragma} Preelaborate]} in Strings.Wide_Wide_Maps.Wide_Wide_Constants.]} @end{StaticSem} @@ -4230,7 +4233,7 @@ the following declarations:]} @ChgAdded{Version=[5],Text=[ @key[function] @AdaSubDefn{Get} ( Buffer : @key[in out] Buffer_Type) @key[return] String - @key[with] Post'Class => + @key[with] Post'Class => Get'Result'First = 1 @key[and then] Current_Indent (Buffer) = 0;]} @ChgRef{Version=[5],Kind=[AddedNormal]} @@ -4245,7 +4248,7 @@ the following declarations:]} Buffer : @key[in out] Buffer_Type) @key[return] Wide_Wide_String @key[with] Post'Class => - Wide_Wide_Get'Result'First = 1 + Wide_Wide_Get'Result'First = 1 @key[and then] Current_Indent (Buffer) = 0;]} @ChgRef{Version=[5],Kind=[AddedNormal]} @@ -4306,17 +4309,17 @@ currently stored in a text buffer.]} @end{Ramification} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0340-1],ARef=[AI12-0384-2]} -@ChgAdded{Version=[5],Text=[New_Line stores New_Line_Count characters that +@ChgAdded{Version=[5],Text=[New_Line stores New_Line_Count characters that represent a new line into a text buffer. Current_Indent returns the current -indentation associated with the buffer, with zero meaning there is no -indentation in effect; Increase_Indent and Decrease_Indent increase or +indentation associated with the buffer, with zero meaning there is no +indentation in effect; Increase_Indent and Decrease_Indent increase or decrease the indentation associated with the buffer.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0340-1],ARef=[AI12-0384-2]} @ChgAdded{Version=[5],Text=[A call to Put, Wide_Put, Wide_Wide_Put, Put_UTF_8, -or Wide_Put_UTF_16 stores a sequence of characters into the text buffer, +or Wide_Put_UTF_16 stores a sequence of characters into the text buffer, preceded by Current_Indent(Buffer) spaces (Wide_Wide_Characters with position -32) if there is at least one character in Item and it would have been the +32) if there is at least one character in Item and it would have been the first character on the current line.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0340-1],ARef=[AI12-0384-2]} @@ -4326,8 +4329,8 @@ present in the calls that stored the characters into the buffer, if representable. For a call to Get, if any character in the sequence is not defined in Character, the result is implementation defined. Similarly, for a call to Wide_Get, if any character in the sequence is not defined in -Wide_Character, the result is implementation defined. As part of a call on -any of the Get functions, the buffer is reset to an empty state, with no +Wide_Character, the result is implementation defined. As part of a call on +any of the Get functions, the buffer is reset to an empty state, with no stored characters.]} @ChgImplDef{Version=[5],Kind=[AddedNormal],Text=[@ChgAdded{Version=[5], @@ -4339,9 +4342,9 @@ Text=[The value returned by a call to a Text_Buffer Wide_Get procedure if any character in the returned sequence is not defined in Wide_Character.]}]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0384-2]} -@ChgAdded{Version=[5],Text=[In the case of a Buf of type +@ChgAdded{Version=[5],Text=[In the case of a Buf of type Text_Buffers.Bounded.Buffer_Type, Text_Truncated (Buf) returns True if the -various Put procedures together have attempted to store more than +various Put procedures together have attempted to store more than Buf.Max_Characters into Buf. If this function returns True, then the various Get functions return a representation of only the first Buf.Max_Characters characters that were stored in Buf.]} diff --git a/source/refs.mss b/source/refs.mss index d6493e84..87e3d1e6 100644 --- a/source/refs.mss +++ b/source/refs.mss @@ -1,10 +1,10 @@ @Part(01, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:10 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @Comment{$Source: e:\\cvsroot/ARM/Source/refs.mss,v $} -@Comment{$Revision: 1.2 $} +@Comment{$Revision: 1.3 $} @Comment{Header and introductory text is found in ISO_Refs.mss and RM_Refs.mss.} @@ -53,13 +53,14 @@ ISO@Chg{Version=[2],New=[/IEC],Old=[]} 1989:@Chg{Version=[2],New=[2002],Old=[198 @i{@Chg{Version=[2],New=[Information technology @em ],Old=[]}Programming languages @em COBOL}.]} @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0127-2],ARef=[AI05-0299-1]} -@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0450-1]} +@ChgRef{Version=[5],Kind=[RevisedAdded],ARef=[AI12-0450-1],ARef=[AI12-0454-1]} @Chg{Version=[3],New=[@Chg{Version=[5],New=[@Defn{ISO 3166-1:2020} @Defn{3166-1:2020, ISO standard}],Old=[@Defn{ISO 3166-1:2006} @Defn{3166-1:2006, ISO standard}]}@Defn{Country code standard} ISO@Chg{Version=[5],New=[],Old=[/IEC]} 3166-1:@Chg{Version=[5],New=[2020],Old=[2006]}, @i{Codes for the representation of names of countries and -their subdivisions @em Part 1: Country Codes}@Chg{Version=[5],New=[],Old=[.]}],Old=[]} +their subdivisions @em Part 1: Country +@Chg{Version=[5],New=[codes],Old=[Codes]}}@Chg{Version=[5],New=[],Old=[.]}],Old=[]} @ChgRef{Version=[5],Kind=[DeletedNoDelMsg],ARef=[AI12-0441-1]} @ChgDeleted{Version=[5],Text=[@Defn{ISO/IEC 6429:1992} diff --git a/source/rm.msm b/source/rm.msm index c1027883..bedb025a 100644 --- a/source/rm.msm +++ b/source/rm.msm @@ -26,9 +26,10 @@ @Comment{PDFs: }@RTFHeaderPrefix{Version=[3],Text=[ISO/IEC 8652:2012(E)]} @Comment{Springer: @RTFHeaderPrefix{Version=[3],Text=[Ada Reference Manual - 2012 Edition]}} @Comment{PDFs: }@RTFHeaderPrefix{Version=[4],Text=[ISO/IEC 8652:2012(E) with COR.1:2016]} -@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2022(E) Draft 35]}} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada 2022 Draft 35]} -@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]} +@Comment{ISO form: @RTFHeaderPrefix{Version=[5],Text=[ISO/IEC 8652:2023(E)]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[5],Text=[Ada Reference Manual - 2022 Edition]} +@Comment{Usual (No ISO, corrigendum)@RTFHeaderPrefix{Version=[6],Text=[Ada 2022 with Corr 1 Draft 1]}} +@Comment{Usual (No ISO)}@RTFHeaderPrefix{Version=[6],Text=[Ada 202y Draft 1]} @RTFFooter{UseDate=[T],UseClauseName=[T],UseISOFormat=[F]}@Comment{RM style footers} @RTFPageSize{Ada95} @RTFSizes{Small} @@ -39,7 +40,7 @@ @RTFVersionName{Version=[3],Text=[Ada 2012]} @RTFVersionName{Version=[4],Text=[Ada 2012 Corrigendum 1]} @RTFVersionName{Version=[5],Text=[Ada 2022]} -@RTFVersionName{Version=[6],Text=[Ada 2022 Corrigendum 1]} +@RTFVersionName{Version=[6],Text=[Ada 202y]} @Comment{HTML properties} @Comment{Many small files are used, thus no @SingleHTMLOutputFile command} @@ -48,7 +49,7 @@ UseButtons=[T],OnTop=[T],OnBottom=[T]} @Comment{We let the program link to the index} @HTMLTabs{EmulateFixedOnly} -@HTMLHeader{
Ada Reference Manual (Ada 2022 Draft 35)Legal Information
} +@HTMLHeader{
Ada Reference Manual (Ada 202y Draft 1)Legal Information
} @HTMLFooter{
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe
} @HTMLColor{Text=[#000000],Background=[#FFFFF0],Link=[#000080],VLink=[#330033],ALink=[#0000FF]} diff --git a/source/rm_bib.mss b/source/rm_bib.mss index 18026a78..c5239969 100644 --- a/source/rm_bib.mss +++ b/source/rm_bib.mss @@ -1,12 +1,13 @@ @Part(01, Root="ada.mss") -@Comment{$Date: 2022/07/06 03:35:26 $} +@Comment{$Date: 2023/10/04 05:40:22 $} @Comment{$Source: e:\\cvsroot/ARM/Source/rm_bib.mss,v $} -@Comment{$Revision: 1.2 $} +@Comment{$Revision: 1.3 $} +@NotISORMNewPageVer{Version=[5]}@Comment{For printed version of Ada 2022 RM} @LabeledAddedSubClause{Version=[5],Name=[Bibliography]} @begin{Intro} diff --git a/source/rm_foreword.mss b/source/rm_foreword.mss index 7a8b7396..0314eb32 100644 --- a/source/rm_foreword.mss +++ b/source/rm_foreword.mss @@ -1,6 +1,6 @@ @Part(rm_foreword, root="ada.mss") @comment{$Source: e:\\cvsroot/ARM/Source/rm_foreword.mss,v $} -@comment{$Revision: 1.2 $ $Date: 2022/06/21 06:08:04 $} +@comment{$Revision: 1.3 $ $Date: 2023/10/04 05:40:22 $} @Comment{This version of the Foreword file is only used in non-ISO documents.} @@ -14,22 +14,35 @@ again.} @begin{AARMOnly} @ChgRef{Version=[2],Kind=[Added]} @ChgRef{Version=[4],Kind=[RevisedAdded]} +@ChgRef{Version=[5],Kind=[RevisedAdded]} @ChgAdded{Version=[2],Text=[This document is the Annotated Ada Reference Manual. The International Standard for the programming language Ada is -ISO/IEC 8652:@Chg{Version=[4],New=[2012],Old=[1995]}(E). +ISO/IEC 8652:@Chg{Version=[4],New=[@Chg{Version=[5],New=[2023],Old=[2012]}],Old=[1995]}(E). The International Standard is derived from the Ada Reference Manual, with various -non-normative changes. In particular, the International Standard omits the +non-normative changes. In particular, the International Standard @Chg{Version=[5],New=[numbers +clauses differently, ],Old=[]}omits the annotations and paragraph numbers, eliminates the Acknowledgements, and modifies various front matter such as the Title page and the Foreword.]} + +@begin{Discussion} + @ChgRef{Version=[5],Kind=[AddedNormal]} + @ChgAdded{Version=[5],Text=[New ISO requirements necessitated changing the numbers of + all of the numbered clauses and subclauses in the International Standard. The + Ada Reference Manual retains its traditional numbering of clauses and subclauses + as it is common for existing material (both printed and electronic) to refer to + subclauses just by number.]} +@end{Discussion} @end{AARMOnly} @begin{RMOnly} @ChgRef{Version=[2],Kind=[Added]} @ChgRef{Version=[4],Kind=[RevisedAdded]} +@ChgRef{Version=[5],Kind=[RevisedAdded]} @ChgAdded{Version=[2],Text=[This document is the Ada Reference Manual. The International Standard for the programming language Ada is -ISO/IEC 8652:@Chg{Version=[4],New=[2012],Old=[1995]}(E). +ISO/IEC 8652:@Chg{Version=[4],New=[@Chg{Version=[5],New=[2023],Old=[2012]}],Old=[1995]}(E). The International Standard is derived from the Ada Reference Manual, with various -non-normative changes. In particular, the International Standard omits paragraph +non-normative changes. In particular, the International Standard @Chg{Version=[5],New=[numbers +clauses differently, ],Old=[]}omits paragraph numbers, eliminates the Acknowledgements, and modifies various front matter such as the Title page and the Foreword.]} @end{RMOnly} @@ -51,10 +64,11 @@ Reference Manual is always a single document.]} @ChgRef{Version=[2],Kind=[Added]} @ChgRef{Version=[4],Kind=[RevisedAdded]} -@ChgAdded{Version=[2],Text=[In @Chg{Version=[4],New=[June 2015],Old=[September 2000]}, +@ChgRef{Version=[5],Kind=[DeletedAddedNoDelMsg]} +@ChgAdded{Version=[2],Text=[@Chg{Version=[5],New=[],Old=[In @Chg{Version=[4],New=[June 2015],Old=[September 2000]}, WG 9 approved and forwarded Technical Corrigendum 1 to SC 22 for ISO approval, which was granted in @Chg{Version=[4],New=[December 2015],Old=[February 2001]}. Technical -Corrigendum 1 was published in @Chg{Version=[4],New=[February 2016],Old=[June 2001]}.]} +Corrigendum 1 was published in @Chg{Version=[4],New=[February 2016],Old=[June 2001]}.]}]} @ChgRef{Version=[2],Kind=[Added]} @ChgRef{Version=[3],Kind=[RevisedAdded]} @@ -65,10 +79,8 @@ June 2016, WG 9 approved a tentative schedule for the preparation of an Amendment or Revision to the International Standard, with a delivery no earlier than 2018. In July 2019, WG 9 approved an additional review and prototyping period for this revision, extending the delivery to no earlier -than late 2020. The draft standard was delivered to WG 9 in July 2021, with -publication expected in the summer of 2022. -@Comment{For the purposes of this document, we'll call this -Ada 2022, even though the final timing and form has not yet been determined.}],Old=[]}],Old=[In +than late 2020. The draft standard was delivered to WG 9 in July 2021, and the +Standard was published as ISO/IEC 8652:2023 in May 2023.],Old=[]}],Old=[In October 2002, WG 9 approved a schedule and guidelines for the preparation of an Amendment to the International Standard. WG 9 approved the scope of the Amendment in June 2004. In April 2006, WG 9 @@ -77,23 +89,33 @@ in August 2006. Final ISO/IEC approval @Chg{Version=[3],New=[came in January 200 and the Amendment was published as ISO/IEC 8652:1995/Amd 1:2007(E) in March],Old=[is expected by early]} 2007.]}]} -@ChgRef{Version=[2],Kind=[Added]} -@ChgRef{Version=[3],Kind=[RevisedAdded]} -@ChgRef{Version=[4],Kind=[RevisedAdded]} -@ChgRef{Version=[5],Kind=[RevisedAdded]} -@ChgAdded{Version=[2],Text=[This version of the Ada Reference Manual shows the current -state of Ada@Chg{Version=[5],New=[ 2022. As Ada 2022 is still under development, features -are still subject to change],Old=[@Chg{Version=[3],New=[ 2012@Chg{Version=[4],New=[ -including the changes included in Technical Corrigendum 1],Old=[]}],Old=[, -including the changes of Technical Corrigendum 1 and Amendment 1]}]}.]} +@ChgRef{Version=[6],Kind=[Added]} +@ChgAdded{Version=[6],Text=[Since the +completion of Ada 2022, work has continued on Ada, both to correct errors and to add +small enhancements. Currently, there has been no determination of when or in what +form these changes will be issued. However, it is valuable to have all of the +corrections available in one place. Thus, we've created this draft update, which +for the purposes of this document, we'll Ada 202y.]} -@Comment +language.]} + +@Comment + diff --git a/source/rt.mss b/source/rt.mss index cfd16782..e691edae 100644 --- a/source/rt.mss +++ b/source/rt.mss @@ -1,7 +1,7 @@ @Comment{ $Source: e:\\cvsroot/ARM/Source/rt.mss,v $ } -@comment{ $Revision: 1.137 $ $Date: 2023/01/05 05:49:10 $ $Author: randy $ } +@comment{ $Revision: 1.138 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @Part(realtime, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:10 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledNormativeAnnex{Real-Time Systems} @@ -591,9 +591,12 @@ instance of a generic unit.@PDefn{generic contract issue}]} @begin{RunTime} @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00321-01]} +@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0454-1]} A task @Chg{Version=[2],New=[can become],Old=[runs (that is, it becomes]} a @i{running task}@Chg{Version=[2],New=[],Old=[)]} only @Chg{Version=[2], -New=[if],Old=[when]} it is ready (see @Chg{Version=[2],New=[@RefSecNum{Tasks and Synchronization}], +New=[if],Old=[when]} it is ready (see +@Chg{Version=[2],New=[@Chg{Version=[5],New=[@RefSecFullNum{Tasks and Synchronization}], +Old=[@RefSecNum{Tasks and Synchronization}]}], Old=[@RefSecNum{Task Execution - Task Activation}]}) and the execution resources required by that task are available. Processors are allocated to tasks based on each task's active priority. @@ -2340,11 +2343,11 @@ follows the existing rules for ceiling locking.],Old=[]}]} @end{Diffword2005} @begin{Incompatible2012} - @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0230-1]} + @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0005-1],ARef=[AI12-0230-1]} @ChgAdded{Version=[5],Text=[@Defn{incompatiblities with Ada 2012}The policy EDF_Across_Priorities was replaced by EDF_Within_Priorities. A program using EDF_Across_Priorities could fail to compile. However, we - not are aware of any implementations of EDF_Across_Priorities, so it + are not aware of any implementations of EDF_Across_Priorities, so it seems unlikely that any such programs exist outside of books and papers.]} @end{Incompatible2012} @@ -2674,8 +2677,8 @@ are blocked during that time. @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0447-1]} @Chg{Version=[5],New=[As described in @RefSecNum{Protected Procedure Handlers}, -a check is made whenever an interrupt is handled by one of the protected -procedures of a protected object that its],Old=[The]} ceiling priority +whenever an interrupt is handled by one of the protected procedures of a + protected object, a check is made that its],Old=[The]} ceiling priority @Chg{Version=[5],New=[is],Old=[of a protected object has to be]} in the Interrupt_Priority range@Chg{Version=[5],New=[],Old=[ if one of its procedures is to be used as an interrupt handler (see @RefSecNum{Interrupt Support})]}. @@ -3130,7 +3133,7 @@ or requeue.@Defn2{Term=[Program_Error],Sec=(raised by failure of runtime check)} Defined the new queuing policy Ordered_FIFO_Queuing.]} @ChgRef{Version=[5],Kind=[AddedNormal],ARef=[AI12-0164-1]} - @ChgAdded{Version=[5],Text=[Defined the new aspect Max_Enty_Queue_Length.]} + @ChgAdded{Version=[5],Text=[Defined the new aspect Max_Entry_Queue_Length.]} @end{Extend2012} diff --git a/source/safety.mss b/source/safety.mss index e79a779e..fecffa03 100644 --- a/source/safety.mss +++ b/source/safety.mss @@ -1,8 +1,8 @@ @Comment{ $Source: e:\\cvsroot/ARM/Source/safety.mss,v $ } -@Comment{ $Revision: 1.78 $ $Date: 2023/01/05 05:49:10 $ $Author: randy $ } +@Comment{ $Revision: 1.79 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @Part(safety, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:10 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledRevisedNormativeAnnex{Version=[2], New=[High Integrity Systems], Old=[Safety and Security]} @@ -1461,6 +1461,7 @@ controlled part.]} +@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only} @LabeledAddedClause{Version=[2],Name=[Pragma Detect_Blocking]} @begin{Intro} diff --git a/source/sp.mss b/source/sp.mss index acdb2570..be9ed509 100644 --- a/source/sp.mss +++ b/source/sp.mss @@ -1,7 +1,7 @@ @comment{ $Source: e:\\cvsroot/ARM/Source/sp.mss,v $ } -@comment{ $Revision: 1.100 $ $Date: 2023/01/05 05:49:10 $ $Author: randy $ } +@comment{ $Revision: 1.101 $ $Date: 2023/10/04 05:40:21 $ $Author: randy $ } @Part(sysprog, Root="ada.mss") -@Comment{$Date: 2023/01/05 05:49:10 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledNormativeAnnex{Systems Programming} @@ -2804,9 +2804,11 @@ The function Current_Task returns a value that identifies the calling task. @ChgAdded{Version=[3],Text=[The function Environment_Task returns a value that identifies the environment task.]} +@ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0454-1]} The effect of Abort_Task is the same as the @nt{abort_statement} for the task identified by T. @Redundant[In addition, if T identifies the -environment task, the entire partition is aborted, See @RefSecNum{Partitions}.] +environment task, the entire partition is aborted, +@Chg{Version=[5],New=[see],Old=[See]} @RefSecNum{Partitions}.] The functions Is_Terminated and Is_Callable return the value of the corresponding attribute of the task identified by T. diff --git a/source/syntax.mss b/source/syntax.mss index cea817a8..fb578877 100644 --- a/source/syntax.mss +++ b/source/syntax.mss @@ -1,10 +1,10 @@ @Part(syntax, Root="ada.mss") -@Comment{$Date: 2022/06/21 06:08:04 $} +@Comment{$Date: 2023/10/04 05:40:21 $} @LabeledInformativeAnnex{Syntax Summary} @comment{$Source: e:\\cvsroot/ARM/Source/syntax.mss,v $} -@comment{$Revision: 1.23 $} +@comment{$Revision: 1.24 $} @NoParaNum@;This Annex summarizes the complete syntax of the language. @@ -27,6 +27,7 @@ description of the notation used. @SyntaxSummary +@NotIsoRMNewPageVer{Version=[5]}@Comment{For printed Ada 2022 RM only} @LabeledClause{Syntax Cross Reference}@ChgNote{This was not a clause until Ada 2022, but it probably always should have been in the TOC and a separate HTML file} diff --git a/source/title.mss b/source/title.mss index 8e091e04..f199a13d 100644 --- a/source/title.mss +++ b/source/title.mss @@ -1,7 +1,7 @@ @Part(title, Root="ada.mss") @comment{$Source: e:\\cvsroot/ARM/Source/title.mss,v $} -@comment{$Revision: 1.97 $ $Date: 2023/01/05 05:49:11 $} +@comment{$Revision: 1.98 $ $Date: 2023/10/04 05:40:21 $} @begin{ISOOnly} @Noparanum@Right{@Swiss{@Grow{@Chg{Version=[3],New=[@b{ISO/IEC JTC 1/SC 22 N}],Old=[@B{INTERNATIONAL STANDARD} ISO/IEC 8652:@Chg{Version=[2],New=[2007(E) Ed. 3],Old=[1995(E)@Chg{Version=[1], New=[ with COR.1:2001], Old=[]}]}]}}}} @@ -15,7 +15,7 @@ @end{ISOOnly} @begin{NotISO} @Comment{@Noparanum@Right{@Swiss{@Grow{@B{Ada Reference Manual}, ISO/IEC 8652:@Chg{Version=[3],New=[@Chg{Version=[5],New=[2022(E)],Old=[2012(E)@Chg{Version=[4], New=[ with COR.1:2016],Old=[]}]}],Old=[@Chg{Version=[2],New=[2007(E) Ed. 3],Old=[1995(E)@Chg{Version=[1], New=[ with COR.1:2001], Old=[]}]}]}}}}} -@Noparanum@Right{@Swiss{@Grow{@B{Ada Reference Manual}, @Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],Old=[2012]}],Old=[@Chg{Version=[2],New=[2007],Old=[1995]}]} Edition@Chg{Version=[5],New=<, Draft 35>,Old=[]}}}} +@Noparanum@Right{@Swiss{@Grow{@B{Ada Reference Manual}, @Chg{Version=[3],New=[@Chg{Version=[5],New=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[2012]}],Old=[@Chg{Version=[2],New=[2007],Old=[1995]}]} Edition@Chg{Version=[6],New=<, Draft 1>,Old=[]}}}} @end{NotISO} @Noparanum@ @* @@ -42,16 +42,14 @@ End comment} @Noparanum@ @;@comment{A dummy paragraph containing just a blank} @begin{NotISO} -@Noparanum@ @*@;@comment{A dummy paragraph containing three blank lines} -@ @* -@ @* +@Noparanum@ @*@;@comment{A dummy paragraph containing two blank lines} @ @* @end{NotISO} @begin{ISOOnly} @Comment{Jim Moore wanted this deleted in the consolidated editions, as it is confusing.} -@Noparanum@Chg{Version=[5],New=[@Swiss{Revision of third edition (ISO/IEC 8652:2012)}],Old=[Chg{Version=[3],New=[@Swiss{Revision of second edition (ISO/IEC 8652:1995)}],Old=[@Chg{New=[@ @*@Comment{Dummy paragraph}], +@Noparanum@Chg{Version=[5],New=[@Chg{Version=[6],New=[@Swiss{Revision of fourth edition (ISO/IEC 8652:2023)}],Old=[@Swiss{Revision of third edition (ISO/IEC 8652:2012)}]}],Old=[Chg{Version=[3],New=[@Swiss{Revision of second edition (ISO/IEC 8652:1995)}],Old=[@Chg{New=[@ @*@Comment{Dummy paragraph}], Old=[@Swiss{[Revision of first edition (ISO 8652:1987)]}]}]}]} @end{ISOOnly} @@ -67,10 +65,10 @@ End comment} @Noparanum@ @;@comment{A dummy paragraph containing just a blank} -@Noparanum@Center{@Swiss{@Grow{@Chg{Version=[5],New=[2022],Old=[@Chg{Version=[3],New=[2012],Old=[1995]}]} Edition@Chg{Version=[5],New=<, Draft 35>,Old=[]}}}} +@Noparanum@Center{@Swiss{@Grow{@Chg{Version=[5],New=[@Chg{Version=[6],New=[202y],Old=[2022]}],Old=[@Chg{Version=[3],New=[2012],Old=[1995]}]} Edition@Chg{Version=[6],New=<, Draft 1>,Old=[]}}}} @Noparanum@Center{@Swiss{@Chg{Version=[3],New=[@Chg{Version=[4],New=[@Chg{Version=[5],New=[],Old=[@Grow{with 2016 corrections}]}],Old=[]}],Old=[@Chg{Version=[1], New=[@Grow{with 2001 corrections}], Old=[]}]}}} @Noparanum@Center{@Swiss{@Chg{Version=[3],New=[],Old=[@Chg{Version=[2], New=[@Grow{and 2007 Amendment}], Old=[]}]}}} -@Comment{@Noparanum@Center{@Swiss{@Grow{ISO/IEC 8652:@Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],Old=[2012]}],Old=[1995]}(E)@Chg{Version=[5],New=<, Draft 35>,Old=[]}}}}} +@Comment{@Noparanum@Center{@Swiss{@Grow{ISO/IEC 8652:@Chg{Version=[3],New=[@Chg{Version=[5],New=[2022],Old=[2012]}],Old=[1995]}(E)}}}} @Comment{@Noparanum@Center{@Swiss{@Chg{Version=[3],New=[@Chg{Version=[4],New=[@Chg{Version=[5],New=[],Old=[@Grow{with Technical Corrigendum 1}]}],Old=[]}],Old=[@Chg{Version=[1], New=[@Grow{with Technical Corrigendum 1}], Old=[]}]}}}} @Comment{@Noparanum@Center{@Swiss{@Chg{Version=[3],New=[],Old=[@Chg{Version=[2], New=[@Grow{and Amendment 1}], Old=[]}]}}}} @end{NotISO} @@ -91,7 +89,7 @@ End comment} @Noparanum@;@Chg{Version=[2], New=[Copyright @Latin1(169) 2004, 2005, 2006 Ada-Europe], Old=[]} -@Noparanum@;@Chg{Version=[3], New=[Copyright @Latin1(169) 2008, 2009, 2010, 2011, 2012@Chg{Version=[4], New=[, 2013, 2014, 2015, 2016@Chg{Version=[5], New=[, 2017, 2018, 2019, 2020, 2021, 2022],Old=[]}],Old=[]} AXE Consultants], Old=[]} +@Noparanum@;@Chg{Version=[3], New=[Copyright @Latin1(169) 2008, 2009, 2010, 2011, 2012@Chg{Version=[4], New=[, 2013, 2014, 2015, 2016@Chg{Version=[5], New=[, 2017, 2018, 2019, 2020, 2021, 2022, 2023@Chg{Version=[6], New=[, 2024],Old=[]}],Old=[]}],Old=[]} AXE Consultants], Old=[]} @end{NotISO} @begin{ISOOnly} @Comment{The following is not needed in the final Standard: @@ -227,7 +225,7 @@ EVEN IF AXE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.], Old=[]} @Noparanum@;@Chg{Version=[5], New=[@b{Fourth Edition (Ada 2022)}], Old=[]} -@Noparanum@;@Chg{Version=[5], New=[Copyright @Latin1(169) 2016, 2017, 2018, 2019, 2020, 2021, 2022 AXE Consultants. All Rights Reserved.], Old=[]} +@Noparanum@;@Chg{Version=[5], New=[Copyright @Latin1(169) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 AXE Consultants. All Rights Reserved.], Old=[]} @Noparanum@;@Chg{Version=[5], New=[This document may be copied, in whole or in part, in any form or by any means, as is, or with alterations, provided that (1) alterations are clearly marked as @@ -248,6 +246,29 @@ OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL AXE BE LIABLE FOR ANY GENERAL, CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL DAMAGES, EVEN IF AXE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.], Old=[]} +@Noparanum@;@Chg{Version=[6], New=[@b{Fifth Edition (Ada 202y)}], Old=[]} + +@Noparanum@;@Chg{Version=[6], New=[Copyright @Latin1(169) 2023, 2024 AXE Consultants. All Rights Reserved.], Old=[]} + +@Noparanum@;@Chg{Version=[6], New=[This document may be copied, in whole or in part, in any form or by any means, +as is, or with alterations, provided that (1) alterations are clearly marked as +alterations and (2) this copyright notice is included unmodified in any copy. +Any other use or distribution of this document is prohibited +without the prior express permission of AXE.], Old=[]} + +@Noparanum@;@Chg{Version=[6], New=[You use this document on the condition that +you indemnify and hold harmless AXE, its board, officers, agents, and +employees, from any and all liability or damages to yourself or your hardware +or software, or third parties, including attorneys' fees, court costs, and +other related costs and expenses, arising out of your use of this document +irrespective of the cause of said liability.], Old=[]} + +@Noparanum@;@Chg{Version=[6], New=[AXE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO WARRANTY, +EXPRESS OR IMPLIED, AS TO THE ACCURACY, CAPABILITY, EFFICIENCY MERCHANTABILITY, +OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL AXE BE LIABLE FOR ANY +GENERAL, CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL DAMAGES, +EVEN IF AXE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.], Old=[]} + @Noparanum@;@ @;@comment{A dummy paragraph containing just a blank} @Noparanum@;@Chg{Version=[2], New=[@b{Ada 2005 Consolidated Reference Manual}], Old=[]}