For documentation purposes, here is package Standard as it would be defined for PowerAda
The Ada language allows for certain machine dependences in a controlled manner. Each Ada implementation must document all implementation-defined characteristics:
- (2) - Whether or not each recommendation given in Implementation Advice is followed. See 1.1.2(37).
- (3) - Capacity limitations of the implementation. See 1.1.3(3).
- (4) - Variations from the standard that are impractical to avoid given the implementation's execution environment. See 1.1.3(6).
- (5) - Which code_statements cause external interactions. See 1.1.3(10).
- (6) - The coded representation for the text of an Ada program. See 2.1(4).
- (7) - The control functions allowed in comments. See 2.1(14).
- (8) - The representation for an end of line. See 2.2(2).
- (9) - Maximum supported line length and lexical element length. See 2.2(15).
- (10) - Implementation-defined pragmas. See 2.8(14).
- (11) - Effect of pragma Optimize. See 2.8(27).
- (12) - The sequence of characters of the value returned by S'Image when some of the graphic characters of S'Wide_Image are not defined in Character. See 3.5(37).
- (13) - The predefined integer types declared in Standard. See 3.5.4(25).
- (14) - Any nonstandard integer types and the operators defined for them. See 3.5.4(26).
- (15) - Any nonstandard real types and the operators defined for them. See 3.5.6(8).
- (16) - What combinations of requested decimal precision and range are supported for floating point types. See 3.5.7(7).
- (17) - The predefined floating point types declared in Standard. See 3.5.7(16).
- (18) - The small of an ordinary fixed point type. See 3.5.9(8).
- (19) - What combinations of small, range, and digits are supported for fixed point types. See 3.5.9(10).
- (20) - The result of Tags.Expanded_Name for types declared within an unnamed block_statement. See 3.9(10).
- (21) - Implementation-defined attributes. See 4.1.4(12).
- (22) - Any implementation-defined time types. See 9.6(6).
- (23) - The time base associated with relative delays. See 9.6(20).
- (24) - The time base of the type Calendar.Time. See 9.6(23).
- (25) - The timezone used for package Calendar operations. See 9.6(24).
- (26) - Any limit on delay_until_statements of select_statements. See 9.6(29).
- (27) - Whether or not two nonoverlapping parts of a composite object are independently addressable, in the case where packing, record layout, or Component_Size is specified for the object. See 9.10(1).
- (28) - The representation for a compilation. See 10.1(2).
- (29) - Any restrictions on compilations that contain multiple compilation_units. See 10.1(4).
- (30) - The mechanisms for creating an environment and for adding and replacing compilation units. See 10.1.4(3).
- (31) - The manner of explicitly assigning library units to a partition. See 10.2(2).
- (32) - The implementation-defined means, if any, of specifying which compilation units are needed by a given compilation unit. See 10.2(2).
- (33) - The manner of designating the main subprogram of a partition. See 10.2(7).
- (34) - The order of elaboration of library_items. See 10.2(18).
- (35) - Parameter passing and function return for the main subprogram. See 10.2(21).
- (36) - The mechanisms for building and running partitions. See 10.2(24).
- (37) - The details of program execution, including program termination. See 10.2(25).
- (38) - The semantics of any nonactive partitions supported by the implementation. See 10.2(28).
- (39) - The information returned by Exception_Message. See 11.4.1(10).
- (40) - The result of Exceptions.Exception_Name for types declared within an unnamed block_statement. See 11.4.1(12).
- (41) - The information returned by Exception_Information. See 11.4.1(13).
- (42) - Implementation-defined check names. See 11.5(27).
- (43) - The interpretation of each aspect of representation. See 13.1(20).
- (44) - Any restrictions placed upon representation items. See 13.1(20).
- (45) - The meaning of Size for indefinite subtypes. See 13.3(48).
- (46) - The default external representation for a type tag. See 13.3(75).
- (47) - What determines whether a compilation unit is the same in two different partitions. See 13.3(76).
- (48) - Implementation-defined components. See 13.5.1(15).
- (49) - If Word_Size = Storage_Unit, the default bit ordering. See 13.5.3(5).
- (50) - The contents of the visible part of package System and its language-defined children. See 13.7(2).
- (51) - The contents of the visible part of package System.Machine_Code, and the meaning of code_statements. See 13.8(7).
- (52) - The effect of unchecked conversion. See 13.9(11).
- (53) - The manner of choosing a storage pool for an access type when Storage_Pool is not specified for the type. See 13.11(17).
- (54) - Whether or not the implementation provides user-accessible names for the standard pool type(s). See 13.11(17).
- (55) - The meaning of Storage_Size. See 13.11(18).
- (56) - Implementation-defined aspects of storage pools. See 13.11(22).
- (57) - The set of restrictions allowed in a pragma Restrictions. See 13.12(7).
- (58) - The consequences of violating limitations on Restrictions pragmas. See 13.12(9).
- (59) - The representation used by the Read and Write attributes of elementary types in terms of stream elements. See 13.13.2(9).
- (60) - The names and characteristics of the numeric subtypes declared in the visible part of package Standard. See A.1(3).
- (61) - The accuracy actually achieved by the elementary functions. See A.5.1(1).
- (62) - The sign of a zero result from some of the operators or functions in Numerics.Generic_Elementary_Functions, when Float_Type'Signed_Zeros is True. See A.5.1(46).
- (63) - The value of Numerics.Float_Random.Max_Image_Width. See A.5.2(27).
- (64) - The value of Numerics.Discrete_Random.Max_Image_Width. See A.5.2(27).
- (65) - The algorithms for random number generation. See A.5.2(32).
- (66) - The string representation of a random number generator's state. See A.5.2(38).
- (67) - The minimum time interval between calls to the time-dependent Reset procedure that are guaranteed to initiate different random number sequences. See A.5.2(45).
- (68) - The values of the Model_Mantissa, Model_Emin, Model_Epsilon, Model, Safe_First, and Safe_Last attributes, if the Numerics Annex is not supported. See A.5.3(72).
- (69) - Any implementation-defined characteristics of the input-output packages. See A.7(14).
- (70) - The value of Buffer_Size in Storage_IO. See A.9(10).
- (71) - external files for standard input, standard output, and standard error. See A.10(5).
- (72) - The accuracy of the value produced by Put. See A.10.9(36).
- (73) - The meaning of Argument_Count, Argument, and Command_Name. See A.15(1).
- (74) - Implementation-defined convention names. See B.1(11).
- (75) - The meaning of link names. See B.1(36).
- (76) - The manner of choosing link names when neither the link name nor the address of an imported or exported entity is specified. See B.1(36).
- (77) - The effect of pragma Linker_Options. See B.1(37).
- (78) - The contents of the visible part of package Interfaces and its language-defined descendants. See B.2(1).
- (79) - Implementation-defined children of package Interfaces. The contents of the visible part of package Interfaces. See B.2(11).
- (80) - The types Floating, Long_Floating, Binary, Long_Binary, Decimal_Element, and COBOL_Character; and the initializations of the variables Ada_To_COBOL and COBOL_To_Ada, in Interfaces.COBOL See B.4(50).
- (81) - Support for access to machine instructions. See C.1(1).
- (82) - Implementation-defined aspects of access to machine operations. See C.1(9).
- (83) - Implementation-defined aspects of interrupts. See C.3(2).
- (84) - Implementation-defined aspects of preelaboration. See C.4(13).
- (85) - The semantics of pragma Discard_Names. See C.5(7).
- (86) - The result of the Task_Identification.Image attribute. See C.7.1(7).
- (87) - The value of Current_Task when in a protected entry or interrupt handler. See C.7.1(17).
- (88) - The effect of calling Current_Task from an entry body or interrupt handler. See C.7.1(19).
- (89) - Implementation-defined aspects of Task_Attributes. See C.7.2(19).
- (90) - Values of all Metrics. See D(2).
- (91) - The declarations of Any_Priority and Priority. See D.1(11).
- (92) - Implementation-defined execution resources. See D.1(15).
- (93) - Whether, on a multiprocessor, a task that is waiting for access to a protected object keeps its processor busy. See D.2.1(3).
- (94) - The affect of implementation defined execution resources on task dispatching. See D.2.1(9).
- (95) - Implementation-defined policy_identifiers allowed in a pragma Task_Dispatching_Policy. See D.2.2(3).
- (96) - Implementation-defined aspects of priority inversion. See D.2.2(16).
- (97) - Implementation defined task dispatching. See D.2.2(18).
- (98) - Implementation-defined policy_identifiers allowed in a pragma Locking_Policy. See D.3(4).
- (99) - Default ceiling priorities. See D.3(10).
- (100) - The ceiling of any protected object used internally by the implementation. See D.3(16).
- (101) - Implementation-defined queuing policies. See D.4(1).
- (102) - On a multiprocessor, any conditions that cause the completion of an aborted construct to be delayed later than what is specified for a single processor. See D.6(3).
- (103) - Any operations that implicitly require heap storage allocation. See D.7(8).
- (104) - Implementation-defined aspects of pragma Restrictions. See D.7(20).
- (105) - Implementation-defined aspects of package Real_Time. See D.8(17).
- (106) - Implementation-defined aspects of delay_statements. See D.9(8).
- (107) - The upper bound on the duration of interrupt blocking caused by the implementation. See D.12(5).
- (108) - The means for creating and executing distributed programs. See E(5).
- (109) - Any events that can result in a partition becoming inaccessible. See E.1(7).
- (110) - The scheduling policies, treatment of priorities, and management of shared resources between partitions in certain cases. See E.1(11).
- (111) - Events that cause the version of a compilation unit to change. See E.3(5).
- (112) - Whether the execution of the remote subprogram is immediately aborted as a result of cancellation. See E.4(13).
- (113) - Implementation-defined aspects of the PCS. See E.5(25).
- (114) - Implementation-defined interfaces in the PCS. See E.5(26).
- (115) - The values of named numbers in the package Decimal. See F.2(7).
- (116) - The value of Max_Picture_Length in the package Text_IO.Editing. See F.3.3(16).
- (117) - The value of Max_Picture_Length in the package Wide_Text_IO.Editing. See F.3.4(5).
- (118) - The accuracy actually achieved by the complex elementary functions and by other complex arithmetic operations. See G.1(1).
- (119) - The sign of a zero result (or a component thereof) from any operator or function in Numerics.Generic_Complex_Types, when Real'Signed_Zeros is True. See G.1.1(53).
- (120) - The sign of a zero result (or a component thereof) from any operator or function in Numerics.Generic_Complex_Elementary_Functions, when Complex_Types.Real'Signed_Zeros is True. See G.1.2(45).
- (121) - Whether the strict mode or the relaxed mode is the default. See G.2(2).
- (122) - The result interval in certain cases of fixed-to-float conversion. See G.2.1(10).
- (123) - The result of a floating point arithmetic operation in overflow situations, when the Machine_Overflows attribute of the result type is False. See G.2.1(13).
- (124) - The result interval for division (or exponentiation by a negative exponent), when the floating point hardware implements division as multiplication by a reciprocal. See G.2.1(16).
- (125) - The definition of close result set, which determines the accuracy of certain fixed point multiplications and divisions. See G.2.3(5).
- (126) - Conditions on a universal_real operand of a fixed point multiplication or division for which the result shall be in the perfect result set. See G.2.3(22).
- (127) - The result of a fixed point arithmetic operation in overflow situations, when the Machine_Overflows attribute of the result type is False. See G.2.3(27).
- (128) - The result of an elementary function reference in overflow situations, when the Machine_Overflows attribute of the result type is False. See G.2.4(4).
- (129) - The value of the angle threshold, within which certain elementary functions, complex arithmetic operations, and complex elementary functions yield results conforming to a maximum relative error bound. See G.2.4(10).
- (130) - The accuracy of certain elementary functions for parameters beyond the angle threshold. See G.2.4(10).
- (131) - The result of a complex arithmetic operation or complex elementary function reference in overflow situations, when the Machine_Overflows attribute of the corresponding real type is False. See G.2.6(5).
- (132) - The accuracy of certain complex arithmetic operations and certain complex elementary functions for parameters (or components thereof) beyond the angle threshold. See G.2.6(8).
- (133) - Information regarding bounded errors and erroneous execution. See H.2(1).
- (134) - Implementation-defined aspects of pragma Inspection_Point. See H.3.2(8).
- (135) - Implementation-defined aspects of pragma Restrictions. See H.4(25).
- (136) - Any restrictions on pragma Restrictions. See H.4(27).
- (137) - Interrupts to which a task entry may be attached. See J.7.1(12).
- (138) - Whether the invocation of an interrupt entry has the effect of an ordinary entry call, conditional call, or a timed call, and whether the effect varies in the presence of pending interrupts. See J.7.1(13).
- (139) - The effect of pragma Inline.