Go to the first, previous, next, last section, table of contents.


M Implementation-Defined Characteristics (informative)

  1. The Ada language allows for certain machine dependences in a controlled manner. Each Ada implementation must document all implementation-defined characteristics:
    1. Whether or not each recommendation given in Implementation Advice is followed. See section 1.1.2 Structure(37).
    2. Capacity limitations of the implementation. See section 1.1.3 Conformity of an Implementation with the Standard(3).
    3. Variations from the standard that are impractical to avoid given the implementation's execution environment. See section 1.1.3 Conformity of an Implementation with the Standard(6).
    4. Which code_statements cause external interactions. See section 1.1.3 Conformity of an Implementation with the Standard(10).
    5. The coded representation for the text of an Ada program. See section 2.1 Character Set, (4).
    6. The control functions allowed in comments. See section 2.1 Character Set(14).
    7. The representation for an end of line. See section 2.2 Lexical Elements, Separators, and Delimiters(2).
    8. Maximum supported line length and lexical element length. See section 2.2 Lexical Elements, Separators, and Delimiters, (15).
    9. Implementation-defined pragmas. See section 2.8 Pragmas(14).
    10. Effect of pragma Optimize. See section 2.8 Pragmas(27).
    11. 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 section 3.5 Scalar Types(37).
    12. The predefined integer types declared in Standard. See section 3.5.4 Integer Types(25).
    13. Any nonstandard integer types and the operators defined for them. See section 3.5.4 Integer Types(26).
    14. Any nonstandard real types and the operators defined for them. See section 3.5.6 Real Types(8).
    15. What combinations of requested decimal precision and range are supported for floating point types. See section 3.5.7 Floating Point Types(7).
    16. The predefined floating point types declared in Standard. See section 3.5.7 Floating Point Types, (16).
    17. The small of an ordinary fixed point type. See section 3.5.9 Fixed Point Types(8).
    18. What combinations of small, range, and digits are supported for fixed point types. See section 3.5.9 Fixed Point Types(10).
    19. The result of Tags.Expanded_Name for types declared within an unnamed block_statement. See section 3.9 Tagged Types and Type Extensions(10).
    20. Implementation-defined attributes. See section 4.1.4 Attributes(12).
    21. Any implementation-defined time types. See section 9.6 Delay Statements, Duration, and Time(6).
    22. The time base associated with relative delays. See section 9.6 Delay Statements, Duration, and Time(20).
    23. The time base of the type Calendar.Time. See section 9.6 Delay Statements, Duration, and Time(23).
    24. The timezone used for package Calendar operations. See section 9.6 Delay Statements, Duration, and Time(24).
    25. Any limit on delay_until_statements of select_statements. See section 9.6 Delay Statements, Duration, and Time, (29).
    26. 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 section 9.10 Shared Variables(1).
    27. The representation for a compilation. See section 10.1 Separate Compilation(2).
    28. Any restrictions on compilations that contain multiple compilation_units. See section 10.1 Separate Compilation(4).
    29. The mechanisms for creating an environment and for adding and replacing compilation units. See section 10.1.4 The Compilation Process(3).
    30. The manner of explicitly assigning library units to a partition. See section 10.2 Program Execution(2).
    31. The implementation-defined means, if any, of specifying which compilation units are needed by a given compilation unit. See section 10.2 Program Execution, (2).
    32. The manner of designating the main subprogram of a partition. See section 10.2 Program Execution(7).
    33. The order of elaboration of library_items. See section 10.2 Program Execution(18).
    34. Parameter passing and function return for the main subprogram. See section 10.2 Program Execution(21).
    35. The mechanisms for building and running partitions. See section 10.2 Program Execution(24).
    36. The details of program execution, including program termination. See section 10.2 Program Execution(25).
    37. The semantics of any nonactive partitions supported by the implementation. See section 10.2 Program Execution(28).
    38. The information returned by Exception_Message. See section 11.4.1 The Package Exceptions(10).
    39. The result of Exceptions.Exception_Name for types declared within an unnamed block_statement. See section 11.4.1 The Package Exceptions(12).
    40. The information returned by Exception_Information. See section 11.4.1 The Package Exceptions(13).
    41. Implementation-defined check names. See section 11.5 Suppressing Checks(27).
    42. The interpretation of each aspect of representation. See section 13.1 Representation Items(20).
    43. Any restrictions placed upon representation items. See section 13.1 Representation Items(20).
    44. The meaning of Size for indefinite subtypes. See section 13.3 Representation Attributes(48).
    45. The default external representation for a type tag. See section 13.3 Representation Attributes(75).
    46. What determines whether a compilation unit is the same in two different partitions. See section 13.3 Representation Attributes(76).
    47. Implementation-defined components. See section 13.5.1 Record Representation Clauses(15).
    48. If Word_Size = Storage_Unit, the default bit ordering. See section 13.5.3 Bit Ordering, (5).
    49. The contents of the visible part of package System and its language-defined children. See section 13.7 The Package System(2).
    50. The contents of the visible part of package System.Machine_Code, and the meaning of code_statements. See section 13.8 Machine Code Insertions(7).
    51. The effect of unchecked conversion. See section 13.9 Unchecked Type Conversions(11).
    52. The manner of choosing a storage pool for an access type when Storage_Pool is not specified for the type. See section 13.11 Storage Management(17).
    53. Whether or not the implementation provides user-accessible names for the standard pool type(s). See section 13.11 Storage Management(17).
    54. The meaning of Storage_Size. See section 13.11 Storage Management(18).
    55. Implementation-defined aspects of storage pools. See section 13.11 Storage Management(22).
    56. The set of restrictions allowed in a pragma Restrictions. See section 13.12 Pragma Restrictions, (7).
    57. The consequences of violating limitations on Restrictions pragmas. See section 13.12 Pragma Restrictions(9).
    58. The representation used by the Read and Write attributes of elementary types in terms of stream elements. See section 13.13.2 Stream-Oriented Attributes(9).
    59. The names and characteristics of the numeric subtypes declared in the visible part of package Standard. See section A.1 The Package Standard(3).
    60. The accuracy actually achieved by the elementary functions. See section A.5.1 Elementary Functions(1).
    61. 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 section A.5.1 Elementary Functions(46).
    62. The value of Numerics.Float_Random.Max_Image_Width. See section A.5.2 Random Number Generation(27).
    63. The value of Numerics.Discrete_Random.Max_Image_Width. See section A.5.2 Random Number Generation, (27).
    64. The algorithms for random number generation. See See section 2 Lexical Elements(32).
    65. The string representation of a random number generator's state. See section A.5.2 Random Number Generation(38).
    66. The minimum time interval between calls to the time-dependent Reset procedure that are guaranteed to initiate different random number sequences. See section A.5.2 Random Number Generation(45).
    67. 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 section A.5.3 Attributes of Floating Point Types(72).
    68. Any implementation-defined characteristics of the input-output packages. See section A.7 External Files and File Objects(14).
    69. The value of Buffer_Size in Storage_IO. See section A.9 The Generic Package Storage_IO(10).
    70. external files for standard input, standard output, and standard error. See section A.10 Text Input-Output(5).
    71. The accuracy of the value produced by Put. See section A.10.9 Input-Output for Real Types(36).
    72. The meaning of Argument_Count, Argument, and Command_Name. See section A.15 The Package Command_Line, (1).
    73. Implementation-defined convention names. See section B.1 Interfacing Pragmas(11).
    74. The meaning of link names. See section B.1 Interfacing Pragmas(36).
    75. The manner of choosing link names when neither the link name nor the address of an imported or exported entity is specified. See section B.1 Interfacing Pragmas, (36).
    76. The effect of pragma Linker_Options. See section B.1 Interfacing Pragmas(37).
    77. The contents of the visible part of package Interfaces and its language-defined descendants. See section B.2 The Package Interfaces(1).
    78. Implementation-defined children of package Interfaces. The contents of the visible part of package Interfaces. See See section 11 Exceptions.
    79. 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 section B.4 Interfacing with COBOL(50).
    80. Support for access to machine instructions. See section C.1 Access to Machine Operations(1).
    81. Implementation-defined aspects of access to machine operations. See section C.1 Access to Machine Operations(9).
    82. Implementation-defined aspects of interrupts. See section C.3 Interrupt Support(2).
    83. Implementation-defined aspects of preelaboration. See section C.4 Preelaboration Requirements(13).
    84. The semantics of pragma Discard_Names. See section C.5 Pragma Discard_Names(7).
    85. The result of the Task_Identification.Image attribute. See section C.7.1 The Package Task_Identification, (7).
    86. The value of Current_Task when in a protected entry or interrupt handler. See section C.7.1 The Package Task_Identification(17).
    87. The effect of calling Current_Task from an entry body or interrupt handler. See section C.7.1 The Package Task_Identification(19).
    88. Implementation-defined aspects of Task_Attributes. See section C.7.2 The Package Task_Attributes(19).
    89. Values of all Metrics. See section D Real-Time Systems (normative)(2).
    90. The declarations of Any_Priority and Priority. See section D.1 Task Priorities(11).
    91. Implementation-defined execution resources. See section D.1 Task Priorities(15).
    92. Whether, on a multiprocessor, a task that is waiting for access to a protected object keeps its processor busy. See section D.2.1 The Task Dispatching Model(3).
    93. The affect of implementation defined execution resources on task dispatching. See section D.2.1 The Task Dispatching Model(9).
    94. Implementation-defined policy_identifiers allowed in a pragma Task_Dispatching_Policy. See section D.2.2 The Standard Task Dispatching Policy(3).
    95. Implementation-defined aspects of priority inversion. See section D.2.2 The Standard Task Dispatching Policy, (16).
    96. Implementation defined task dispatching. See section D.2.2 The Standard Task Dispatching Policy(18).
    97. Implementation-defined policy_identifiers allowed in a pragma Locking_Policy. See section D.3 Priority Ceiling Locking(4).
    98. Default ceiling priorities. See section D.3 Priority Ceiling Locking(10).
    99. The ceiling of any protected object used internally by the implementation. See section D.3 Priority Ceiling Locking(16).
    100. Implementation-defined queuing policies. See section D.4 Entry Queuing Policies(1).
    101. 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 section D.6 Preemptive Abort(3).
    102. Any operations that implicitly require heap storage allocation. See section D.7 Tasking Restrictions(8).
    103. Implementation-defined aspects of pragma Restrictions. See section D.7 Tasking Restrictions(20).
    104. Implementation-defined aspects of package Real_Time. See section D.8 Monotonic Time(17).
    105. Implementation-defined aspects of delay_statements. See section D.9 Delay Accuracy(8).
    106. The upper bound on the duration of interrupt blocking caused by the implementation. See section D.12 Other Optimizations and Determinism Rules(5).
    107. The means for creating and executing distributed programs. See section E Distributed Systems (normative), (5).
    108. Any events that can result in a partition becoming inaccessible. See section E.1 Partitions(7).
    109. The scheduling policies, treatment of priorities, and management of shared resources between partitions in certain cases. See section E.1 Partitions(11).
    110. Events that cause the version of a compilation unit to change. See section E.3 Consistency of a Distributed System(5).
    111. Whether the execution of the remote subprogram is immediately aborted as a result of cancellation. See section E.4 Remote Subprogram Calls(13).
    112. Implementation-defined aspects of the PCS. See See section E.5 Partition Communication Subsystem (25).
    113. Implementation-defined interfaces in the PCS. See section E.5 Partition Communication Subsystem(26).
    114. The values of named numbers in the package Decimal. See section F.2 The Package Decimal(7).
    115. The value of Max_Picture_Length in the package Text_IO.Editing See section F.3.3 The Package Text_IO.Editing(16).
    116. The value of Max_Picture_Length in the package Wide_Text_IO.Editing See section F.3.4 The Package Wide_Text_IO.Editing(5).
    117. The accuracy actually achieved by the complex elementary functions and by other complex arithmetic operations. See section G.1 Complex Arithmetic(1).
    118. 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 section G.1.1 Complex Types(53).
    119. 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 section G.1.2 Complex Elementary Functions(45).
    120. Whether the strict mode or the relaxed mode is the default. See section G.2 Numeric Performance Requirements, (2).
    121. The result interval in certain cases of fixed-to-float conversion. See section G.2.1 Model of Floating Point Arithmetic(10).
    122. The result of a floating point arithmetic operation in overflow situations, when the Machine_Overflows attribute of the result type is False. See section G.2.1 Model of Floating Point Arithmetic(13).
    123. The result interval for division (or exponentiation by a negative exponent), when the floating point hardware implements division as multiplication by a reciprocal. See section G.2.1 Model of Floating Point Arithmetic(16).
    124. The definition of close result set, which determines the accuracy of certain fixed point multiplications and divisions. See section G.2.3 Model of Fixed Point Arithmetic(5).
    125. 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 section G.2.3 Model of Fixed Point Arithmetic(22).
    126. The result of a fixed point arithmetic operation in overflow situations, when the Machine_Overflows attribute of the result type is False. See section G.2.3 Model of Fixed Point Arithmetic(27).
    127. The result of an elementary function reference in overflow situations, when the Machine_Overflows attribute of the result type is False. See section G.2.4 Accuracy Requirements for the Elementary Functions(4).
    128. 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 section G.2.4 Accuracy Requirements for the Elementary Functions(10).
    129. The accuracy of certain elementary functions for parameters beyond the angle threshold. See section G.2.4 Accuracy Requirements for the Elementary Functions(10).
    130. 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 section G.2.6 Accuracy Requirements for Complex Arithmetic(5).
    131. The accuracy of certain complex arithmetic operations and certain complex elementary functions for parameters (or components thereof) beyond the angle threshold. See section G.2.6 Accuracy Requirements for Complex Arithmetic(8).
    132. Information regarding bounded errors and erroneous execution. See section H.2 Documentation of Implementation Decisions(1).
    133. Implementation-defined aspects of pragma Inspection_Point. See section H.3.2 Pragma Inspection_Point, (8).
    134. Implementation-defined aspects of pragma Restrictions. See section H.4 Safety and Security Restrictions(25).
    135. Any restrictions on pragma Restrictions. See section H.4 Safety and Security Restrictions(27).


Go to the first, previous, next, last section, table of contents.