Contents Index Search Previous Next
Annex M
(informative)
Implementation-Defined Characteristics
1
{implementation defined (summary
of characteristics)} The Ada language
allows for certain machine dependences in a controlled manner.
{documentation
(required of an implementation)} Each
Ada implementation must document all implementation-defined characteristics:
1.a
Ramification: {unspecified}
{specified (not!)} 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
- 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(14).
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/1).
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 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
- 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
- Any restrictions placed upon representation
items. See 13.1(20).
44
- The interpretation of each aspect
of representation. 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/1).
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
- Whether or not the implementation
provides user-accessible names for the standard pool type(s). See 13.11(17).
54
- 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
- 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.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
- 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).
72.1/1
- Current size for a stream file
for which positioning is not supported. See A.12.1(1.1/1).
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 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
- Implementation-defined children of
package Interfaces. The contents of the visible part of package Interfaces.
See B.2(11).
79.1/1
- The definitions of 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
- 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).
88.1/1
- Granularity of locking for Task_Attributes.
See C.7.2(16/1).
89/1
- 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
- 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/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/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).
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 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).
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).
Contents Index Search Previous Next Legal