M.1 Specific Documentation Requirements
In
addition to implementation-defined characteristics, each Ada implementation
must document various properties of the implementation:
Ramification: Most
of the items in this list require documentation only for implementations
that conform to Specialized Needs Annexes.
The set of values that a
user-defined Allocate procedure needs to accept for the Alignment parameter.
How the standard storage pool is chosen, and how storage is allocated
by standard storage pools. See 13.11(22).
The algorithm used for random
number generation, including a description of its period. See A.5.2(44).
The minimum time interval
between calls to the time-dependent Reset procedure that is guaranteed
to initiate different random number sequences. See A.5.2(45).
The conditions under which
Io_Exceptions.Name_Error, Io_Exceptions.Use_Error, and Io_Exceptions.Device_Error
are propagated. See A.13(15).
The behavior of package Environment_Variables
when environment variables are changed by external mechanisms. See A.17(30/2).
The overhead of calling machine-code
or intrinsic subprograms. See C.1(6).
The types and attributes
used in machine code insertions. See C.1(7).
The subprogram calling conventions
for all supported convention identifiers. See C.1(8/3).
The mapping between the Link_Name
or Ada designator and the external link name. See C.1(9).
The treatment of interrupts. See C.3(22).
The metrics for interrupt
handlers. See C.3.1(16).
If the Ceiling_Locking policy
is in effect, the default ceiling priority for a protected object that
specifies contains an interrupt handler aspect pragma.
See
C.3.2(24/3).
Any circumstances when the
elaboration of a preelaborated package causes code to be executed. See C.4(12).
Whether a partition can be
restarted without reloading. See C.4(13).
The effect of calling Current_Task
from an entry body or interrupt handler. See C.7.1(19).
For package Task_Attributes,
limits on the number and size of task attributes, and how to configure
any limits. See C.7.2(19).
The metrics for the Task_Attributes
package. See C.7.2(27).
The details of the configuration
used to generate the values of all metrics. See D(2).
The maximum priority inversion
a user task can experience from the implementation. See D.2.3(12/2).
The amount of time that a
task can be preempted for processing on behalf of lower-priority tasks. See D.2.3(13/2).
The quantum values supported
for round robin dispatching. See D.2.5(16/2).
The accuracy of the detection
of the exhaustion of the budget of a task for round robin dispatching. See D.2.5(17/2).
Any conditions that cause
the completion of the setting of the deadline of a task to be delayed
for a multiprocessor. See D.2.6(32/2).
Any conditions that cause
the completion of the setting of the priority of a task to be delayed
for a multiprocessor. See D.5.1(12.1/2).
The metrics for Set_Priority. See D.5.1(14).
The metrics for setting the
priority of a protected object. See D.5.2(10).
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).
The metrics for aborts. See D.6(8).
The values of Time_First,
Time_Last, Time_Span_First, Time_Span_Last, Time_Span_Unit, and Tick
for package Real_Time. See D.8(33).
The properties of the underlying
time base used in package Real_Time. See
D.8(34).
Any synchronization of package
Real_Time with external time references. See D.8(35).
Any aspects of the external
environment that could interfere with package Real_Time. See D.8(36/3).
The metrics for package Real_Time. See D.8(45).
The minimum difference between
the value of the delay expression of a delay_until_statement
and the value of Real_Time.Clock, that causes the task to actually be
blocked. See D.9(8).
The metrics for delay statements. See D.9(13).
The upper bound on the duration
of interrupt blocking caused by the implementation. See D.12(5).
The metrics for entry-less
protected objects. See D.12(12).
The values of CPU_Time_First,
CPU_Time_Last, CPU_Time_Unit, and CPU_Tick of package Execution_Time. See D.14(21/2).
The properties of the mechanism
used to implement package Execution_Time,
including the values of the constants defined in the package.
See
D.14(22/2).
The metrics for execution
time. See D.14(27).
The metrics for timing events. See D.15(24).
The processor(s) on which
the clock interrupt is handled; the processors on which each Interrupt_Id
can be handled. See D.16.1(32).
Whether the RPC-receiver
is invoked from concurrent tasks, and if so, the number of such tasks. See E.5(25).
Any techniques used to reduce
cancellation errors in Numerics.Generic_Real_Arrays shall be documented. See G.3.1(86/2).
Any techniques used to reduce
cancellation errors in Numerics.Generic_Complex_Arrays shall be documented. See G.3.2(155/2).
If a pragma
Normalize_Scalars applies, the implicit initial values of scalar subtypes
shall be documented. Such a value should be an invalid representation
when possible; any cases when is it not shall be documented. See H.1(5/2).
The range of effects for
each bounded error and each unspecified effect. If the effects of a given
erroneous construct are constrained, the constraints shall be documented. See H.2(1).
For each inspection point,
a mapping between each inspectable object and the machine resources where
the object's value can be obtained shall be provided. See H.3.2(8).
If a pragma Restrictions(No_Exceptions)
is specified, the effects of all constructs where language-defined checks
are still performed. See H.4(25).
The interrupts to which a
task entry may be attached. See J.7.1(12).
The type of entry call invoked
for an interrupt entry. See J.7.1(13).
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe