M.2 Implementation-Defined Characteristics
The Ada language allows for certain
machine dependences in a controlled manner.
Each
Ada implementation is required to document all implementation-defined
characteristics:
Whether or not each recommendation given in Implementation
Advice is followed — see
M.3 for a listing.
See
1.1.2(37).
Capacity limitations of the implementation. See
1.1.3(3).
Variations from the standard that are impractical
to avoid given the implementation's execution environment. See
1.1.3(6).
The coded representation for the text of an Ada
program. See
2.1(4/5).
The semantics of an Ada program whose text is not
in Normalization Form C. See
2.1(4.1/5).
This paragraph
was deleted.
The representation for an end of line. See
2.2(2/3).
Maximum supported line length and lexical element
length. See
2.2(14).
Implementation-defined pragmas. See
2.8(14).
Effect of pragma Optimize. See
2.8(27).
The message string associated with the Assertion_Error
exception raised by the failure of a predicate check if there is no applicable
Predicate_Failure aspect. See
3.2.4(31).
The predefined integer types declared in Standard.
See
3.5.4(25).
Any nonstandard integer types and the operators
defined for them. See
3.5.4(26/5).
Any nonstandard real types and the operators defined
for them. See
3.5.6(8/5).
What combinations of requested decimal precision
and range are supported for floating point types. See
3.5.7(7).
The predefined floating point types declared in
Standard. See
3.5.7(16/5).
The
small of an ordinary fixed point type.
See
3.5.9(8/2).
What combinations of
small, range, and
digits
are supported for fixed point types. See
3.5.9(10).
The result of Tags.Wide_Wide_Expanded_Name for
types declared within an unnamed
block_statement.
See
3.9(10).
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).
Implementation-defined attributes. See
4.1.4(12/5).
Rounding of real static expressions which are exactly
half-way between two machine numbers. See
4.9(38/2).
The number of chunks for an array component iterator.
See
5.5.2(11).
Any extensions of the Global aspect. See
6.1.2(43).
The circumstances in which the implementation passes
in the null value for a view conversion of an access type used as an
out parameter. See
6.4.1(19/5).
Any extensions of the Default_Initial_Condition
aspect. See
7.3.3(11).
Any implementation-defined time types. See
9.6(6/3).
The time base associated with relative delays.
See
9.6(20).
The time base of the type Calendar.Time. See
9.6(23).
The time zone used for package Calendar operations.
See
9.6(24/2).
The result of Calendar.Formatting.Image if its
argument represents more than 100 hours. See
9.6.1(86/5).
This paragraph
was deleted.
Implementation-defined conflict check policies.
See
9.10.1(5).
The mechanisms for creating an environment and
for adding and replacing compilation units. See
10.1.4(3/2).
The manner of explicitly assigning library units
to a partition. See
10.2(2).
The implementation-defined means, if any, of specifying
which compilation units are needed by a given compilation unit. See
10.2(2).
The manner of designating the main subprogram of
a partition. See
10.2(7).
Parameter passing and function return for the main
subprogram. See
10.2(21).
The mechanisms for building and running partitions.
See
10.2(24/5).
The details of program execution, including program
termination. See
10.2(25).
The semantics of any nonactive partitions supported
by the implementation. See
10.2(28/3).
The information returned by Exception_Message.
See
11.4.1(10.1/4).
The result of Exceptions.Wide_Wide_Exception_Name
for exceptions declared within an unnamed
block_statement.
See
11.4.1(12).
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).
The information returned by Exception_Information.
See
11.4.1(13/2).
The default assertion policy. See
11.4.2(10).
Implementation-defined check names. See
11.5(27).
Existence and meaning of second parameter of
pragma
Unsuppress. See
11.5(27.1/2).
The cases that cause conflicts between the representation
of the ancestors of a
type_declaration.
See
13.1(13.1/3).
The interpretation of each representation aspect.
See
13.1(20).
Any restrictions placed upon the specification
of representation aspects. See
13.1(20).
Implementation-defined aspects, including the syntax
for specifying such aspects and the legality rules for such aspects.
See
13.1.1(38).
The set of machine scalars. See
13.3(8.1/3).
The meaning of Size for indefinite subtypes. See
13.3(48).
The meaning of Object_Size for indefinite subtypes.
See
13.3(58).
The default external representation for a type
tag. See
13.3(75/3).
What determines whether a compilation unit is the
same in two different partitions. See
13.3(76).
Implementation-defined components. See
13.5.1(15).
If Word_Size = Storage_Unit, the default bit ordering.
See
13.5.3(5).
The contents of the visible part of package System.
See
13.7(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).
The contents of the visible part of package System.Machine_Code,
and the meaning of
code_statements.
See
13.8(7).
The result of unchecked conversion for instances
with scalar result types whose result is not defined by the language.
See
13.9(11).
The effect of unchecked conversion for instances
with nonscalar result types whose effect is not defined by the language.
See
13.9(11).
This paragraph
was deleted.
Whether or not the implementation provides user-accessible
names for the standard pool type(s). See
13.11(17).
The meaning of Storage_Size when neither the Storage_Size
nor the Storage_Pool is specified for an access type. See
13.11(18).
This paragraph
was deleted.
The effect of specifying aspect Default_Storage_Pool
on an instance of a language-defined generic unit. See
13.11.3(5).
This paragraph
was deleted.
Implementation-defined restrictions allowed in
a
pragma Restrictions.
See
13.12(8.7/3).
The consequences of violating limitations on Restrictions
pragmas. See
13.12(9).
Implementation-defined usage profiles allowed in
a
pragma Profile.
See
13.12(15).
The contents of the stream elements read and written
by the Read and Write attributes of elementary types. See
13.13.2(9).
The names and characteristics of the numeric subtypes
declared in the visible part of package Standard. See
A.1(3).
The values returned by Strings.Hash. See
A.4.9(3/2).
The value returned by a call to a Text_Buffer Get
procedure if any character in the returned sequence is not defined in
Character. See
A.4.12(34).
The value returned by a call to a Text_Buffer Wide_Get
procedure if any character in the returned sequence is not defined in
Wide_Character. See
A.4.12(34).
The accuracy actually achieved by the elementary
functions. See
A.5.1(1).
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).
The value of Numerics.Float_Random.Max_Image_Width.
See
A.5.2(27).
The value of Numerics.Discrete_Random.Max_Image_Width.
See
A.5.2(27).
This paragraph
was deleted.
The string representation of a random number generator's
state. See
A.5.2(38).
This paragraph
was deleted.
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).
This paragraph
was deleted.
The value of Buffer_Size in Storage_IO. See
A.9(10).
The external files associated with the standard
input, standard output, and standard error files. See
A.10(5).
The accuracy of the value produced by Put. See
A.10.9(36).
Current size for a stream file for which positioning
is not supported. See
A.12.1(1.1/1).
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).
The interpretation of file names and directory
names. See
A.16(46/2).
The maximum value for a file size in Directories.
See
A.16(87/2).
The result for Directories.Size for a directory
or special file. See
A.16(93/2).
The result for Directories.Modification_Time for
a directory or special file. See
A.16(95/2).
The interpretation of a nonnull search pattern
in Directories. See
A.16(104/3).
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).
The definition and meaning of an environment variable.
See
A.17(1/2).
The circumstances where an environment variable
cannot be defined. See
A.17(16/2).
Environment names for which Set has the effect
of Clear. See
A.17(17/2).
The value of Containers.Hash_Type'Modulus. The
value of Containers.Count_Type'Last. See
A.18.1(7/2).
Implementation-defined convention names. See
B.1(11/3).
The meaning of link names. See
B.1(36).
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).
The effect of pragma Linker_Options. See
B.1(37).
The contents of the visible part of package Interfaces
and its language-defined descendants. See
B.2(1).
Implementation-defined children of package Interfaces.
See
B.2(11).
The definitions of certain types and constants
in Interfaces.C. See
B.3(41).
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).
The types Fortran_Integer, Real, Double_Precision,
and Character_Set in Interfaces.Fortran. See
B.5(17).
Implementation-defined intrinsic subprograms. See
C.1(1/3).
This paragraph
was deleted.
This paragraph
was deleted.
Any restrictions on a protected procedure or its
containing type when an aspect Attach_handler or Interrupt_Handler is
specified. See
C.3.1(17).
Any other forms of interrupt handler supported
by the Attach_Handler and Interrupt_Handler aspects. See
C.3.1(19).
This paragraph
was deleted.
The semantics of some attributes and functions
of an entity for which aspect Discard_Names is True. See
C.5(7).
The modulus and size of Test_and_Set_Flag. See
C.6.3(8).
The value used to represent the set value for Atomic_Test_and_Set.
See
C.6.3(10).
The result of the Task_Identification.Image attribute.
See
C.7.1(7).
The value of Current_Task when in a protected entry,
interrupt handler, or finalization of a task attribute. See
C.7.1(17/3).
This paragraph
was deleted.
Granularity of locking for Task_Attributes. See
C.7.2(16/1).
This paragraph
was deleted.
This paragraph
was deleted.
The declarations of Any_Priority and Priority.
See
D.1(11).
Implementation-defined execution resources. See
D.1(15/5).
Whether, on a multiprocessor, a task that is waiting
for access to a protected object keeps its processor busy. See
D.2.1(3).
The effect of implementation-defined execution
resources on task dispatching. See
D.2.1(9/2).
This paragraph
was deleted.
This paragraph
was deleted.
Implementation defined task dispatching policies.
See
D.2.2(18).
The value of Default_Quantum in Dispatching.Round_Robin.
See
D.2.5(4).
The locking policy if no Locking_Policy pragma
applies to any unit of a partition. See
D.3(6).
Default ceiling priorities. See
D.3(10/4).
The ceiling of any protected object used internally
by the implementation. See
D.3(16).
Implementation-defined queuing policies. See
D.4(1/5).
Implementation-defined admission policies. See
D.4.1(1).
This paragraph
was deleted.
Any operations that implicitly require heap storage
allocation. See
D.7(8).
When restriction No_Dynamic_CPU_Assignment applies
to a partition, the processor on which a task with a CPU value of a Not_A_Specific_CPU
will execute. See
D.7(10).
When restriction No_Task_Termination applies to
a partition, what happens when a task terminates. See
D.7(15.1/2).
The behavior when restriction Max_Storage_At_Blocking
is violated. See
D.7(17/1).
The behavior when restriction Max_Asynchronous_Select_Nesting
is violated. See
D.7(18/1).
The behavior when restriction Max_Tasks is violated.
See
D.7(19).
Whether the use of pragma Restrictions results
in a reduction in program code or data size or execution time. See
D.7(20).
This paragraph
was deleted.
This paragraph
was deleted.
The value of Barrier_Limit'Last in Synchronous_Barriers.
See
D.10.1(4/3).
When an aborted task that is waiting on a Synchronous_Barrier
is aborted. See
D.10.1(13/3).
This paragraph
was deleted.
The value of Min_Handler_Ceiling in Execution_Time.Group_Budgets.
See
D.14.2(7/2).
The value of CPU_Range'Last in System.Multiprocessors.
See
D.16(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).
The means for creating and executing distributed
programs. See
E(5).
Any events that can result in a partition becoming
inaccessible. See
E.1(7).
The scheduling policies, treatment of priorities,
and management of shared resources between partitions in certain cases.
See
E.1(11).
This paragraph
was deleted.
Whether the execution of the remote subprogram
is immediately aborted as a result of cancellation. See
E.4(13).
The range of type System.RPC.Partition_Id. See
E.5(14).
This paragraph
was deleted.
Implementation-defined interfaces in the PCS. See
E.5(26).
The values of named numbers in the package Decimal.
See
F.2(7).
The value of Max_Picture_Length in the package
Text_IO.Editing See
F.3.3(16).
The value of Max_Picture_Length in the package
Wide_Text_IO.Editing See
F.3.4(5).
The value of Max_Picture_Length in the package
Wide_Wide_Text_IO.Editing See
F.3.5(5).
The accuracy actually achieved by the complex elementary
functions and by other complex arithmetic operations. See
G.1(1).
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).
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).
Whether the strict mode or the relaxed mode is
the default. See
G.2(2).
The result interval in certain cases of fixed-to-float
conversion. See
G.2.1(10).
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).
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).
The definition of
close result set, which
determines the accuracy of certain fixed point multiplications and divisions.
See
G.2.3(5).
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).
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).
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).
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).
The accuracy of certain elementary functions for
parameters beyond the angle threshold. See
G.2.4(10).
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).
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).
The accuracy requirements for the subprograms Solve,
Inverse, Determinant, Eigenvalues and Eigensystem for type Real_Matrix.
See
G.3.1(81/2).
The accuracy requirements for the subprograms Solve,
Inverse, Determinant, Eigenvalues and Eigensystem for type Complex_Matrix.
See
G.3.2(149/2).
This paragraph
was deleted.
This paragraph
was deleted.
The consequences of violating No_Hidden_Indirect_Globals.
See
H.4(23.9/5).
This paragraph
was deleted.
This paragraph
was deleted.
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