Specific Documentation Requirements
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Ada Reference Manual — Legal Information

# M.1 Specific Documentation Requirements

1/2
In addition to implementation-defined characteristics, each Ada implementation must document various properties of the implementation:
2/2
The behavior of implementations in implementation-defined situations shall be documented — see M.2, “Implementation-Defined Characteristics” for a listing. See 1.1.3(19).
3/2
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).
4/2
The algorithm used for random number generation, including a description of its period. See A.5.2(44).
5/2
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).
6/2
The conditions under which Io_Exceptions.Name_Error, Io_Exceptions.Use_Error, and Io_Exceptions.Device_Error are propagated. See A.13(15).
7/2
The behavior of package Environment_Variables when environment variables are changed by external mechanisms. See A.17(30/2).
8/2
The overhead of calling machine-code or intrinsic subprograms. See C.1(6).
9/2
The types and attributes used in machine code insertions. See C.1(7).
10/2
The subprogram calling conventions for all supported convention identifiers. See C.1(8/3).
11/2
The mapping between the Link_Name or Ada designator and the external link name. See C.1(9).
12/2
The treatment of interrupts. See C.3(22).
13/2
The metrics for interrupt handlers. See C.3.1(16).
14/3
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/3).
15/2
Any circumstances when the elaboration of a preelaborated package causes code to be executed. See C.4(12).
16/2
Whether a partition can be restarted without reloading. See C.4(13).
17/2
The effect of calling Current_Task from an entry body or interrupt handler. See C.7.1(19).
18/2
For package Task_Attributes, limits on the number and size of task attributes, and how to configure any limits. See C.7.2(19).
19/2
The metrics for the Task_Attributes package. See C.7.2(27).
20/2
The details of the configuration used to generate the values of all metrics. See D(2).
21/2
The maximum priority inversion a user task can experience from the implementation. See D.2.3(12/2).
22/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).
23/2
The quantum values supported for round robin dispatching. See D.2.5(16/2).
24/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).
25/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).
26/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).
27/2
The metrics for Set_Priority. See D.5.1(14).
28/2
The metrics for setting the priority of a protected object. See D.5.2(10).
29/2
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).
30/2
The metrics for aborts. See D.6(8).
31/2
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).
32/2
The properties of the underlying time base used in package Real_Time. See D.8(34).
33/2
Any synchronization of package Real_Time with external time references. See D.8(35).
34/2
Any aspects of the external environment that could interfere with package Real_Time. See D.8(36/3).
35/2
The metrics for package Real_Time. See D.8(45).
36/2
The minimum value of the delay expression of a delay_relative_statement that causes a task to actually be blocked. See D.9(7).
37/2
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).
38/2
The metrics for delay statements. See D.9(13).
39/2
The upper bound on the duration of interrupt blocking caused by the implementation. See D.12(5).
40/2
The metrics for entry-less protected objects. See D.12(12).
41/2
The values of CPU_Time_First, CPU_Time_Last, CPU_Time_Unit, and CPU_Tick of package Execution_Time. See D.14(21/2).
42/3
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).
43/2
The metrics for execution time. See D.14(27).
44/2
The metrics for timing events. See D.15(24).
44.1/3
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).
45/2
Whether the RPC-receiver is invoked from concurrent tasks, and if so, the number of such tasks. See E.5(25).
46/2
Any techniques used to reduce cancellation errors in Numerics.Generic_Real_Arrays shall be documented. See G.3.1(86/2).
47/2
Any techniques used to reduce cancellation errors in Numerics.Generic_Complex_Arrays shall be documented. See G.3.2(155/2).
48/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).
49/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).
50/2
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).
51/2
If a pragma Restrictions(No_Exceptions) is specified, the effects of all constructs where language-defined checks are still performed. See H.4(25).
52/2
The interrupts to which a task entry may be attached. See J.7.1(12).
53/2
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