M.1 Specific Documentation Requirements
In addition 
to implementation-defined characteristics, each Ada implementation is 
required to document various properties of the implementation: 
The behavior of implementations in implementation-defined 
situations shall be documented — see 
M.2 
for a listing. See 
1.1.3(19).
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/5).
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 an interrupt 
handler aspect. See 
C.3.2(24/5).
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 can 
interfere with package Real_Time. See 
D.8(36/5).
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/5).
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
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe