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.a
Ramification: It
need not document unspecified characteristics.
1.b
Some of the items in this list require documentation
only for implementations that conform to Specialized Needs Annexes.
2/2
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
6
The coded representation for the text of an Ada
program. See
2.1(4/3).
6.1/2
The semantics of an Ada program
whose text is not in Normalization Form KC. See 2.1(4.1/2).
7/2
This paragraph
was deleted.The control functions allowed
in comments. See 2.1(14/2).
8
The representation for an end of line. See
2.2(2/2).
9
Maximum supported line length and lexical element
length. See
2.2(14).
10
Implementation-defined pragmas. See
2.8(14).
11
Effect of pragma Optimize. See
2.8(27).
11.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/3).
12/2
The sequence of characters of the value returned
by S'Image when some of the graphic characters of S'
Wide_Wide_Image Wide_Image
are not defined in Character. See
3.5(37/3).
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/2).
19
What combinations of
small, range, and
digits
are supported for fixed point types. See
3.5.9(10).
20/2
The result of
Tags.Wide_Wide_Expanded_Name Tags.Expanded_Name
for types declared within an unnamed
block_statement.
See
3.9(10).
20.1/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).
21
Implementation-defined attributes. See
4.1.4(12/1).
21.1/2
Rounding of real static expressions
which are exactly half-way between two machine numbers. See 4.9(38/2).
21.2/3
Whether precondition or postcondition
checks are made for a dispatching call when the assertion policy differs
between the denoted and invoked entity. See 6.1.1(35).
22
Any implementation-defined time types. See
9.6(6/3).
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/2
The
time zone timezone
used for package Calendar operations. See
9.6(24/2).
26
26.1/2
The result of Calendar.Formating.Image
if its argument represents more than 100 hours. See 9.6.1(86/2).
27/3
This paragraph
was deleted.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/3).
28
29
29.1/2
30
The mechanisms for creating an environment and
for adding and replacing compilation units. See
10.1.4(3/2).
31
The implementation-defined means, if any, of specifying
which compilation units are needed by a given compilation unit. See
10.2(2).
32
The manner of explicitly assigning library units
to a partition. See
10.2(2).
33
The manner of designating the main subprogram of
a partition. See
10.2(7).
34
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.1/3).
40/2
The result of
Exceptions.Wide_Wide_Exception_Name Exceptions.Exception_Name
for
exceptions types
declared within an unnamed
block_statement.
See
11.4.1(12).
40.1/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).
41
The information returned by Exception_Information.
See
11.4.1(13/2).
41.1/2
41.2/2
The default assertion policy. See 11.4.2(10/2).
42
Implementation-defined check names. See
11.5(27).
42.1/2
Existence and meaning of
second parameter of pragma
Unsuppress. See 11.5(27.1/2).
42.2/2
The cases that cause conflicts
between the representation of the ancestors of a type_declaration. See 13.1(13.1/2).
43
Any restrictions placed upon representation items.
See
13.1(20).
44
The interpretation of each aspect of representation.
See
13.1(20).
44.1/2
The set of machine scalars. See 13.3(8.1/3).
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/3).
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/2
The contents of the visible part of package System
and
its language-defined children. See
13.7(2).
50.1/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).
51
The contents of the visible part of package System.Machine_Code,
and the meaning of
code_statements.
See
13.8(7).
52/2
The effect of unchecked conversion
for instances with nonscalar result types whose effect is not defined
by the language. See
13.9(11).
52.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).
53
Whether or not the implementation provides user-accessible
names for the standard pool type(s). See
13.11(17).
54/2
This paragraph
was deleted.The manner of choosing a
storage pool for an access type when Storage_Pool is not specified for
the type. See 13.11(17).
55/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).
56/2
This paragraph
was deleted.Implementation-defined aspects
of storage pools. See 13.11(22).
57/2
The set of
restrictions restrictions
allowed in a
pragma
Restrictions. See
13.12(7/2).
58
The consequences of violating limitations on Restrictions
pragmas. See
13.12(9).
59/2
The
contents of the stream
elements read and written 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).
60.1/2
The values returned by Strings.Hash. See A.4.9(3/2).
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.Discrete_Random.Max_Image_Width.
See
A.5.2(27).
64
The value of Numerics.Float_Random.Max_Image_Width.
See
A.5.2(27).
65/2
This paragraph
was deleted.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/2
This paragraph
was deleted.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/2
This paragraph
was deleted.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/2
The external files
associated with the for
standard input, standard output, and standard error
files. See
A.10(5).
72
The accuracy of the value produced by Put. See
A.10.9(36).
72.1/1
Current size for a stream
file for which positioning is not supported. See A.12.1(1.1/1).
73/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).
73.1/2
The interpretation of file
names and directory names. See A.16(46/2).
73.2/2
The maximum value for a file
size in Directories. See A.16(87/2).
73.3/2
The result for Directories.Size
for a directory or special file See A.16(93/2).
73.4/2
The result for Directories.Modification_Time
for a directory or special file. See A.16(95/2).
73.5/2
The interpretation of a non-null
search pattern in Directories. See A.16(104/3).
73.6/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/3).
73.7/2
The definition and meaning
of an environment variable. See A.17(1/2).
73.8/2
The circumstances where an
environment variable cannot be defined. See A.17(16/2).
73.9/2
Environment names for which
Set has the effect of Clear. See A.17(17/2).
73.10/2
The value of Containers.Hash_Type'Modulus.
The value of Containers.Count_Type'Last. See A.18.1(7/2).
74
Implementation-defined convention names. See
B.1(11/3).
75
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).
76
The meaning of link names. 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/2
Implementation-defined children of package Interfaces.
The contents of the visible part of package Interfaces. See
B.2(11).
79.1/2
The definitions of certain
types and constants in Interfaces.C. See B.3(41).
80/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).
80.1/1
The types Fortran_Integer,
Real, Double_Precision, and Character_Set in Interfaces.Fortran. See B.5(17).
81/2
Implementation-defined intrinsic
subprograms Support for access to machine
instructions. See
C.1(1).
82/2
This paragraph
was deleted.Implementation-defined aspects
of access to machine operations. See C.1(9).
83/2
This paragraph
was deleted.Implementation-defined aspects
of interrupts. See C.3(2).
83.1/3
Any restrictions on a protected
procedure or its containing type when an
aspect a
pragma Attach_handler or Interrupt_Handler is specified applies.
See
C.3.1(17).
83.2/3
Any other forms of interrupt
handler supported by the Attach_Handler and Interrupt_Handler aspects pragmas.
See
C.3.1(19).
84/2
This paragraph
was deleted.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/2
The value of Current_Task when in a protected entry
, or interrupt handler
, or finalization of
a task attribute. See
C.7.1(17/3).
88/2
This paragraph
was deleted.The effect of calling Current_Task
from an entry body or interrupt handler. See C.7.1(19).
88.1/1
Granularity of locking for
Task_Attributes. See C.7.2(16/1).
89/2
This paragraph
was deleted.Limits
on the number and size of task attributes, and how to configure them. Implementation-defined
aspects of Task_Attributes. See C.7.2(19).
90/2
This paragraph
was deleted.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/2
The
effect affect
of implementation
- defined execution resources on task dispatching. See
D.2.1(9/2).
95/2
This paragraph
was deleted.Implementation-defined policy_identifiers
allowed in a pragma
Task_Dispatching_Policy. See D.2.2(3/2).
96/2
This paragraph
was deleted.Implementation-defined aspects
of priority inversion. See D.2.2(16/2).
97/2
Implementation defined task dispatching
policies. See
D.2.2(18).
97.1/2
The value of Default_Quantum
in Dispatching.Round_Robin. See D.2.5(4).
98
98.1/2
The locking policy if no
Locking_Policy pragma applies to any unit of a partition. See D.3(6).
99
Default ceiling priorities. See
D.3(10/3).
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/1).
102/2
This paragraph
was deleted.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).
103.1/2
When restriction No_Task_Termination
applies to a partition, what happens when a task terminates. See D.7(15.1/2).
103.2/2
The behavior when restriction
Max_Storage_At_Blocking is violated. See
D.7(17/1).
103.3/2
The behavior when restriction
Max_Asynchronous_Select_Nesting is violated. See D.7(18/1).
103.4/2
The behavior when restriction
Max_Tasks is violated. See D.7(19).
104/2
Whether the use of Implementation-defined
aspects of pragma Restrictions
results in
a reduction in program code or data size or execution time. See
D.7(20).
105/2
This paragraph
was deleted.Implementation-defined aspects
of package Real_Time. See D.8(17).
106/2
This paragraph
was deleted.Implementation-defined aspects
of delay_statements. See D.9(8).
106.1/3
The value of Barrier_Limit'Last
in Synchronous_Barriers. See D.10.1(4/3).
106.2/3
When an aborted task that
is waiting on a Synchronous_Barrier is aborted. See D.10.1(13/3).
107/2
This paragraph
was deleted.The upper bound on the duration
of interrupt blocking caused by the implementation. See D.12(5).
107.1/3
The processor on which a
task with a CPU value of a Not_A_Specific_CPU will execute when the Ravenscar
profile is in effect. See D.13(8).
107.2/3
The value of Min_Handler_Ceiling
in Execution_Time.Group_Budgets. See D.14.2(7/2).
107.3/3
The value of CPU_Range'Last
in System.Multiprocessors. See D.16(4/3).
107.4/3
The processor on which the
environment task executes in the absence of a value for the aspect CPU. See D.16(13/3).
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/1
This paragraph
was deleted.Events that cause the version
of a compilation unit to change. See E.3(5/1).
112
Whether the execution of the remote subprogram
is immediately aborted as a result of cancellation. See
E.4(13).
112.1/2
The range of type System.RPC.Partition_Id. See E.5(14).
113/2
This paragraph
was deleted.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).
117.1/2
The value of Max_Picture_Length
in the package Wide_Wide_Text_IO.Editing See F.3.5(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 accuracy of certain elementary functions for
parameters beyond the angle threshold. See
G.2.4(10).
130
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).
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).
132.1/2
The accuracy requirements
for the subprograms Solve, Inverse, Determinant, Eigenvalues and Eigensystem
for type Real_Matrix. See G.3.1(81/2).
132.2/2
The accuracy requirements
for the subprograms Solve, Inverse, Determinant, Eigenvalues and Eigensystem
for type Complex_Matrix. See G.3.2(149/2).
133/2
This paragraph
was deleted.Information regarding bounded
errors and erroneous execution. See H.2(1).
134/2
This paragraph
was deleted.Implementation-defined aspects
of pragma Inspection_Point. See H.3.2(8).
135/2
This paragraph
was deleted.Implementation-defined aspects
of pragma Restrictions. See H.4(25).
136/2
This paragraph
was deleted.Any restrictions on pragma
Restrictions. See H.4(27).
136.1/2
Implementation-defined policy_identifiers
allowed in a pragma
Partition_Elaboration_Policy. See H.6(4/2).
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe