Ada Reference ManualLegal Information
Contents   Index   References   Search   Previous   Next 

M.2 Implementation-Defined Characteristics

1/2
The Ada language allows for certain machine dependences in a controlled manner. Each Ada implementation must document all implementation-defined characteristics:
1.1/2
Whether or not each recommendation given in Implementation Advice is followed — see M.3, “Implementation Advice” for a listing. See 1.1.2(37).
2
Capacity limitations of the implementation. See 1.1.3(3).
3
Variations from the standard that are impractical to avoid given the implementation's execution environment. See 1.1.3(6).
4
Which code_statements cause external interactions. See 1.1.3(10).
5
The coded representation for the text of an Ada program. See 2.1(4/2).
5.1/2
The semantics of an Ada program whose text is not in Normalization Form KC. See 2.1(4.1/2).
5.2/2
This paragraph was deleted.
6
The representation for an end of line. See 2.2(2/2).
7
Maximum supported line length and lexical element length. See 2.2(14).
8
Implementation-defined pragmas. See 2.8(14).
9
Effect of pragma Optimize. See 2.8(27).
9.1/2
The sequence of characters of the value returned by S'Wide_Image when some of the graphic characters of S'Wide_Wide_Image are not defined in Wide_Character. See 3.5(30/2).
9.2/2
The sequence of characters of the value returned by S'Image when some of the graphic characters of S'Wide_Wide_Image are not defined in Character. See 3.5(37/2).
10
The predefined integer types declared in Standard. See 3.5.4(25).
11
Any nonstandard integer types and the operators defined for them. See 3.5.4(26).
12
Any nonstandard real types and the operators defined for them. See 3.5.6(8).
13
What combinations of requested decimal precision and range are supported for floating point types. See 3.5.7(7).
14
The predefined floating point types declared in Standard. See 3.5.7(16).
15
The small of an ordinary fixed point type. See 3.5.9(8/2).
16
What combinations of small, range, and digits are supported for fixed point types. See 3.5.9(10).
16.1/2
The result of Tags.Wide_Wide_Expanded_Name for types declared within an unnamed block_statement. See 3.9(10).
16.2/2
The sequence of characters of the value returned by Tags.Expanded_Name (respectively, Tags.Wide_Expanded_Name) when some of the graphic characters of Tags.Wide_Wide_Expanded_Name are not defined in Character (respectively, Wide_Character). See 3.9(10.1/2).
17
Implementation-defined attributes. See 4.1.4(12/1).
17.1/2
Rounding of real static expressions which are exactly half-way between two machine numbers. See 4.9(38/2).
18
Any implementation-defined time types. See 9.6(6).
19
The time base associated with relative delays. See 9.6(20).
20
The time base of the type Calendar.Time. See 9.6(23).
20.1/2
The time zone used for package Calendar operations. See 9.6(24/2).
21
Any limit on delay_until_statements of select_statements. See 9.6(29).
21.1/2
The result of Calendar.Formating.Image if its argument represents more than 100 hours. See 9.6.1(86/2).
22
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).
23
The representation for a compilation. See 10.1(2).
24
Any restrictions on compilations that contain multiple compilation_units. See 10.1(4).
25
The mechanisms for creating an environment and for adding and replacing compilation units. See 10.1.4(3/2).
25.1/2
The mechanisms for adding a compilation unit mentioned in a limited_with_clause to an environment. See 10.1.4(3/2).
26
The manner of explicitly assigning library units to a partition. See 10.2(2).
27
The implementation-defined means, if any, of specifying which compilation units are needed by a given compilation unit. See 10.2(2).
28
The manner of designating the main subprogram of a partition. See 10.2(7).
29
The order of elaboration of library_items. See 10.2(18).
30
Parameter passing and function return for the main subprogram. See 10.2(21).
31
The mechanisms for building and running partitions. See 10.2(24).
32
The details of program execution, including program termination. See 10.2(25).
33
The semantics of any nonactive partitions supported by the implementation. See 10.2(28).
34
The information returned by Exception_Message. See 11.4.1(10.1/2).
34.1/2
The result of Exceptions.Wide_Wide_Exception_Name for exceptions declared within an unnamed block_statement. See 11.4.1(12).
34.2/2
The sequence of characters of the value returned by Exceptions.Exception_Name (respectively, Exceptions.Wide_Exception_Name) when some of the graphic characters of Exceptions.Wide_Wide_Exception_Name are not defined in Character (respectively, Wide_Character). See 11.4.1(12.1/2).
35
The information returned by Exception_Information. See 11.4.1(13/2).
35.1/2
Implementation-defined policy_identifiers allowed in a pragma Assertion_Policy. See 11.4.2(9/2).
35.2/2
The default assertion policy. See 11.4.2(10/2).
36
Implementation-defined check names. See 11.5(27).
36.1/2
Existence and meaning of second parameter of pragma Unsuppress. See 11.5(27.1/2).
36.2/2
The cases that cause conflicts between the representation of the ancestors of a type_declaration. See 13.1(13.1/2).
37
The interpretation of each aspect of representation. See 13.1(20).
38
Any restrictions placed upon representation items. See 13.1(20).
38.1/2
The set of machine scalars. See 13.3(8.1/2).
39
The meaning of Size for indefinite subtypes. See 13.3(48).
40
The default external representation for a type tag. See 13.3(75/1).
41
What determines whether a compilation unit is the same in two different partitions. See 13.3(76).
42
Implementation-defined components. See 13.5.1(15).
43
If Word_Size = Storage_Unit, the default bit ordering. See 13.5.3(5).
43.1/2
The contents of the visible part of package System. See 13.7(2).
43.2/2
The range of Storage_Elements.Storage_Offset, the modulus of Storage_Elements.Storage_Element, and the declaration of Storage_Elements.Integer_Address.. See 13.7.1(11).
44
The contents of the visible part of package System.Machine_Code, and the meaning of code_statements. See 13.8(7).
44.1/2
The result of unchecked conversion for instances with scalar result types whose result is not defined by the language. See 13.9(11).
44.2/2
The effect of unchecked conversion for instances with nonscalar result types whose effect is not defined by the language. See 13.9(11).
44.3/2
This paragraph was deleted.
45
Whether or not the implementation provides user-accessible names for the standard pool type(s). See 13.11(17).
45.1/2
The meaning of Storage_Size when neither the Storage_Size nor the Storage_Pool is specified for an access type. See 13.11(18).
45.2/2
This paragraph was deleted.
45.3/2
The set of restrictions allowed in a pragma Restrictions. See 13.12(7/2).
46
The consequences of violating limitations on Restrictions pragmas. See 13.12(9).
46.1/2
The contents of the stream elements read and written by the Read and Write attributes of elementary types. See 13.13.2(9).
47
The names and characteristics of the numeric subtypes declared in the visible part of package Standard. See A.1(3).
47.1/2
The values returned by Strings.Hash. See A.4.9(3/2).
48
The accuracy actually achieved by the elementary functions. See A.5.1(1).
49
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).
50
The value of Numerics.Float_Random.Max_Image_Width. See A.5.2(27).
51
The value of Numerics.Discrete_Random.Max_Image_Width. See A.5.2(27).
51.1/2
This paragraph was deleted.
52
The string representation of a random number generator's state. See A.5.2(38).
52.1/2
This paragraph was deleted.
53
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).
53.1/2
This paragraph was deleted.
54
The value of Buffer_Size in Storage_IO. See A.9(10).
54.1/2
The external files associated with the standard input, standard output, and standard error files. See A.10(5).
55
The accuracy of the value produced by Put. See A.10.9(36).
55.1/1
Current size for a stream file for which positioning is not supported. See A.12.1(1.1/1).
55.2/2
The meaning of Argument_Count, Argument, and Command_Name for package Command_Line. The bounds of type Command_Line.Exit_Status. See A.15(1).
55.3/2
The interpretation of file names and directory names. See A.16(46/2).
55.4/2
The maximum value for a file size in Directories. See A.16(87/2).
55.5/2
The result for Directories.Size for a directory or special file See A.16(93/2).
55.6/2
The result for Directories.Modification_Time for a directory or special file. See A.16(95/2).
55.7/2
The interpretation of a non-null search pattern in Directories. See A.16(104/2).
55.8/2
The results of a Directories search if the contents of the directory are altered while a search is in progress. See A.16(110/2).
55.9/2
The definition and meaning of an environment variable. See A.17(1/2).
55.10/2
The circumstances where an environment variable cannot be defined. See A.17(16/2).
55.11/2
Environment names for which Set has the effect of Clear. See A.17(17/2).
55.12/2
The value of Containers.Hash_Type'Modulus. The value of Containers.Count_Type'Last. See A.18.1(7/2).
56
Implementation-defined convention names. See B.1(11).
57
The meaning of link names. See B.1(36).
58
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).
59
The effect of pragma Linker_Options. See B.1(37).
60
The contents of the visible part of package Interfaces and its language-defined descendants. See B.2(1).
60.1/2
Implementation-defined children of package Interfaces. See B.2(11).
60.2/2
The definitions of certain types and constants in Interfaces.C. See B.3(41).
60.3/1
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).
60.4/1
The types Fortran_Integer, Real, Double_Precision, and Character_Set in Interfaces.Fortran. See B.5(17).
60.5/2
Implementation-defined intrinsic subprograms. See C.1(1).
60.6/2
This paragraph was deleted.
60.7/2
This paragraph was deleted.
60.8/2
Any restrictions on a protected procedure or its containing type when a pragma Attach_handler or Interrupt_Handler applies. See C.3.1(17).
60.9/2
Any other forms of interrupt handler supported by the Attach_Handler and Interrupt_Handler pragmas. See C.3.1(19).
60.10/2
This paragraph was deleted.
61
The semantics of pragma Discard_Names. See C.5(7).
62
The result of the Task_Identification.Image attribute. See C.7.1(7).
62.1/2
The value of Current_Task when in a protected entry, interrupt handler, or finalization of a task attribute. See C.7.1(17/2).
62.2/2
This paragraph was deleted.
62.3/1
Granularity of locking for Task_Attributes. See C.7.2(16/1).
62.4/2
This paragraph was deleted.
62.5/2
This paragraph was deleted.
63
The declarations of Any_Priority and Priority. See D.1(11).
64
Implementation-defined execution resources. See D.1(15).
65
Whether, on a multiprocessor, a task that is waiting for access to a protected object keeps its processor busy. See D.2.1(3).
65.1/2
The effect of implementation-defined execution resources on task dispatching. See D.2.1(9/2).
65.2/2
This paragraph was deleted.
65.3/2
This paragraph was deleted.
65.4/2
Implementation defined task dispatching policies. See D.2.2(18).
65.5/2
The value of Default_Quantum in Dispatching.Round_Robin. See D.2.5(4).
66
Implementation-defined policy_identifiers allowed in a pragma Locking_Policy. See D.3(4).
66.1/2
The locking policy if no Locking_Policy pragma applies to any unit of a partition. See D.3(6).
67
Default ceiling priorities. See D.3(10/2).
68
The ceiling of any protected object used internally by the implementation. See D.3(16).
69
Implementation-defined queuing policies. See D.4(1/1).
69.1/2
This paragraph was deleted.
70
Any operations that implicitly require heap storage allocation. See D.7(8).
70.1/2
When restriction No_Task_Termination applies to a partition, what happens when a task terminates. See D.7(15.1/2).
70.2/2
The behavior when restriction Max_Storage_At_Blocking is violated. See D.7(17/1).
70.3/2
The behavior when restriction Max_Asynchronous_Select_Nesting is violated. See D.7(18/1).
70.4/2
The behavior when restriction Max_Tasks is violated. See D.7(19).
70.5/2
Whether the use of pragma Restrictions results in a reduction in program code or data size or execution time. See D.7(20).
70.6/2
This paragraph was deleted.
70.7/2
This paragraph was deleted.
70.8/2
This paragraph was deleted.
71
The means for creating and executing distributed programs. See E(5).
72
Any events that can result in a partition becoming inaccessible. See E.1(7).
73
The scheduling policies, treatment of priorities, and management of shared resources between partitions in certain cases. See E.1(11).
73.1/1
This paragraph was deleted.
74
Whether the execution of the remote subprogram is immediately aborted as a result of cancellation. See E.4(13).
74.1/2
The range of type System.RPC.Partition_Id. See E.5(14).
74.2/2
This paragraph was deleted.
75
Implementation-defined interfaces in the PCS. See E.5(26).
76
The values of named numbers in the package Decimal. See F.2(7).
77
The value of Max_Picture_Length in the package Text_IO.Editing See F.3.3(16).
78
The value of Max_Picture_Length in the package Wide_Text_IO.Editing See F.3.4(5).
78.1/2
The value of Max_Picture_Length in the package Wide_Wide_Text_IO.Editing See F.3.5(5).
79
The accuracy actually achieved by the complex elementary functions and by other complex arithmetic operations. See G.1(1).
80
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).
81
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).
82
Whether the strict mode or the relaxed mode is the default. See G.2(2).
83
The result interval in certain cases of fixed-to-float conversion. See G.2.1(10).
84
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).
85
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).
86
The definition of close result set, which determines the accuracy of certain fixed point multiplications and divisions. See G.2.3(5).
87
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).
88
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).
89
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).
90
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).
91
The accuracy of certain elementary functions for parameters beyond the angle threshold. See G.2.4(10).
92
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).
93
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).
93.1/2
The accuracy requirements for the subprograms Solve, Inverse, Determinant, Eigenvalues and Eigensystem for type Real_Matrix. See G.3.1(81/2).
93.2/2
The accuracy requirements for the subprograms Solve, Inverse, Determinant, Eigenvalues and Eigensystem for type Complex_Matrix. See G.3.2(149/2).
93.3/2
This paragraph was deleted.
93.4/2
This paragraph was deleted.
93.5/2
This paragraph was deleted.
93.6/2
This paragraph was deleted.
93.7/2
Implementation-defined policy_identifiers allowed in a pragma Partition_Elaboration_Policy. See H.6(4/2).

Contents   Index   References   Search   Previous   Next 
Ada-Europe Sponsored by Ada-Europe