--- ais/ai-00434.txt 2005/08/21 06:00:41 1.1 +++ ais/ai-00434.txt 2005/10/31 05:18:44 1.2 @@ -1,4 +1,4 @@ -!standard C.3 (23) 05-08-17 AI95-00434/01 +!standard C.3 (23) 05-09-20 AI95-00434/02 !standard C.3 (26) !standard C.3 (28) !standard C.3.1 (07) @@ -10,12 +10,28 @@ !standard C.7.2 (26) !standard C.7.2 (30) !standard C.7.2 (33) +!standard 7.1 (05) +!standard 7.1 (06) !standard 11.5 (13) !standard 12.1 (08) +!standard 13.13.2 (08.1) +!standard 13.13.2 (25) !standard A (03) !standard A.1 (11) !standard A.1 (20) +!standard A.5.2 (53) !standard C.2 (01) +!standard F (05) +!standard F.3 (18) +!standard G.1.1 (26) +!standard G.1.2 (02) +!standard G.1.2 (41) +!standard G.1.3 (28) +!standard G.2.6 (6) +!standard G.2.6 (13) +!standard H.1 (5) +!standard H.1 (6) +!standard H.3.2 (5) !class presentation 05-08-17 !status Amendment 200Y 05-08-17 !comment This AI is not yet approved, but is included in the Amendment. @@ -74,6 +90,34 @@ 18) In C.7.2(30), "task's attributes" is confusing, does it make "task attributes" or does it mean "attributes of a task"? +19) In G.1.2(2), "pragma" should be in boldface in "pragma Pure". + +20) In A.5.2(53), there is an extra right paren. + +21) This list of items in F(5) isn't in any logical order (neither section nor +alphabetical order). + +22) The currency symbol "FF" is obsolete (in F.3(18)). + +23) G.1.2(41) is confused; it needs to somehow say "When the parameter X +has the value 1.0, ..." + +24) G.1.3(28) should say "file" rather than "line" terminator. + +25) In G.2.6(13), "takes precedence to" is strange. + +26) In H.1(5 and 6), subtypes don't have an initial value. + +27) In H.3.2(5), objects are "visible". + +28) Table numbers are missing from Annex G tables. + +29) In 7.1(5-6), there are no declarative_items in a package spec. + +30) 13.13.2(8.1) and 13.13.2(25) are inscrutable. + +31) "Cartesian" should be capitalized in G.1.1(26), . + !recommendation (See summary.) @@ -95,7 +139,9 @@ 5) Yes, this should be a bullet. -6) Replace "that one of its procedures" with "for which one of its procedures". +6) Reorganize the start of the sentence to read: "A protected object that has a +(protected) procedure attached to an interrupt should have a ceiling priority +at least as high..." 7) Remove the comma. @@ -125,34 +171,122 @@ 18) It means "attributes of a task". +19) Keywords in program text should always be in boldface. + +20) Delete the last right paren. + +21) Put the items into section order. + +22) Replace "FF" by "kr" (Danish), as that is still in use and doesn't require changing +the examples. + +23) There are two ways to do this: Make the second half of 38 and 41 subbullets, and +make 39 and 40 subsubbullets, or duplicate the text in 41. We chose the latter +as the former is a lot of change that isn't much clearer. + +24) A.10.9(28) uses file terminator for this; the rules ought to match. + +25) This should be "takes precedence over". + +26) Objects have an initial value, add "an object of". + +27) Declarations are visible, add "the declaration of". + +28) ISO requires that the tables be numbered. Moreover, the ones in Annex F +*are* numbered. So we add numbers to the Annex G tables, and change the +references to the use the numbers. + +29) These should say "basic_declarative_items". + +30) Reorganize this text to make it clearer that these paragraphs are +talking about the default implementations. + +31) Yes, capitalize "Cartesian". + +!corrigendum 7.1(05) + +@drepl +A @fa<package_declaration> or @fa<generic_package_declaration> requires a +completion (a body) if it contains any @fa<declarative_item> that requires a +completion, but whose completion is not in its @fa<package_specification>. +@dby +A @fa<package_declaration> or @fa<generic_package_declaration> requires a +completion (a body) if it contains any @fa<basic_declarative_item> that requires a +completion, but whose completion is not in its @fa<package_specification>. + +!corrigendum 7.1(06) + +@drepl +The first list of @fa<declarative_item>s of a @fa<package_specification> of a +package other than a generic formal package is called the @i<visible part> of +the package. The optional list of @fa<declarative_item>s after the reserved +word @b<private> (of any @fa<package_specification>) is called the @i<private +part> of the package. If the reserved word @b<private> does not appear, the +package has an implicit empty private part. +@dby +The first list of @fa<basic_declarative_item>s of a @fa<package_specification> +of a package other than a generic formal package is called the @i<visible part> +of the package. The optional list of @fa<basic_declarative_item>s after the +reserved word @b<private> (of any @fa<package_specification>) is called the +@i<private part> of the package. If the reserved word @b<private> does not +appear, the package has an implicit empty private part. + !corrigendum 11.5(13) @drepl -@xhang<@xtern<Division_Check> +@xhang<@xterm<Division_Check> Check that the second operand is not zero for the operations /, rem and mod.> @dby -@xhang<@xtern<Division_Check> +@xhang<@xterm<Division_Check> Check that the second operand is not zero for the operations /, @b<rem> and @b<mod>.> !corrigendum 12.1(08) @drepl -A @fa<generic_declaration> declares a generic unit - a generic package, +A @fa<generic_declaration> declares a generic unit @emdash a generic package, generic procedure or generic function, as appropriate. @dby -A @fa<generic_declaration> declares a generic unit - a generic package, +A @fa<generic_declaration> declares a generic unit @emdash a generic package, generic procedure, or generic function, as appropriate. +!corrigendum 13.13.02(8.1) + +@drepl +For untagged derived types, the Write and Read attributes of the parent type +are inherited as specified in 13.1; otherwise, the default implementations of +these attributes are used. +The default implementations of Write and Read attributes execute as follows: +@dby +For untagged derived types, the default implementations +of the Write and Read attributes are inherited from +the parent type as specified in 13.1; for other types, +the default implementations of Write and Read attributes +execute as follows: + +!corrigendum 13.13.02(25) + +@drepl +For untagged derived types, the Output and Input attributes of the parent type +are inherited as specified in 13.1; otherwise, the default implementations of +these attributes are used. The default implementations of Output and Input +attributes execute as follows: +@dby +For untagged derived types, the default implementations +of the Output and Input attributes are inherited from +the parent type as specified in 13.1; for other types, +the default implementations of Output and Input attributes +execute as follows: + !corrigendum A(03) @drepl The implementation shall ensure that each language defined subprogram is -reentrant the sense that concurrent calls on the same subprogram perform as +reentrant in the sense that concurrent calls on the same subprogram perform as specified, so long as all parameters that could be passed by reference denote nonoverlapping objects. @dby The implementation shall ensure that each language-defined subprogram is -reentrant the sense that concurrent calls on the same subprogram perform as +reentrant in the sense that concurrent calls on the same subprogram perform as specified, so long as all parameters that could be passed by reference denote nonoverlapping objects. @@ -174,6 +308,13 @@ @xcode< -- @ft<@i<The floating point type root_real and the>> -- @ft<@i<corresponding universal type universal_real are predefined.>>> +!corrigendum A.05.02(53) + +@drepl +@xcode<-Log(Random(G) + Float'Model_Small))> +@dby +@xcode<-Log(Random(G) + Float'Model_Small)> + !corrigendum C.02(01) @drepl @@ -235,13 +376,13 @@ If the Ceiling_Locking policy (see D.3) is in effect then upon the initialization of a protected object that either an Attach_Handler or Interrupt_Handler pragma applies to one of its procedures, a check is made that -the ceiling priority defined in the protected_definition is in the range of +the ceiling priority defined in the @fa<protected_definition> is in the range of System.Interrupt_Priority. If the check fails, Program_Error is raised. @dby If the Ceiling_Locking policy (see D.3) is in effect, then upon the initialization of a protected object for which either an Attach_Handler or Interrupt_Handler pragma applies to one of its procedures, a check is made that -the ceiling priority defined in the protected_definition is in the range of +the ceiling priority defined in the @fa<protected_definition> is in the range of System.Interrupt_Priority. If the check fails, Program_Error is raised. !corrigendum C.03.01(16) @@ -250,7 +391,7 @@ @xindent<1. The worst case overhead for an interrupt handler that is a parameterless protected procedure, in clock cycles. This is the execution time not directly attributable to the handler procedure or the interrupted -execution. It is estimated as C - (A+B), where A is how long it takes to +execution. It is estimated as C @endash (A+B), where A is how long it takes to complete a given sequence of instructions without any interrupt, B is how long it takes to complete a normal call to a given protected procedure, and C is how long it takes to complete the same sequence of instructions when it is @@ -259,7 +400,7 @@ @xbullet<The worst-case overhead for an interrupt handler that is a parameterless protected procedure, in clock cycles. This is the execution time not directly attributable to the handler procedure or the interrupted -execution. It is estimated as C - (A+B), where A is how long it takes to +execution. It is estimated as C @endash (A+B), where A is how long it takes to complete a given sequence of instructions without any interrupt, B is how long it takes to complete a normal call to a given protected procedure, and C is how long it takes to complete the same sequence of instructions when it is @@ -272,9 +413,9 @@ procedures is attached to an interrupt should be at least as high as the highest processor priority at which that interrupt will ever be delivered.>> @dby -@xindent<@s9<5 The ceiling priority of a protected object for which one of -its procedures is attached to an interrupt should be at least as high as the -highest processor priority at which that interrupt will ever be delivered.>> +@xindent<@s9<5 A protected object that has a (protected) procedure attached to an +interrupt should have a ceiling priority at least as high as the highest +processor priority at which that interrupt will ever be delivered.>> !corrigendum C.03.02(22) @@ -366,12 +507,229 @@ subprogram of an instance of this package) identifies a nonexistent task, the execution of the program is erroneous.>> +!corrigendum F(5) +@drepl +See also: 3.5.9, "Fixed Point Types"; 3.5.10, "Operations of Fixed Point +Types"; 4.6, "Type Conversions"; 13.3, "Operational and Representation +Attributes"; A.10.9, "Input-Output for Real Types"; B.4, "Interfacing with +COBOL"; B.3, "Interfacing with C and C++"; Annex G, "Numerics". +@dby +See also: 3.5.9, "Fixed Point Types"; 3.5.10, "Operations of Fixed Point +Types"; 4.6, "Type Conversions"; 13.3, "Operational and Representation +Attributes"; A.10.9, "Input-Output for Real Types"; B.3, +"Interfacing with C and C++"; B.4, "Interfacing with +COBOL"; Annex G, "Numerics". + +!corrigendum F.3(18) + +@drepl +An example of a picture String is "<###Z_ZZ9.99>". If the currency string is +"FF", the separator character is ',', and the radix mark is '.' then the edited +output string values for the decimal values 32.10 and @endash5432.10 are +"bbFFbbb32.10b" and "(bFF5,432.10)", respectively, where 'b' indicates the +space character. +@dby +An example of a picture String is "<###Z_ZZ9.99>". If the currency string is +"kr", the separator character is ',', and the radix mark is '.' then the edited +output string values for the decimal values 32.10 and @endash5432.10 are +"bbkrbbb32.10b" and "(bkr5,432.10)", respectively, where 'b' indicates the +space character. + +!corrigendum G.01.01(26) + +@drepl +Complex is a visible type with cartesian components. +@dby +Complex is a visible type with Cartesian components. + +!corrigendum G.01.01(56) + +@drepl +Implementations may obtain the result of exponentiation of a complex or +pure-imaginary operand by repeated complex multiplication, with arbitrary +association of the factors and with a possible final complex reciprocation +(when the exponent is negative). Implementations are also permitted to obtain +the result of exponentiation of a complex operand, but not of a pure-imaginary +operand, by converting the left operand to a polar representation; +exponentiating the modulus by the given exponent; multiplying the argument by +the given exponent; and reconverting to a cartesian representation. Because of +this implementation freedom, no accuracy requirement is imposed on complex +exponentiation (except for the prescribed results given above, which apply +regardless of the implementation method chosen). +@dby +Implementations may obtain the result of exponentiation of a complex or +pure-imaginary operand by repeated complex multiplication, with arbitrary +association of the factors and with a possible final complex reciprocation +(when the exponent is negative). Implementations are also permitted to obtain +the result of exponentiation of a complex operand, but not of a pure-imaginary +operand, by converting the left operand to a polar representation; +exponentiating the modulus by the given exponent; multiplying the argument by +the given exponent; and reconverting to a Cartesian representation. Because of +this implementation freedom, no accuracy requirement is imposed on complex +exponentiation (except for the prescribed results given above, which apply +regardless of the implementation method chosen). + + +!corrigendum G.01.02(2) + +@drepl +@xcode<@b<with> Ada.Numerics.Generic_Complex_Types; +@b<generic> + @b<with package> Complex_Types @b<is> + @b<new> Ada.Numerics.Generic_Complex_Types (<@>); + @b<use> Complex_Types; +@b<package> Ada.Numerics.Generic_Complex_Elementary_Functions @b<is> + pragma Pure(Generic_Complex_Elementary_Functions);> +@dby +@xcode<@b<with> Ada.Numerics.Generic_Complex_Types; +@b<generic> + @b<with package> Complex_Types @b<is> + @b<new> Ada.Numerics.Generic_Complex_Types (<@>); + @b<use> Complex_Types; +@b<package> Ada.Numerics.Generic_Complex_Elementary_Functions @b<is> + @b<pragma> Pure(Generic_Complex_Elementary_Functions);> + +!corrigendum G.01.02(41) + +@drepl +@xbullet<the Log function yields an imaginary result; and the Arcsin and Arccos +functions yield a real result.> +@dby +@xbullet<When the parameter X has the value @endash1.0, the Log function yields an +imaginary result; and the Arcsin and Arccos functions yield a real result.> + +!corrigendum G.01.03(28) + +@drepl +@xindent<Reads a complex value from the beginning of the given string, +following the same rule as the Get procedure that reads a complex value from a +file, but treating the end of the string as a line terminator. Returns, in the +parameter Item, the value of type Complex that corresponds to the input +sequence. Returns in Last the index value such that From(Last) is the last +character read.> +@dby +@xindent<Reads a complex value from the beginning of the given string, +following the same rule as the Get procedure that reads a complex value from a +file, but treating the end of the string as a file terminator. Returns, in the +parameter Item, the value of type Complex that corresponds to the input +sequence. Returns in Last the index value such that From(Last) is the last +character read.> + +!corrigendum G.02.04(11) + +@drepl +The prescribed results specified in A.5.1 for certain +functions at particular parameter values take precedence over the maximum +relative error bounds; effectively, they narrow to a single value the result +interval allowed by the maximum relative error bounds. Additional rules with a +similar effect are given by the table below for the inverse trigonometric +functions, at particular parameter values for which the mathematical result is +possibly not a model number of @i<EF>.Float_Type (or is, indeed, even +transcendental). In each table entry, the values of the parameters are such +that the result lies on the axis between two quadrants; the corresponding +accuracy rule, which takes precedence over the maximum relative error bounds, +is that the result interval is the model interval of @i<EF>.Float_Type +associated with the exact mathematical result given in the table. +@dby +The prescribed results specified in A.5.1 for certain +functions at particular parameter values take precedence over the maximum +relative error bounds; effectively, they narrow to a single value the result +interval allowed by the maximum relative error bounds. Additional rules with a +similar effect are given by table G-1 for the inverse trigonometric +functions, at particular parameter values for which the mathematical result is +possibly not a model number of @i<EF>.Float_Type (or is, indeed, even +transcendental). In each table entry, the values of the parameters are such +that the result lies on the axis between two quadrants; the corresponding +accuracy rule, which takes precedence over the maximum relative error bounds, +is that the result interval is the model interval of @i<EF>.Float_Type +associated with the exact mathematical result given in the table. + +!corrigendum G.02.06(06) + +@drepl +The error bounds for particular complex functions are tabulated below. +In the table, the error bound is given as the coefficient of +@i<CT>.Real'Model_Epsilon. +@dby +The error bounds for particular complex functions are tabulated in table +G-2. In the table, the error bound is given as the coefficient of +@i<CT>.Real'Model_Epsilon. + +!corrigendum G.02.06(13) + +@drepl +The amount by which a component of the result of an inverse trigonometric or +inverse hyperbolic function is allowed to spill over into a quadrant adjacent +to the one corresponding to the principal branch, as given in G.1.2, is +limited. The rule is that the result belongs to the smallest model interval of +@i<CT>.Real that contains both boundaries of the quadrant corresponding to the +principal branch. This rule also takes precedence to the maximum error bounds, +effectively narrowing the result interval allowed by them. +@dby +The amount by which a component of the result of an inverse trigonometric or +inverse hyperbolic function is allowed to spill over into a quadrant adjacent +to the one corresponding to the principal branch, as given in G.1.2, is +limited. The rule is that the result belongs to the smallest model interval of +@i<CT>.Real that contains both boundaries of the quadrant corresponding to the +principal branch. This rule also takes precedence over the maximum error bounds, +effectively narrowing the result interval allowed by them. + +!corrigendum H.01(05) + +@drepl +If a @fa<pragma> Normalize_Scalars applies, the implementation shall document +the implicit initial value for scalar subtypes, and shall identify each case in +which such a value is used and is not an invalid representation. +@dby +If a @fa<pragma> Normalize_Scalars applies, the implementation shall document +the implicit initial value for objects of scalar subtypes, and shall identify +each case in which such a value is used and is not an invalid representation. + +!corrigendum H.01(06) + +@drepl +Whenever possible, the implicit initial value for a scalar subtype should be an +invalid representation (see 13.9.1). +@dby +Whenever possible, the implicit initial value for an object of a scalar subtype +should be an invalid representation (see 13.9.1). + +!corrigendum H.03.02(05) + +@drepl +An @i<inspection point> is a point in the object code corresponding to the +occurrence of a pragma Inspection_Point in the compilation unit. +An object is @i<inspectable> at an inspection point if the +corresponding pragma Inspection_Point either has an argument denoting that +object, or has no arguments and the object is visible at the inspection point. +@dby +An @i<inspection point> is a point in the object code corresponding to the +occurrence of a pragma Inspection_Point in the compilation unit. +An object is @i<inspectable> at an inspection point if the +corresponding pragma Inspection_Point either has an argument denoting that +object, or has no arguments and the declaration of the object is visible at the +inspection point. + + !ACATS test None needed. !appendix + +From: John Barnes +Sent: Monday, September 12, 2005 3:33 AM + +In G.1.2(2) pragma is not in bold. (Generic_Complex_Elementary_Functions) + +**************************************************************** + +From: Dan Eilers +Sent: Tuesday, August 23, 2005 7:28 PM + +There are unmatched right parens in RM 9.11(3/2), +RM A.18.2(153/2), RM A.5.2(53), and AARM G.3.2(161.b/2). ****************************************************************

Questions? Ask the ACAA Technical Agent